Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
DLLHijackHunter — Automatisierte Entdeckung, Validierung und Bestätigung von DLL-Hijacking. Lokale Fehlkonfigurationen in bewaffnete, bestätigte Angriffspfade verwandeln. | Kitploit
Tools/GitHubGitHub/ghostvectoracademy/dllhijackhunter
Privilege EscalationSchwachstellenscannerPayload-GenerierungPersistenzmechanismenDynamische Code-Analyse (DAST)ExploitationLaterale BewegungPenetrationstestsBinäranalyse

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Lernen & Bildung
Red Teaming
GitHubghostvectoracademy/dllhijackhunter

DLLHijackHunter

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

Repository anzeigen
39644vor 2 MonatenVon Kitploit geprüft

DLLHijackHunter

Von der GhostVector Academy

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


Übersicht

DLLHijackHunter ist ein automatisiertes Tool zur Erkennung von Windows-DLL-Hijacking, das über die statische Analyse hinausgeht. Es entdeckt, validiert und bestätigt DLL-Hijacking-Möglichkeiten mittels einer mehrphasigen Pipeline:

  1. Erkennung — Listet Binärdateien in Diensten, geplanten Aufgaben, Starteinträgen, COM-Objekten und AutoElevate-UAC-Bypass-Vektoren auf
  2. Filterung — Beseitigt Fehlalarme durch intelligente harte und weiche Filter
  3. Canary-Bestätigung — Setzt eine harmlose Canary-DLL ein und löst die Binärdatei aus, um zu beweisen, dass der Hijack funktioniert
  4. Bewertung & Berichterstattung — Bewertet Ergebnisse nach Ausnutzbarkeit mit einem mehrstufigen Vertrauenssystem

Die meisten DLL-Hijacking-Tools bleiben bei „Diese DLL könnte kaperbar sein“ stehen. DLLHijackHunter versucht, dies zu validieren, mit bekannten Exploit-Informationen abzugleichen und, wo möglich, echte Ausführungspfade zu bestätigen.


Architektur

root@kitploit:~
flowchart TB
    subgraph Phase1["Phase 1: Discovery"]
        SE["Static Engine<br/>Services, Tasks, Startup,<br/>COM, Run Keys"]
        AE["AutoElevate Engine<br/>Manifest + COM UAC Bypass"]
        PE["PE Analyzer<br/>Import Tables, Delay Loads,<br/>Manifests, Exports"]
        ETW["ETW Engine<br/>Real-time DLL Load<br/>Monitoring"]
        SO["Search Order<br/>Calculator"]
    end

    subgraph Phase2["Phase 2: Filter Pipeline"]
        direction LR
        HG["Hard Gates<br/>(Binary Kill)"]
        SG["Soft Gates<br/>(Confidence Adj.)"]
    end

    subgraph Phase3["Phase 3: Canary"]
        CB["Canary DLL Builder"]
        TE["Trigger Executor"]
        VF["Verification"]
    end

    subgraph Phase4["Phase 4: Output"]
        SC["Tiered Scorer"]
        RC["Console Report"]
        RJ["JSON Report"]
        RH["HTML Report"]
    end

    SE --> PE --> SO
    AE --> PE
    ETW --> SO
    SO --> Phase2
    HG --> SG
    Phase2 --> Phase3
    CB --> TE --> VF
    Phase3 --> Phase4

Hauptfunktionen

Abdeckung der Hijack-Typen

IFEO-Debugger-Einträge werden aufgelistet und die referenzierte Binärdatei auf DLL-Importe analysiert, aber es gibt keinen dedizierten IFEO/KnownDLL-Bypass-Hijack-Typ – diese werden nicht als eigenständige Erkennungen beworben.

UAC-Bypass-Erkennung

