Zurück zu den Updates
New releaseSep 1, 2026

DLLHijackHunter v2.4.0

Automatisierte Entdeckung, Validierung und Bestätigung von DLL-Hijacking. Lokale Fehlkonfigurationen in bewaffnete, bestätigte Angriffspfade verwandeln.

Teilen

DLLHijackHunter

Von ProjectMerai

Automatisierte Erkennung, Validierung und Bestätigung von DLL-Hijacking unter Windows
Von „diese DLL könnte hijackbar sein“ bis „ein Standardbenutzer kann SYSTEM dazu bringen, diese zu laden — hier ist der Beweis.“


Inhalt


Überblick

DLLHijackHunter findet DLL-Hijacking-Möglichkeiten auf einem Windows-Host und arbeitet darauf hin, sie zu beweisen, statt sie nur aufzulisten. Es:

  1. Entdeckt jeden Ort, an dem eine Binärdatei automatisch gestartet wird — Dienste, geplante Aufgaben, Run-Schlüssel, Startup-Ordner, COM-Server, AppInit/AppCert-DLLs, IFEO-Einträge und auto-elevierende UAC-Binärdateien — und berechnet, wo nach jeder importierten DLL gesucht würde.
  2. Filtert Positionen heraus, die ein Angreifer tatsächlich nicht nutzen kann: API-Sets, KnownDLLs, Verzeichnisse, in die ein Standardbenutzer nicht schreiben kann, geschützte Prozesse und mehr.
  3. Verifiziert (optional) mit dem echten Windows-Loader, indem eine harmlose Probe-DLL platziert und geprüft wird, welche Kopie die Suche gewinnt.
  4. Bestätigt (optional) durch Bereitstellen einer harmlosen Canary-DLL, Auslösen des Dienstes/der Aufgabe/des COM-Objekts und Aufzeichnung der Identität, unter der er tatsächlich ausgeführt wurde.
  5. Bewertet und meldet jeden Fund nach Konfidenz und Auswirkung und korreliert Funde zu Angriffsketten (zum Beispiel Standardbenutzer → SYSTEM).

Jede Beurteilung erfolgt aus der Sicht des Angreifers — eines unprivilegierten Standardbenutzers — unabhängig davon, ob der Scanner selbst erhöht läuft. Das Ausführen als Administrator gibt dem Tool mehr Sichtbarkeit (ETW, Canary, Dienst-Trigger); es lässt geschützte Verzeichnisse niemals beschreibbar erscheinen und bläht die erlangten Privilegien nicht auf.


Schnellstart

Laden Sie DLLHijackHunter.exe herunter oder bauen Sie sie (eigenständig; keine .NET-Installation erforderlich), dann von einer erhöhten Eingabeaufforderung aus:

# Passive, read-only triage: no file drops, no service/task starts
.\DLLHijackHunter.exe --profile safe

# Full static analysis without touching the system, JSON report
.\DLLHijackHunter.exe --profile aggressive --no-canary --no-etw -o report.json

# Static analysis + real-loader verification (writes probe DLLs transiently)
.\DLLHijackHunter.exe --profile aggressive --no-canary --no-etw --verify-load -o report.html

# Everything, including ETW and canary confirmation — lab / authorised targets only
.\DLLHijackHunter.exe --profile aggressive -o report.html

# Focus on one application
.\DLLHijackHunter.exe --target "C:\Program Files\MyApp\app.exe" --no-canary

Antivirus: Die Canary- und Probe-DLLs sind nicht signiert und verhalten sich wie Hijack-Payloads, daher kann Microsoft Defender sie in Quarantäne verschieben. Das Tool erkennt dies und meldet solche Ergebnisse als nicht eindeutig statt als „nicht hijackbar". Auf einem Testrechner sollten die Zielverzeichnisse und %ProgramData%\DLLHijackHunter ausgeschlossen werden, um eindeutige Ergebnisse zu erhalten.


Funktionsweise

