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
ImpulsiveDLLHijack — C#-basiertes Tool, das den Prozess des Auffindens und Ausnutzens von DLL-Hijacks in Zielbinärdateien automatisiert. Die entdeckten Hijacked-Pfade können später bei Red-Team-Operationen eingesetzt werden, um EDRs zu umgehen. | Kitploit
Tools/GitHubGitHub/knight0x07/impulsivedllhijack
Privilege EscalationPersistenzmechanismenExploitationRed TeamingBinary-Exploitation
GitHubknight0x07/impulsivedllhijack

ImpulsiveDLLHijack

C#-basiertes Tool, das den Prozess des Auffindens und Ausnutzens von DLL-Hijacks in Zielbinärdateien automatisiert. Die entdeckten Hijacked-Pfade können später bei Red-Team-Operationen eingesetzt werden, um EDRs zu umgehen.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
554101vor 4 JahrenVon Kitploit geprüft

ImpulsiveDLLHijack

C#-basiertes Tool, das den Prozess der Entdeckung und Ausnutzung von DLL-Hijacks in Ziel-Binärdateien automatisiert. Die entdeckten Hijack-Pfade können später bei RedTeam-Operationen eingesetzt werden, um EDRs zu umgehen.

1. Methodischer Ansatz:

Das Tool automatisiert im Wesentlichen die folgenden Schritte für DLL-Hijacking:

  • Erkennung – Auffinden potenziell verwundbarer DLL-Hijack-Pfade
  • Ausnutzung – Bestätigung, ob die bestätigende DLL aus dem Hijack-Pfad geladen wurde, was zu einer Bestätigung eines zu 100 % ausnutzbaren DLL-Hijacks führt!

Erkennungsmethodik:

  • Ziel-Binärpfad an ImpulsiveDLLHijack.exe übergeben
  • Automatisierung von ProcMon zusammen mit der Ausführung der Ziel-Binärdatei, um potenziell verwundbare DLL-Hijack-Pfade zu finden.

Ausnutzungsmethodik:

  • Parsen der potenziell verwundbaren DLL-Hijack-Pfade aus der CSV-Datei, die automatisch von ProcMon erstellt wurde.

  • Kopieren der bestätigenden DLL (entsprechend der PE-Architektur) nacheinander in die Hijack-Pfade und gleichzeitiges Ausführen der Ziel-Binärdatei für eine vordefinierte Zeitspanne.

  • Während des DLL-Hijacking-Prozesses können folgende Ausgaben aus dem Hijack-Szenario gesammelt werden:

    • Die bestätigende DLL, die sich im potenziell verwundbaren Hijack-Pfad befindet, wird von der Ziel-Binärdatei geladen. Wir erhalten folgende Ausgabe auf der Konsole, die besagt, dass der DLL-Hijack erfolgreich war – DLL Hijack Successful -> DLLName: | <Target_binary_name>
    • Die bestätigende DLL, die sich im potenziell verwundbaren Hijack-Pfad befindet, wird nicht von der Ziel-Binärdatei geladen. Wir erhalten folgende Ausgabe auf der Konsole, die besagt, dass der DLL-Hijack nicht erfolgreich war – DLL Hijack Unsuccessful -> <DLL_Path>

    Szenarien: Einstiegspunkt nicht gefunden:

    • Die bestätigende DLL, die sich im potenziell verwundbaren Hijack-Pfad befindet, wird nicht von der Ziel-Binärdatei geladen, da der Einstiegspunkt der DLL von unserem Standard-Einstiegspunkt "DllMain" abweicht, was einen Fehler "Entry Point Not Found" auslöst. Wir erhalten folgende Ausgabe auf der Konsole, die besagt, dass der DLL-Hijack möglich gewesen wäre, wenn der Einstiegspunkt korrekt gewesen wäre -> DLL Hijack Successful -> [Entry Point Not Found - Manual Analysis Required!]: <Hijack_path>
    • Die bestätigende DLL, die sich im potenziell verwundbaren Hijack-Pfad befindet, wird von der Ziel-Binärdatei ausgeführt, selbst nachdem der Einstiegspunkt der DLL von unserem Standard-Einstiegspunkt "DllMain" abweicht, was einen Fehler "Entry Point Not Found" auslöst. Wir erhalten folgende Ausgabe auf der Konsole, die besagt, dass der DLL-Hijack selbst nach einem falschen Einstiegspunkt erfolgreich war -> DLL Hijack Successful -> [Entry Point Not Found]: <Hijack_path>