DLLHijackHunter enthält eine dedizierte UAC-Bypass-Erkennung:

  • Manifest AutoElevate — Durchsucht System32 und SysWOW64 nach EXEs mit <autoElevate>true</autoElevate> in eingebetteten Manifesten
  • COM AutoElevation — Durchsucht HKLM\SOFTWARE\Classes\CLSID nach COM-Objekten mit Elevation\Enabled=1
  • Seitenlade-Simulation — Für AutoElevate-Binärdateien, die weder SetDllDirectory noch SetDefaultDllDirectories aufrufen, wird der Angriffspfad „EXE in beschreibbaren Ordner kopieren + DLL ablegen“ simuliert

Gezielte Schwachstellen-Wissensdatenbank

  • Gezielte Schwachstellen-Zuordnung — Kreuzvergleich der entdeckten Importe mit einem gebündelten Snapshot des HijackLibs-Datensatzes (≈590 dokumentierte DLL-Einträge, die ≈700 verwundbare ausführbare Dateien abdecken), eingebettet als Resources/hijacklibs.json. Eine Übereinstimmung erhöht die Konfidenz und verknüpft den Fund mit seiner HijackLibs-Referenzseite; das Fehlen einer Übereinstimmung bedeutet nichts. Der Datensatz ist datengesteuert – Aktualisierung durch erneutes Herunterladen von https://hijacklibs.net/api/hijacklibs.json über diese Ressource (keine Codeänderungen erforderlich). Datensatz © das HijackLibs-Projekt und dessen Mitwirkende.
  • Automatisierte PATH-Ausnutzung — Bewertet beschreibbare PATH-Ordner und generiert Hijack-Kandidaten für eine kuratierte Liste nativer Windows-Dienste, die bekanntermaßen PATH nach fehlenden DLLs durchsuchen
  • Erweiterte Phantom-DLL-Suche — Durchsucht eine Bibliothek von hochwertigen Phantom-DLL-Möglichkeiten in mehreren Kategorien

Filter-Pipeline

Die Pipeline reduziert Fehlalarme in zwei Stufen:

Harte Filter

  • API-Set-Schema-Filterung (api-ms-*, ext-ms-*)
  • KnownDLL-Filterung
  • Angreifer-bezogene ACL-Beschreibbarkeitsvalidierung – ein Pfad gilt nur dann als beschreibbar, wenn ein unprivilegierter Prinzipal (Benutzer / Authentifizierte Benutzer / Jeder, plus leaksichere Sub-Admin-Dienstkonten wie LOKALER DIENST/NETZWERKDIENST) effektive Schreibrechte hat. Entscheidend ist, dass dies unabhängig von dem Token berechnet wird, unter dem das Tool läuft; ein elevated Run lässt daher System32/Programme nicht als beschreibbar erscheinen. Dies macht elevated Runs für die LPE-Triage sinnvoll.

Weiche Filter

  • WinSxS-Manifest-Strafe
  • Privilegien-Delta-Analyse
  • LoadLibraryEx-Minderungsprüfungen
  • Signaturvalidierungsprüfungen
  • Strafen für elegante Fehlerbehandlung

Canary-Bestätigung

Anstatt zu raten, versucht DLLHijackHunter zu beweisen, dass Hijacks funktionieren:

root@kitploit:~
sequenceDiagram
    participant H as DLLHijackHunter
    participant B as Canary DLL Builder
    participant T as Trigger Executor
    participant V as Victim Binary

    H->>B: Build canary DLL
    B->>B: Extract precompiled canary<br/>(or compile a proxy with MSVC)
    B-->>H: canary.dll + confirmation file path
    H->>H: Place DLL at hijack path
    H->>T: Trigger binary execution
    T->>V: Start service / run task / COM activate
    V->>V: Loads canary DLL
    V-->>H: Writes confirmation file<br/>PID, privilege, integrity level
    H->>H: Record: CONFIRMED
    H->>H: Cleanup canary DLL

