Safeguard
Application Security•

Detecting and Mitigating AppInit DLLs Abuse (T1546.010)

AppInit_DLLs loads a library into nearly every Windows program that uses user32.dll. See how it is abused and how Secure Boot helps.

Safeguard Security Team
2 min read

AppInit DLLs abuse (MITRE ATT&CK T1546.010) is a Windows persistence and privilege escalation technique based on a registry value, AppInit_DLLs.

How attackers use it

DLLs named in AppInit_DLLs under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Windows (and the matching Wow6432Node path) are loaded by user32.dll into every process that loads user32.dll. MITRE points out that in practice this is nearly every program.

As with Process Injection, a malicious DLL here runs in the context of other processes, which can raise privileges. It also persists, since regular API activity keeps triggering it. MITRE notes the feature is disabled in Windows 8 and later when Secure Boot is enabled.

How to detect it

  • A change to the AppInit_DLLs value in either key.
  • Anomalous DLL loads in processes that import user32.dll, especially unsigned or uncommon DLLs.

How to reduce the risk

  1. Update software. MITRE advises upgrading to Windows 8 or later and enabling Secure Boot, which disables AppInit DLL loading.
  2. Use execution prevention. Adversaries install new AppInit DLL binaries, so application control tools such as Windows Defender Application Control or AppLocker can identify and block them.

Quick check

What setting makes AppInit DLLs inert on modern Windows?

Secure Boot on Windows 8 or later disables the AppInit DLL functionality.

Sources

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.