DLL-Hijacking ist eine Technik, bei der ein Angreifer ein Windows-Programm dazu bringt, statt der legitimen Bibliothek eine bösartige DLL zu laden, sodass sein Code in einem vertrauenswürdigen Prozess läuft.
Wie DLL-Hijacking funktioniert
Windows-Programme laden Dynamic Link Libraries (DLLs) über ihren Namen. Ist kein vollständiger Pfad angegeben, durchsucht Windows eine Reihe von Orten – das Anwendungsverzeichnis, Systemordner, das aktuelle Verzeichnis und die Ordner in der PATH-Variable. Wer in einen Ort schreiben kann, der vor dem legitimen durchsucht wird, kann dort eine DLL mit demselben Namen ablegen. Varianten:
- Search Order Hijacking – die DLL liegt in einem Verzeichnis, das vor dem echten geprüft wird.
- Phantom-DLL-Hijacking – der Angreifer liefert eine DLL, die das Programm zu laden versucht, die auf dem System aber nicht existiert.
- DLL-Ersetzung – eine legitime DLL in einem beschreibbaren Ordner wird überschrieben.
Eng verwandt ist das DLL-Sideloading, bei dem Angreifer eine eigene legitime, signierte EXE-Datei zusammen mit einer bösartigen DLL mitbringen. MITRE ATT&CK fasst diese Methoden unter Hijack Execution Flow (T1574) zusammen; die zugrunde liegende Schwäche ist CWE-427 (Uncontrolled Search Path Element).
Warum DLL-Hijacking relevant ist
Der Schadcode läuft unter einem legitimen, oft digital signierten Programm, was ihm hilft, Sicherheitswerkzeugen zu entgehen. Angreifer nutzen DLL-Hijacking für Persistenz, Tarnung und Rechteausweitung, wenn ein als SYSTEM laufender Dienst eine Bibliothek aus einem Ordner lädt, in den normale Benutzer schreiben können. Das Problem ist alt: 2010 veröffentlichte Microsoft das Security Advisory 2269637 zum unsicheren Laden von Bibliotheken, nachdem Forschende gezeigt hatten, dass sich viele populäre Anwendungen zum Laden von DLLs aus Netzwerkfreigaben verleiten ließen.
Wie man sich vor DLL-Hijacking schützt
- Entwickler sollten Bibliotheken mit vollständigen Pfaden laden und APIs wie SetDefaultDllDirectories nutzen, um die Suchreihenfolge einzuschränken.
- Den Safe DLL Search Mode aktiviert lassen und verhindern, dass Nicht-Administratoren in Programm- und PATH-Ordner schreiben.
- Anwendungskontrolle (WDAC, AppLocker) mit DLL-Regeln einsetzen.
- Auf unsignierte DLLs achten, die von signierten Prozessen oder aus ungewöhnlichen Pfaden geladen werden.