Die Canary-DLL:

  • Wird für x64 und x86 vorkompiliert ausgeliefert, eingebettet im Scanner, sodass zur Scanzeit kein Compiler erforderlich ist. Die korrekte Architektur wird passend zur Bitanzahl des Opfers ausgewählt und bei Bedarf extrahiert.
  • Ist selbstlokalisierend: Sie leitet ihren Bestätigungsdateipfad zur Laufzeit von ihrem eigenen geladenen Modulpfad ab (%ProgramData%\DLLHijackHunter\canary_<Hash>.confirm), sodass eine Binärdatei für jeden Kandidaten dient. Der Scanner berechnet denselben Hash aus dem Bereitstellungspfad und fragt nach dieser Datei.
  • Verwendet einen dateibasierten Bestätigungsmechanismus
  • Erfasst Ausführungsmetadaten wie Benutzer, Integritätsstufe und Privilegienindikatoren
  • Enthält keine schädliche Nutzlast; sie ist streng ein Erkennungs- und Validierungsmechanismus
  • Bindet die CRT statisch ein, sodass sie keine Laufzeitabhängigkeit (ucrtbase/vcruntime) auf dem Zielrechner hat.

Die gebündelten Binärdateien werden aus der auditierbaren Quelle unter src/DLLHijackHunter/Resources/canary_src.c erstellt und können mit Resources/build_canary.bat neu generiert werden (erfordert die MSVC-C++-Toolchain; der Scanner tut dies nicht).

Ausnahme Funktionsproxy: Wenn ein Suchreihenfolgen-Hijack auf eine DLL abzielt, die existiert und Exporte bereitstellt, erfordert das Aufrechterhalten des Hosts nach der Bestätigung einen Export-Forwarding Proxy, der pro DLL mit MSVC (cl.exe, gefunden über vswhere/vcvarsall) kompiliert wird. Wenn keine Toolchain vorhanden ist, wird stattdessen der vorkompilierte Canary verwendet – er bestätigt das Laden dennoch (DllMain feuert), leitet aber keine Exporte weiter, sodass der Hostprozess nach der Aufzeichnung der Bestätigung möglicherweise abstürzt. Phantom-DLL- und andere Kandidaten ohne Exporte benötigen überhaupt keinen Compiler.

Signierung: Die eingebetteten Canaries sind unsigniert. Das Codesignieren (damit sie unter strengeren Richtlinien laden und zurechenbar sind) erfordert ein Signaturzertifikat und bleibt ein Schritt zur Freigabezeit für den Betreuer.

Wichtiger Hinweis zum Proxy/Export-Forwarding-Modus

Proxy/Export-Forwarding-Canaries sind experimentell und nach bestem Wissen und Gewissen. Einige Ziele können möglicherweise nicht korrekt geladen werden oder sich unerwartet verhalten, abhängig von:

  • nur ordinalen Exporten
  • dekorierten Exportnamen
  • Aufrufkonventionskonflikten
  • Loader-/Laufzeitannahmen im Zielprozess

Das bedeutet, dass ein fehlgeschlagener Proxy-Canary nicht immer bedeutet, dass der zugrunde liegende Hijack-Pfad unmöglich ist.


Lade-Reihenfolge-Verifizierung (--verify-load)

Eine optional, als Standardbenutzer ausführbare Verifizierung, die zwischen der Filter-Pipeline und der Canary-Phase angesiedelt ist. Für jeden geeigneten Kandidaten schreibt sie kurz eine harmlose Sonden-DLL an die beschreibbare Hijack-Position und fragt dann den echten Windows-Loader – in einem kurzlebigen Kindprozess –, die DLL nach Namen aufzulösen. Wo der Loader auflöst, bestimmt das Urteil:

  • Verifiziert gewonnen – der Loader wählt die beschreibbare Position. Die Behauptung zur Suchreihenfolge ist bewiesen (diese Bestätigung lässt den Fund die Stufe Hoch erreichen; die Canary-Ausführung bleibt der einzige Weg zu Bestätigt).
  • Verliert gegen Geschütztes – der Loader wählt stattdessen eine KnownDLL, die System32-Kopie oder eine SxS-umgeleitete Kopie. Die Position ist mit ziemlicher Sicherheit nicht kaperbar, sodass der Kandidat stark abgewertet wird. Dies fängt die klassischen Fehlalarme ab, die ein statischer Suchreihenfolgen-Rechner übersieht (z. B. ein .local/Search-Order-„Fund“ für ntdll.dll, den KnownDLLs nicht ausnutzbar macht).