flowchart TB
    subgraph S1["1 · Discovery"]
        direction LR
        EN["Launch points<br/>services · tasks · Run keys<br/>startup · COM · AutoElevate"] --> PE["PE analysis<br/>imports · delay loads<br/>manifest"] --> SO["Search order<br/>identity-aware PATH"]
        ETW["ETW runtime trace<br/>optional, elevated"]
    end
    subgraph S2["2 · Filter pipeline"]
        direction LR
        HG["Hard gates<br/>API sets · KnownDLLs<br/>writability"] --> SG["Soft gates<br/>manifest · privilege<br/>PPL · LoadLibraryEx"] --> DD["Dedup and<br/>profile filters"]
    end
    subgraph S3["3 · Verification (optional)"]
        direction LR
        LP["Load probe<br/>real Windows loader"] --> CN["Canary<br/>deploy, trigger, confirm"]
    end
    subgraph S4["4 · Output"]
        direction LR
        SC["Scoring and tiers"] --> AC["Attack chains"] --> RP["Console · JSON · HTML"]
    end
    S1 --> S2 --> S3 --> S4
PhaseErfordert AdministratorrechteVerändert das System
Statische Erkennung + FilterNein (Administrator sieht mehr)Nein
ETW-Laufzeit-ErkennungJaStartet Auto-Start-Dienste (bis zu 100) und führt geplante Aufgaben (bis zu 30) aus, um DLL-Ladevorgänge zu provozieren
Lastprobe (--verify-load)NeinSchreibt kurzzeitig eine harmlose Probe-DLL an jede Kandidatenposition, entfernt sie anschließend wieder und stellt etwaige Originale wieder her
Canary-BestätigungJaSchreibt eine Canary-DLL, stoppt/startet Dienste, führt Aufgaben aus, aktiviert COM-Objekte und räumt anschließend auf

Was es erkennt

Hijack-Typen

TypBedeutungHinweise
PhantomDie DLL existiert nirgendwo im SuchpfadPlatzieren Sie sie an einer beliebigen Stelle, die die Binärdatei durchsucht
SuchreihenfolgeEin beschreibbares Verzeichnis wird vor der legitimen Kopie durchsuchtUmfasst das Überschreiben einer DLL in einem beschreibbaren Verzeichnis
ENV PATHEin beschreibbares Verzeichnis in PATH wird nach einer fehlenden DLL durchsuchtDienste werden ausschließlich gegen den Maschinen-PATH ausgewertet — die eigenen PATH-Einträge des Benutzers werden von einem Dienst niemals durchsucht
.local-Umleitung<app>.exe.local\<dll>-UmleitungWird nur für ausführbare Dateien ohne Manifest gemeldet (oder wenn IFEO DevOverrideEnable=1 gesetzt ist); andernfalls ignoriert der Loader .local, und KnownDLLs werden niemals umgeleitet
Side-Load (UAC)Eine auto-elevierende EXE neben eine platzierte DLL kopierenNur für EXEs mit <autoElevate>true</autoElevate> in ihrem Manifest. Auto-Elevation erfordert einen vertrauenswürdigen Speicherort, daher muss die Kopie diese Prüfung bestehen (z. B. ein nachgebildeter Ordner C:\Windows \System32\)
AppInit DLLsAppInit_DLLs verweist auf eine beschreibbare DLLWird in jeden Prozess geladen, der user32.dll lädt
AppCert DLLsAppCertDLLs verweist auf eine beschreibbare DLLWird in jeden Aufrufer von CreateProcess/WinExec geladen

IFEO-Debugger- und SilentProcessExit\MonitorProcess-Binärdateien werden wie jeder andere Startpunkt aufgezählt und analysiert. CWD-basierte Hijacks werden derzeit nicht erzeugt.

Unter welcher Identität das Ziel läuft

Die korrekte Identität bestimmt sowohl das Urteil zur Rechteausweitung als auch die Auswirkungsbewertung:

Kategorien