Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 062

AppInit_DLLs

Geprüft vonCybersecurity entrepreneur & security researcher

Was ist AppInit_DLLs?

AppInit_DLLsLegacy-Windows-Persistenztechnik, die einen Registry-Wert missbraucht, damit eine angegebene DLL in jeden Benutzerprozess geladen wird, der user32.dll bindet.


AppInit_DLLs-Missbrauch (MITRE ATT&CK T1546.010) zielt auf HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs und dessen WOW6432Node-Pendant. Ist LoadAppInit_DLLs auf 1 gesetzt, mappt die Initialisierungsroutine von user32.dll jede in AppInit_DLLs gelistete DLL in jeden Prozess, der user32.dll lädt – also praktisch jede interaktive GUI-Anwendung. Ein einziger Registry-Schreibvorgang liefert somit breite Codeausführung und Persistenz und wirkt eher als „Trigger bei neuem Prozess" denn als einmaliger Autostart.

Die Technik ist alt, aber lehrreich. Sie lieferte den Lademechanismus für das klassische Vanquish-Rootkit, und kommerzielle Software nutzte sie historisch (und unbeholfen): Nvidia und diverse IMEs lieferten AppInit-DLLs aus, weshalb Sicherheitsteams nicht einfach darauf alarmieren können, dass der Wert nicht leer ist. Seit Windows 8 wird der AppInit-Mechanismus bei aktiviertem Secure Boot deaktiviert, sofern nicht jede gelistete DLL codesigniert ist, was seine Reichweite stark reduziert; unter Windows 10/11 mit aktiviertem Secure Boot ist er praktisch tot. Er taucht weiterhin in Legacy-Umgebungen mit Windows 7/Server 2008 sowie auf Hosts auf, bei denen Secure Boot aus Kompatibilitätsgründen deaktiviert wurde.

Abwehr: Secure Boot aktiviert lassen, die Richtlinie „signierte AppInit-DLLs erzwingen" durchsetzen, den Wert mit Sysinternals Autoruns als Baseline erfassen und Registry-Schreibvorgänge auf diese Schlüssel über Sysmon Event ID 13 oder EDR-Telemetrie alarmieren.

flowchart TD
  A[Angreifer mit lokalem Admin] --> W[Schreibt DLL-Pfad in AppInit_DLLs-Schluessel]
  W --> L[Setzt LoadAppInit_DLLs = 1]
  L --> N[Neuer GUI-Prozess startet]
  N --> U[Prozess laedt user32.dll]
  U --> SB{Secure Boot aktiv und DLL unsigniert?}
  SB -->|Ja| BLK[Laden uebersprungen - Technik neutralisiert]
  SB -->|Nein| INJ[Schaedliche DLL in Prozess gemappt]
  INJ --> RUN[Code laeuft in jeder interaktiven App -> Persistenz]
  W -.erkannt.-> DET[Sysmon EID13 / Autoruns-Baseline-Alarme]

Beispiele

  1. 01

    Eintrag eines schädlichen Helfer-DLL-Pfads in AppInit_DLLs auf einem Windows-7-Server, um jeden Tastendruck prozessübergreifend zu protokollieren.

  2. 02

    Kombination von AppInit_DLLs mit deaktiviertem Secure Boot zur Bereitstellung eines Userland-Rootkits.

Häufige Fragen

Was ist AppInit_DLLs?

Legacy-Windows-Persistenztechnik, die einen Registry-Wert missbraucht, damit eine angegebene DLL in jeden Benutzerprozess geladen wird, der user32.dll bindet. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.

Was bedeutet AppInit_DLLs?

Legacy-Windows-Persistenztechnik, die einen Registry-Wert missbraucht, damit eine angegebene DLL in jeden Benutzerprozess geladen wird, der user32.dll bindet.

Wie schützt man sich gegen AppInit_DLLs?

Schutzmaßnahmen gegen AppInit_DLLs kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.

Welche anderen Bezeichnungen gibt es für AppInit_DLLs?

Übliche alternative Bezeichnungen: AppInit-DLL-Injection, user32 AppInit-Persistenz.

Verwandte Begriffe