Entwurfs- und Sicherheitshinweise:

  • Läuft in einem Kindprozess, sodass ein bereits in den Scanner geladener Name das Ergebnis nicht kurzschließen kann und etwaige Lade-Nebenwirkungen oder Abstürze isoliert sind. Keine Erhöhung erforderlich.
  • Jede Sonde wird platziert, aufgelöst und dann entfernt; eine bereits vorhandene Datei wird gesichert und wiederhergestellt.
  • Es modelliert die moderne LOAD_LIBRARY_SEARCH-Reihenfolge, daher wird es nur auf Phantom-/Suchreihenfolgen-/Seitenlade-Kandidaten angewendet. .local, PATH und AppInit/AppCert-Kandidaten verwenden andere Mechanismen und werden als Übersprungen gemeldet.
  • Es schreibt vorübergehend Dateien an Kandidatenpositionen (mittlere Auswirkung); lassen Sie es für vollständig passive, schreibgeschützte Triage ausgeschaltet.
root@kitploit:~
# Standardbenutzer-Triage mit loader-verifizierter Suchreihenfolge (kein Canary, kein ETW)
.\DLLHijackHunter.exe --lpe-only --no-canary --no-etw --verify-load

Vergleich

¹ Vorkompilierte Dual-Arch-Canaries sind eingebettet – **kein Compiler erforderlich**, um einen Ladevorgang zu bestätigen. Nur der optionale Export-Forwarding-*Proxy* (um einen Export-verbrauchenden Host am Leben zu erhalten) benötigt MSVC.
² Über angreifer-bezogene ACL-Beschreibbarkeit (siehe Filter-Pipeline). Sie reduziert – nicht eliminiert – Fehlalarme; die Heuristiken der weichen Filter (Manifest/SxS/LoadLibraryEx) enthalten noch Unsicherheit. Unverifizierte statische Funde sind jetzt unterhalb der Stufe **Hoch** gedeckelt.
³ Abgeleitet vom Autostart-Status, kein verifizierter Neustart-Test.
⁴ Export-Forwarding-Proxy ist experimentell/nach bestem Wissen (siehe Hinweis oben).
⁵ Nur Dienst-/Aufgaben-/COM-Trigger; UAC-Bypass-Funde werden nicht durch Canaries ausgelöst.
⁶ Unterstützt durch einen gebündelten Snapshot des HijackLibs-Datensatzes (~590 Einträge); aktualisierbar von hijacklibs.net.

Verwendung

Voraussetzungen

  • Windows 10/11 oder Windows Server 2016+
  • .NET 8.0-Runtime (oder einen eigenständigen Build verwenden)
  • Administratorrechte empfohlen (erforderlich für ETW, Canary-Bereitstellung und einige Dienstauslöser)

Build

root@kitploit:~
git clone https://github.com/ghostvectoracademy/DLLHijackHunter.git
cd DLLHijackHunter

# Build (eigenständige einzelne Datei)
dotnet publish src/DLLHijackHunter/DLLHijackHunter.csproj `
    -c Release -r win-x64 --self-contained `
    -p:PublishSingleFile=true -o ./publish

# Oder das Build-Skript verwenden
.\build.ps1

Schnellstart

root@kitploit:~
# Vollständiger aggressiver Scan (empfohlen, erfordert Administrator)
.\DLLHijackHunter.exe --profile aggressive

# Sicherer Scan (keine Dateiablagen, keine Auslöser)
.\DLLHijackHunter.exe --profile safe

# Auf UAC-Bypass fokussierter Scan
.\DLLHijackHunter.exe --profile uac-bypass

# Eine bestimmte Binärdatei anvisieren
.\DLLHijackHunter.exe --target "C:\Program Files\MyApp\app.exe"

# Nach Dateinamen anvisieren (Teilübereinstimmung)
.\DLLHijackHunter.exe --target notepad.exe

