
Automatisierte Entdeckung, Validierung und Bestätigung von DLL-Hijacking. Lokale Fehlkonfigurationen in bewaffnete, bestätigte Angriffspfade verwandeln.
Automatisierte DLL-Hijacking-Erkennung, -Validierung und -Bestätigung
Lokale Fehlkonfigurationen in bewaffnete, bestätigte Angriffspfade verwandeln.
DLLHijackHunter ist ein automatisiertes Windows-DLL-Hijacking-Erkennungstool, das über die statische Analyse hinausgeht. Es entdeckt, validiert und bestätigt DLL-Hijacking-Möglichkeiten mithilfe einer mehrphasigen Pipeline:
Die meisten DLL-Hijacking-Tools stoppen bei „diese DLL könnte hijackbar sein.“ DLLHijackHunter versucht, sie zu validieren, sie mit bekannten Exploit-Intelligenzdaten abzugleichen und reale Ausführungspfade zu bestätigen, wo dies möglich ist.
flowchart TB
subgraph Phase1["Phase 1: Erkennung"]
SE["Statische Engine<br/>Dienste, Aufgaben, Autostart,<br/>COM, Run-Keys"]
AE["AutoElevate-Engine<br/>Manifest + COM-UAC-Bypass"]
PE["PE-Analysator<br/>Import-Tabellen, verzögerte Ladungen,<br/>Manifeste, Exporte"]
ETW["ETW-Engine<br/>Echtzeit-DLL-Lade-<br/>Überwachung"]
SO["Suchreihenfolgen-<br/>Rechner"]
end
subgraph Phase2["Phase 2: Filter-Pipeline"]
direction LR
HG["Harte Gates<br/>(Binär-Kill)"]
SG["Weiche Gates<br/>(Konfidenz-Anpassung)"]
end
subgraph Phase3["Phase 3: Lade-Verifizierung (--verify-load)"]
LP["LoadProbe<br/>Kindprozess-Ladetest<br/>Probe-DLL platziert & entfernt"]
end
subgraph Phase4["Phase 4: Canary"]
CB["Canary-DLL-Builder"]
TE["Trigger-Ausführer"]
VF["Verifizierung"]
end
subgraph Phase5["Phase 5: Ausgabe"]
SC["Abgestufter Bewerter"]
RC["Konsolenbericht"]
RJ["JSON-Bericht"]
RH["HTML-Bericht"]
end
SE --> PE --> SO
AE --> PE
ETW --> SO
SO --> Phase2
HG --> SG
Phase2 --> Phase3
Phase3 --> Phase4
CB --> TE --> VF
Phase4 --> Phase5
| Typ | Beschreibung | Tarnung | Status |
|---|---|---|---|
| Phantom | DLL existiert nirgendwo auf der Festplatte | Hoch | Implementiert |
| Suchreihenfolge | DLL früher in der Windows-Suchreihenfolge platzieren | Hoch | Implementiert |
| Side-Loading | Missbrauch legitimer Apps, die DLLs aus ihrem Verzeichnis laden | Hoch | Implementiert (AutoElevate-Kopieren-in-Temp-Pfad) |
| .local-Umleitung | Hijack über .local-Verzeichnisumleitung | Hoch | Implementiert |
| ENV-PATH | Bewaffnung beschreibbarer Verzeichnisse im System-PATH | Hoch | Implementiert (kuratierte Dienst-/DLL-Zuordnung) |
| AppInit-DLLs | AppInit_DLLs-Registry-Missbrauch | Niedrig | Implementiert |
| AppCert-DLLs | AppCertDLLs-Registry-Missbrauch (wird in jeden CreateProcess/WinExec-Aufrufer geladen) | Niedrig | Implementiert |
| CWD | Current-Working-Directory-Hijack | Niedrig | Geplant — wird derzeit von keinem Erkennungspfad erzeugt |
IFEO-Debugger-Einträge werden aufgelistet und die referenzierte Binärdatei wird auf DLL-Importe analysiert, aber es gibt keinen dedizierten IFEO/KnownDLL-Bypass-Hijack-Typ — diese werden nicht als eigenständige Erkennungen beworben.
DLLHijackHunter enthält eine dedizierte UAC-Bypass-Erkennung:
System32 und SysWOW64 nach EXEs mit <autoElevate>true</autoElevate> in eingebetteten ManifestenHKLM\SOFTWARE\Classes\CLSID nach COM-Objekten mit Elevation\Enabled=1SetDllDirectory noch SetDefaultDllDirectories aufrufen, wird der Angriffspfad „EXE in beschreibbaren Ordner kopieren + DLL ablegen“ simuliertResources/hijacklibs.json. Ein Treffer erhöht die Konfidenz und verlinkt den Befund auf seine HijackLibs-Referenzseite; das Fehlen eines Treffers bedeutet nichts. Der Datensatz ist datengetrieben — aktualisieren Sie ihn, indem Sie https://hijacklibs.net/api/hijacklibs.json über diese Ressource erneut herunterladen (keine Codeänderungen erforderlich). Datensatz © das HijackLibs-Projekt und seine Mitwirkenden.PATH-Ordner und generiert Hijack-Kandidaten für eine kuratierte Zuordnung nativer Windows-Dienste, die bekanntermaßen PATH nach fehlenden DLLs durchsuchenDie Pipeline reduziert Fehlalarme in zwei Stufen:
Harte Gates
api-ms-*, ext-ms-*)Users / Authenticated Users / Everyone, plus leckgeschützte Sub-Admin-Dienstkonten wie LOCAL SERVICE/NETWORK SERVICE) effektive Schreibrechte hat. Entscheidend ist, dass dies unabhängig vom Token berechnet wird, unter dem das Tool läuft, sodass ein erhöhter Lauf System32/Program Files nicht als beschreibbar erscheinen lässt. Genau das macht erhöhte Läufe für die LPE-Triage sinnvoll.Weiche Gates
LoadLibraryEx-MinderungsprüfungenStatt zu raten, versucht DLLHijackHunter zu beweisen, dass Hijacks funktionieren:
sequenceDiagram
participant H as DLLHijackHunter
participant B as Canary-DLL-Builder
participant T as Trigger-Ausführer
participant V as Opfer-Binärdatei
H->>B: Canary-DLL erstellen
B->>B: Vorkompilierte Canary extrahieren<br/>(oder Proxy mit MSVC kompilieren)
B-->>H: canary.dll + Bestätigungsdateipfad
H->>H: DLL am Hijack-Pfad platzieren
H->>T: Binärausführung auslösen
T->>V: Dienst starten / Aufgabe ausführen / COM aktivieren
V->>V: Lädt Canary-DLL
V-->>H: Schreibt Bestätigungsdatei<br/>PID, Privileg, Integritätsstufe
H->>H: Aufzeichnen: BESTÄTIGT
H->>H: Canary-DLL bereinigen