Hinweis: Der Fehler "Entry point not found" wird programmgesteuert vom Code behandelt; es ist nicht nötig, die MsgBox manuell zu schließen :) # Andernfalls würde dies den weiteren Code zum Absturz bringen****

  • Sobald der DLL-Hijacking-Prozess für jeden potenziell verwundbaren DLL-Hijack-Pfad abgeschlossen ist, erhalten wir die endgültige Ausgabe sowohl auf der Konsole als auch in einer Textdatei (C:\DLLLogs\output_logs.txt) im folgenden Format:

    • <DLLHijack_path> --> DLL Hijack Successful (wenn der Hijack erfolgreich war)
    • <DLLHijack_path> --> DLL Hijack Unsuccessful (wenn der Hijack nicht erfolgreich war)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found - Manual Analysis Required] (wenn der Einstiegspunkt nicht gefunden wurde, aber nach manueller Analyse erfolgreich sein kann)
    • <DLLHijack_path> --> DLL Hijack Successful [Entry Point Not Found] (wenn der Hijack erfolgreich war, obwohl der Einstiegspunkt nicht gefunden wurde)
    • <DLLHijack_path> --> Copy: Access to Path is Denied (Zugriff verweigert)

**Diese bestätigten DLL-Hijack-Pfade können später während eines Red-Team-Einsatzes verwendet werden, um einen bösartigen DLL-Implant über eine legitime ausführbare Datei (z. B. OneDrive, Firefox, MSEdge, "Bring your own LOLBINs" usw.) zu laden und hochmoderne EDRs zu umgehen, da die meisten von ihnen DLL-Hijacking nicht erkennen, wie von George Karantzas und Constantinos Patsakis in ihrem Forschungsbericht festgestellt wurde: https://arxiv.org/abs/2108.10422

2. Voraussetzungen:

  • Procmon.exe -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
  • Eigene bestätigende DLLs:
    • Dies sind DLL-Dateien, die dem Tool helfen, die Bestätigung zu erhalten, ob die DLLs erfolgreich aus dem identifizierten Hijack-Pfad geladen wurden
    • Kompiliert aus dem oben bereitgestellten MalDLL-Projekt (oder verwenden Sie die vorkompilierten Binärdateien, wenn Sie mir vertrauen!)
    • Name der 32-Bit-DLL sollte: maldll32.dll
    • Name der 64-Bit-DLL sollte: maldll64.dll
    • NuGet-Paket installieren:** PeNet** -> https://www.nuget.org/packages/PeNet/ (Voraussetzung beim Kompilieren des ImpulsiveDLLHijack-Projekts)

Hinweis: Die Voraussetzungen i & ii sollten im Verzeichnis der ImpulsiveDLLHijack.exe selbst abgelegt werden.

  • Build- und Setup-Informationen:

    • ImpulsiveDLLHijack

      • Repository in Visual Studio klonen
      • Sobald das Projekt in Visual Studio geladen ist, gehe zu "Projekt" --> "NuGet-Pakete verwalten" --> Nach Paketen suchen und "PeNet" installieren -> https://www.nuget.org/packages/PeNet/
      • Projekt erstellen!
      • Die ImpulsiveDLLHijack.exe befindet sich im bin-Verzeichnis.
    • Und für die bestätigenden DLLs:

      • Repository in Visual Studio klonen
      • Projekt mit x86 und x64 erstellen
      • x86-Release als maldll32.dll und x64-Release als maldll64.dll umbenennen
    • Setup: Die bestätigenden DLLs (maldll32 & maldll64) in das Verzeichnis der ImpulsiveDLLHijack.exe kopieren und dann ImpulsiveDLLHijack.exe ausführen :))

3. Verwendung:

usage

4. Beispiele:

  • Ziel-Ausführbare Datei: OneDrive.exe

  • Stufe: Erkennung

first

  • Stufe: Ausnutzung

    • Erfolgreiche DLL-Hijacks:

    success_one

    • Nicht erfolgreiche DLL-Hijacks:

    unsuccessful

    • DLL wird nicht geladen, da der Einstiegspunkt nicht identisch ist! Manuelle Analyse könnte einen erfolgreichen DLL-Hijack ergeben :)

    entrypoint_not_found

    • DLL-Hijack trotz nicht identischen Einstiegspunkts erfolgreich!

    entry_pointnot found - but dll is executed

  • Stufe: Endergebnisse und Protokolle

    • C:\DLLLogs\output_logs.txt:

    output_logs

Vielen Dank, Feedback wäre sehr willkommen! - knight!

Tool herunterladen