# Nur bestätigte Funde
.\DLLHijackHunter.exe --profile redteam --format json -o report.json

CLI-Optionen

root@kitploit:~
DLLHijackHunter — Automatisierte DLL-Hijacking-Erkennung

Optionen:
  -p, --profile <Profil>         Scan-Profil [Standard: aggressive]
                                   aggressive | strict | safe | redteam | uac-bypass
  -o, --output <Pfad>            Ausgabedateipfad (Format wird automatisch erkannt)
  -f, --format <Format>          Ausgabeformat [Standard: console]
                                   console | json | html
  -t, --target <Ziel>            Bestimmte Binärdatei, Verzeichnis oder Dateiname anvisieren
      --min-confidence <Wert>    Minimaler Konfidenzschwellwert 0–100. Wenn weggelassen, gilt
                                   der eigene Schwellwert des Profils; eine Übergabe überschreibt ihn.
      --no-canary                Canary-Bestätigung deaktivieren
      --no-etw                   ETW-Laufzeiterkennung deaktivieren
      --verify-load              Suchreihenfolge mit dem echten Loader verifizieren (siehe unten).
                                   Standardbenutzer; schreibt vorübergehend eine harmlose Sonde.
      --confirmed-only           Nur Canary-bestätigte Funde anzeigen
      --lpe-only                 Strenges LPE-Jagen: System32/Programme ignorieren, nur
                                   standardbenutzer-beschreibbare Schwachstellen anzeigen
      --log-file <Pfad>          Eine Diagnose-Scan-Protokolldatei schreiben
  -v, --verbose                  Ausführliche Ausgabe

Hinweis: --min-confidence wird nur als Überschreibung behandelt, wenn Sie es explizit übergeben. Andernfalls wird der Schwellwert des ausgewählten Profils verwendet (z. B. safe = 50 %, strict = 80 %).

Scan-Profile


Bewertung

Jeder Fund erhält Konfidenz- und Auswirkungssignale, die zu einer endgültigen Priorisierungsstufe kombiniert werden.

Typische Auswirkungsüberlegungen umfassen:

  • erlangte Privilegien
  • Auslöserzuverlässigkeit
  • Tarnung
  • Neustart-Persistenz

Die bestätigte Canary-Ausführung sollte als das stärkste Validierungssignal betrachtet werden.

Stufengrenzen: Die Stufen Hoch und Bestätigt sind Funden vorbehalten, die durch ein Nachweissignal gestützt werden – einen gefeuerten Canary, eine ETW-Laufzeit-Ladebeobachtung oder eine dokumentierte Wissensdatenbank-Übereinstimmung. Ein rein statischer Suchreihenfolgen-Treffer, so sauber er auch sein mag, ist am oberen Ende der Stufe Mittel gedeckelt und als Nur statisch gekennzeichnet, sodass unverifizierte Heuristiken niemals als hochsicher präsentiert werden.

Empfohlene Triage-Konfiguration

Da die Beschreibbarkeit angreifer-bezogen ausgewertet wird, sind sowohl elevated als auch Standardbenutzer-Läufe sinnvoll:

  • Für die LPE-Triage ist die vertrauenswürdigste Konfiguration ein Standardbenutzer-Lauf mit --lpe-only (und --no-canary, wenn kein Compiler verfügbar ist) – jeder verbleibende Fund ist wirklich von einem unprivilegierten Prinzipal beschreibbar.
  • Elevated Läufe sind für ETW und Canary-Bestätigung erforderlich und jetzt vor der historischen „alles in System32 sieht beschreibbar aus“-Inversion sicher.

Sicherheit

DLLHijackHunter ist für defensive Sicherheitsforschung, Laborvalidierung, Auditierung und Red-Team-Simulation in autorisierten Umgebungen konzipiert.

Verwenden Sie es nur auf Systemen und Netzwerken, die Ihnen gehören oder für deren Bewertung Sie ausdrücklich autorisiert sind.

Betriebshinweise

  • Der Canary-Modus schreibt Test-DLLs an Kandidatenpositionen
  • Einige Auslöser können während der Validierung kurzzeitig Dienste/Aufgaben starten oder stoppen
  • Proxy/Export-Forwarding-Canaries können empfindliche Ziele destabilisieren
  • Das sichere Profil ist der bevorzugte Modus für die Produktionstriage, wenn Dateiablagen und Auslöser nicht akzeptabel sind

Ausgabe

DLLHijackHunter unterstützt:

  • Konsolenberichte
  • JSON-Export
  • HTML-Export

Empfohlener Arbeitsablauf:

  1. Führen Sie einen breiten Scan durch
  2. Überprüfen Sie die hochsicheren Funde
  3. Verwenden Sie die Canary-Bestätigung selektiv für hochwertige Pfade
  4. Bewahren Sie die JSON/HTML-Ausgabe für Berichte und Triage auf

Lizenz

MIT


Credits

Erstellt von GhostVector Academy.

Tool herunterladen
TypBeschreibungTarnungStatus
PhantomDLL existiert nirgendwo auf der FestplatteHochImplementiert
SuchreihenfolgeDLL früher in der Windows-Suchreihenfolge platzierenHochImplementiert
SeitenladenMissbrauch legitimer Apps, die DLLs aus ihrem Verzeichnis ladenHochImplementiert (AutoElevate-Kopie-in-Temp-Pfad)
.local-UmleitungHijack via .local-VerzeichnisumleitungHochImplementiert
Umgebungs-PATHBewaffnung von beschreibbaren Verzeichnissen im systemweiten PATHHochImplementiert (kuratierte Dienst-/DLL-Zuordnung)
AppInit-DLLsMissbrauch des AppInit_DLLs-RegistrierungsschlüsselsNiedrigImplementiert
AppCert-DLLsMissbrauch des AppCertDLLs-Registrierungsschlüssels (wird in jeden CreateProcess-/WinExec-Aufrufer geladen)NiedrigImplementiert
Aktuelles ArbeitsverzeichnisHijack über das aktuelle ArbeitsverzeichnisNiedrigGeplant — wird derzeit von keinem Erkennungspfad erzeugt
FunktionDLLHijackHunterRobberDLLSpyWinPEASProcmon
Automatisierte Erkennung✅✅✅✅❌
Phantom-DLL-Erkennung✅❌✅❌✅
Suchreihenfolgen-Analyse✅❌❌❌❌
ACL-basierte Beschreibbarkeitsprüfung✅Teilweise❌Basis❌
ETW-Echtzeitüberwachung✅❌❌❌✅
Canary-Bestätigung✅¹❌❌❌❌
Privilegienausweitungsprüfung✅❌❌❌❌
UAC-Bypass-Erkennung✅❌❌❌❌
Fehlalarmreduzierung✅²KeineBasisKeineKeine
Neustart-Persistenz-Prüfung✅³❌❌❌❌
Proxy-DLL-Generierung✅⁴❌❌❌❌
Konfidenz-Bewertung✅❌❌❌❌
Automatischer Auslöser (Dienst/Aufgabe/COM)✅⁵❌❌❌❌
HTML/JSON-Berichte✅❌❌❌❌
Threat-Intelligence-Korrelation✅⁶❌❌❌❌
Automatisierte PATH-Exploits✅❌❌❌❌
Zielgerichtetes Scannen✅❌❌❌✅
Eigenständige Binärdatei✅❌❌✅❌
ProfilAnwendungsfallCanaryETWUAC-BypassMin. KonfidenzAuslöser
aggressiveVollständiges Audit, Laborumgebungen✅✅✅15%Dienste, Aufgaben, COM
strictNur hochsichere Funde✅✅❌80%Dienste, Aufgaben
safeProduktionssysteme, schreibgeschützt❌❌❌50%Keine
redteamNur bestätigt ausnutzbar✅✅❌50%Dienste, Aufgaben, COM
uac-bypassNur UAC-Bypass-Vektoren❌❌✅20%Nur AutoElevate