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
EternalBlueC — EternalBlue Suite neu erstellt in C/C++ welche enthält: MS17-010 Exploit, EternalBlue Schwachstellendetektor, DoublePulsar Detektor und DoublePulsar Shellcode & DLL Hochlader | Kitploit
Tools/GitHubGitHub/bhassani/eternalbluec
Exploit-FrameworksSchwachstellenanalyseExploitationShellcodeMalware-AnalysePenetrationstestsLernen & BildungShellcode-GenerierungPayload-EntwicklungBinary-Exploitation
GitHubbhassani/eternalbluec

EternalBlueC

61313812vor 18h 11mVon Kitploit geprüft

EternalBlue Suite neu erstellt in C/C++ welche enthält: MS17-010 Exploit, EternalBlue Schwachstellendetektor, DoublePulsar Detektor und DoublePulsar Shellcode & DLL Hochlader

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

License: GPL v3

EternalBlueC

EternalBlue-Suite, neu geschrieben in C/C++, beinhaltet:

  • MS17-010 Exploit (enthält DoublePulsar)
  • EternalBlue/MS17-010 Schwachstellenscanner
  • DoublePulsar-Erkenner
  • DoublePulsar DLL hochladen
  • DoublePulsar Shellcode hochladen
  • DoublePulsar DLL mit SMB-Struktur hochladen
  • DoublePulsar Shellcode mit SMB-Struktur hochladen
  • DoublePulsar EXE in einer DLL hochladen

Projekterfolge

  • Shellcode hochladen – abgeschlossen und funktionsfähig, injizieren Sie Ihren Shellcode in einen beliebigen Prozess.
  • DLL hochladen – abgeschlossen und funktionsfähig, injizieren Sie Ihre DLL in einen beliebigen Prozess.
  • DLL mit eingebetteter EXE hochladen – abgeschlossen, injizieren Sie Ihre DLL in einen beliebigen Prozess und legt die ausführbare Datei als "mssecsvc.exe" ab.

Projektziele

  • Ermöglichen, dass DoublePulsar-Negotiation-, Session-Setup-, Tree-Connect-, TransNamedPipe- und Transaction2-Pakete dynamisch mit SMB-Strukturen und Hex-Captures generiert werden können.
  • Ermöglichen, das EternalBlue-Exploit-Payload zu bearbeiten, um die DoublePulsar-Implantierung zu entfernen und stattdessen benutzerdefinierte Shellcodes zu senden.
  • Ermöglichen, dass EternalBlue-Pakete dynamisch generiert werden können.
  • Benutzereingabe für alle IP-Adressen, Payloads wie Shellcode oder Dateipfade und Autorisierung zum Fortfahren anfordern.
  • Ausführlicher sein
  • Windows-Version aus der SMB-Antwort auf dem Bildschirm anzeigen
  • Unterstützung für Kommandozeilenparameter hinzufügen (DoublepulsarExecute.exe -h 192.168.0.8 -f PopCalculatorShellcode.bin )
  • Mehr Fehlerüberprüfung wie Socket-Timeout hinzufügen
  • EternalBlue- und DoublePulsar-Suite

    • ms17_vuln_status.cpp – Dieses Programm sendet 4 SMB-Pakete. 1 Negotiation, 1 Session Setup, 1 Tree Connect und 1 TransNamedPipe-Anfrage. Dieses Programm liest dann die NT_STATUS-Antwort von der TransNamedPipeRequest (PeekNamedPipe-Anforderung) und bestimmt, ob NT_STATUS im SMB-Paket = 0xC0000205 (STATUS_INSUFF_SERVER_RESOURCES) ist. Wenn dies zutrifft, ist das Ziel anfällig für MS17-010. Getestet auf nicht gepatchtem Windows 7 x64.

    ms17vulnstatus

    • doublepulsar_check.cpp – Dieses Programm sendet 4 SMB-Pakete. 1 Negotiation, 1 Session Setup, 1 Tree Connect und ein Trans2 SESSION_SETUP-Paket. Durch das Senden des Trans2 SESSION_SETUP-Pakets kann die gesendete Multiplex-ID mit der Multiplex-ID im Trans2-Antwortpaket verglichen werden: 0x51 oder 81. DoublePulsar liest die gesendete Multiplex-ID und gibt nach erfolgreichem Ping-Befehl eine +10 in Hexadezimal für die Multiplex-ID in der Trans2 SESSION_SETUP-Antwort zurück. Danach werden Befehle gesendet, um die DoublePulsar-Hintertür zu deaktivieren (Burn). Der DoublePulsar-Burn-Befehl befindet sich in den Timeout-Parametern des SMB-Pakets. Danach wird DoublePulsar inaktiv, aber nicht vom System entfernt. Getestet auf Windows 7 x64.

    doublepulsar_check

    • DoublePulsarXORKeyCalculator.cpp – Dieses Programm sendet 4 SMB-Pakete. 1 Negotiation-Paket und 3 Anfragen. Die letzte Anfrage ist eine Trans2 SESSION_SETUP-Anfrage. Eine Trans2 SESSION_SETUP-Antwort wird empfangen und die SMB-Signatur wird extrahiert (Recvbuff[18] -> Recvbuff[22]). Recvbuff[22] gibt den Architekturtyp an. Wenn 1, ist das Ziel x64-Bit, wenn 0, ist das Ziel x86/32-Bit. Die SMB-Signatur wird von den unsigned char Zeichen in einen unsigned integer konvertiert.

    SMBSignatureWireshark

    Diese Werte von Recvbuff[18] -> Recvbuff[22] werden dann durch die DoublePulsar-XOR-Key-Calculator-Funktion geschickt, die einen unsigned integer XOR-Key erzeugt, der verwendet werden kann, um den Shellcode oder das DLL-Payload zu verschlüsseln, das zu DoublePulsar hochgeladen wird. Getestet auf Windows 7 x64.

    Beispiel-Screenshot:

    XORCalculator

    Gleicher Schlüssel aus der ursprünglichen NSA-Binärdatei in FUZZBUNCH

    XORCalculatorFromNSAbinary

    • DoublePulsar_structure_ping.cpp – Dieses Programm sendet 4 SMB-Pakete. 1 Negotiation, 1 Session Setup, 1 Tree Connect und ein Trans2 SESSION_SETUP-Paket. Der Unterschied zu doublepulsar_check.cpp besteht darin, dass hier das Trans2 DoublePulsar-PING-Paket mithilfe einer Struktur generiert wird, anstatt einer hartcodierten SMB-Hex-String, die ich aus einer Wannacry-Probe extrahiert habe. Ein weiterer Unterschied ist, dass dieses Programm das TreeConnect-Paket dynamisch generiert, anstatt das hartcodierte aus der Wannacry-Probe zu verwenden. Das in diesem Programm generierte Ping-Paket zeigt Ihnen, ob DoublePulsar auf dem entfernten Rechner installiert ist.

    • DoublePulsar_structure_exec.cpp – Dieses Programm sendet 5 SMB-Pakete. 1 SMB Negotiation, 1 Session Setup, 1 Tree Connect, 1 DoublePulsar Trans2 SESSION_SETUP-Ping-Paket und 1 DoublePulsar Trans2 SESSION_SETUP-Executionspaket. Der Unterschied zu Doublepulsar_UploadShellcode.cpp besteht darin, dass hier das Trans2 DoublePulsar-Executionspaket mithilfe einer Struktur generiert wird, anstatt einer hartcodierten SMB-Hex-String aus einer Wannacry-Probe.

    • Doublepulsar_UploadDLL.cpp – Dieses Programm ist für DLLs vorgesehen. Es sendet 4 SMB-Pakete zusammen mit den DLL-Daten in SMB-Trans2-Paketen. 1 Negotiation, 1 Session Setup, 1 Tree Connect, 1 Ping Trans2 SESSION_SETUP-Anfrage und ein Executions-Trans2 SESSION_SETUP-Paket. Das Ping Trans2 SESSION_SETUP-Anfragepaket wird gesendet, um die SMB-Signatur im Trans2 SESSION_SETUP-Antwortpaket zu erhalten. Diese Signatur wird durch den DoublePulsar-XOR-Key-Calculator verarbeitet. Das Programm liest dann eine DLL-Datei und kombiniert sie mit 64-Bit-Kernel- und Userland-Shellcode, um die DLL auszuführen, und XOR-verarbeitet den Puffer mit dem DoublePulsar-XOR-Key, den wir aus der SMB-Signatur berechnet haben. Ein Paket wird generiert, indem Speicher zugewiesen, das Trans2-Paket kopiert, die für die SMB-Transaktion erforderlichen Werte bearbeitet (UserID, TreeID, TotalDataCount, DataCount, ByteCount) und dann die XOR-verarbeiteten Daten (Kernel-Shellcode + DLL) an das Ende kopiert und in einer Schleife mit einer Gesamtpaketlänge von 4096 Bytes auf einmal an DoublePulsar gesendet wird. Gesamtpaketlänge = 4178. 4096 sind für die XOR-verschlüsselten Daten. In zukünftigen Versionen werden auch SMB- und TRANSACTION2-Strukturen implementiert.

    • Doublepulsar_UploadShellcode.cpp – Dieses Programm sendet 5 SMB-Pakete. 1 Negotiation, 1 Session Setup, 1 Tree Connect, 1 Ping Trans2 SESSION_SETUP-Paket und 1 Execute Trans2 SESSION_SETUP-Paket. Das Trans2 SESSION_SETUP-Anfragepaket wird gesendet, um die SMB-Signatur im TRANS2 SESSION_SETUP-Antwortpaket zu erhalten. Diese Signatur wird durch den DoublePulsar-XOR-Key-Calculator verarbeitet. Das Programm kopiert dann Kernel-Shellcode und Beispiel-Shellcode aus einem Puffer, XOR-verarbeitet den Puffer mit dem DoublePulsar-XOR-Key, den wir aus der SMB-Signatur berechnet haben. Ein Paket wird generiert, indem Speicher zugewiesen, das Trans2-Exec-Paket kopiert, die für die SMB-Transaktion erforderlichen Werte bearbeitet (UserID, TreeID, TotalDataCount, DataCount, ByteCount) und dann die SESSION_SETUP-Parameter und 4096 Bytes des XOR-verarbeiteten Shellcode-Daten an das Ende kopiert und mit einer Gesamtpaketlänge von 4178 Bytes an DoublePulsar gesendet wird. Gesamtpaketlänge = 4178. Die NetBIOS-Länge beträgt 4174, da der NetBIOS-Header sich selbst nicht zählt. 12 Bytes dieses Pakets sind für die DoublePulsar-SESSION_SETUP-Parameter. 4096 sind für die XOR-verschlüsselten Daten. In einer zukünftigen Version werden SMB- und TRANSACTION2-Strukturen verwendet.

    UploadShellcode

    • Shellcode generiert von – zerosum0x0 hat benutzerdefinierten Shellcode für ETERNALBLUE geschrieben, der für DOUBLEPULSAR wiederverwendet werden konnte, wenn auch mit einer kleinen Änderung. Da der Syscall-Overwrite im kopierten Shellcode für diesen Anwendungsfall unnötig war, haben wir ihn auskommentiert:
      ;%define SYSCALL_OVERWRITE ; to run at process IRQL in syscall
      Neu kompilieren mit: nasm -w-other -o >(xxd -p -c 16 | sed 's/../\x&/g') external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
      https://github.com/rapid7/metasploit-framework/blob/master/external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
      https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x64.asm
      https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x86.asm
      https://www.rapid7.com/blog/post/2019/10/02/open-source-command-and-control-of-the-doublepulsar-implant/

    • DoublePulsar_UploadExe.cpp – Dieses Programm ist für ausführbare Dateien vorgesehen. Die ausführbare Datei wird in den Speicher eingelesen und in einer Wannacry-Launcher-DLL platziert und über DoublePulsar gesendet. 1 Negotiation, 1 Session Setup, 1 Tree Connect, 1 Trans2 Ping-Paket und mehrere Trans2 exec SESSION_SETUP-Pakete. Das Trans2-Ping-Anfragepaket wird gesendet, um die SMB-Signatur im Trans2-Antwortpaket zu erhalten. Diese Signatur wird durch den DoublePulsar-XOR-Key-Calculator verarbeitet. Dann liest das Programm eine EXE-Datei und kombiniert sie mit 64-Bit-Kernel- und Userland-Shellcode sowie einer Skelett-DLL-Datei und XOR-verarbeitet den Puffer mit dem DoublePulsar-XOR-Key, den wir aus der SMB-Signatur berechnet haben. Ein Paket wird generiert, indem Speicher zugewiesen, das Trans2-Exekutionspaket kopiert, die für die SMB-Transaktion erforderlichen Werte bearbeitet (UserID, TreeID, TotalDataCount, DataCount, ByteCount) und dann die XOR-verarbeiteten Daten (Kernel-Shellcode + DLL + ausführbare Datei) an das Ende kopiert und in einer Schleife mit einer Gesamtpaketlänge von 4096 Bytes auf einmal an DoublePulsar gesendet wird. Gesamtpaketlänge = 4178. Die NetBIOS-Länge beträgt 4174, da der NetBIOS-Header sich selbst nicht zählt. 12 Bytes dieses Pakets sind für die DoublePulsar-SESSION_SETUP-Parameter. 4096 sind für die XOR-verschlüsselten Daten.

    • EternalBlue.cpp – Dieses Programm sendet mehrere SMB-Pakete. Negotiation, SessionSetup, TreeConnect und mehrere NT-trans- und Trans2-Pakete. Diese NT-trans-Pakete sind fehlerhaft (malformed), die den Exploit im Speicher des Zielcomputers vorbereiten (groom). Weitere Leerraum- oder leere SMB-Pakete werden über mehrere Sockets an denselben Port des Ziels gesendet. Der Großteil des EternalBlue-Base64-Payloads wird über Socket 1 gesendet, wo die Negotiation-, SessionSetup- und TreeConnect-Pakete gesendet wurden. Dann werden 20 weitere Sockets erstellt und Daten an diese Sockets gesendet (Socket 3 bis Socket 21). Anschließend wird DoublePulsar über Socket 3 bis Socket 21 gesendet. Die Sockets werden dann vom Programm geschlossen, was EternalBlue und DoublePulsar auf dem Zielcomputer explodieren lässt. Eine SMB-Disconnect- und SMB-Logoff-Anfrage wird dann gesendet und die Verbindung wird geschlossen. Dieser Exploit funktioniert und wurde auf Windows 7 x64 getestet. Es dauerte etwa 5 Sekunden, bis die Hintertür vollständig betriebsbereit war, wie bereits in EternalBlue-Berichten im Internet berichtet. Möglicherweise sind mehrere Exploit-Versuche erforderlich. Es gibt jedoch derzeit einen Fehler mit den TreeID- und UserID-Werten, die in den Paketen nicht korrekt gesetzt werden, was in einer späteren Version behoben wird. Dies wird gegen Maschinen funktionieren, die kürzlich eingeschaltet wurden, da die TreeID und UserIDs auf die Standardwerte gesetzt sind. Diese Pakete müssen ihre TreeID- und UserID-Werte aktualisieren, da sie derzeit auf die Standardwerte "08 00" gesetzt sind. EternalBlue EternalBlue_cmd eternalbluepackets

    Metasploit-Modul

    Ein benutzerdefiniertes Metasploit-Modul erstellt, das ich mit dem Open-Source-DoublePulsar-RCE-Modul von Metasploit funktionsfähig gemacht habe.

    Ich habe die Logik geändert, um die Generierung einer DLL zu ermöglichen, die mit dem x64-Kernel-Shellcode (vorangestellt) zusammengeführt wird, den ich von Wannacry gestohlen habe, damit DoublePulsar die DLL ausführen kann.

    msfconsole

    Zusätzlicher Bildungscode

    Das Repository enthält außerdem Folgendes zu Bildungszwecken und wird von mir NICHT unterstützt:

    • DoublePulsar x86/x64 DLL hochladen Python-Skript
    • EternalBlue All-in-One-Binärdatei
    • Multi-Arch-Kernel-Queue-APC-Assembly-Code und Windows x86/x64 Multi-Arch-Kernel Ring 0 zu Ring 3 über Queued-APC-Kernel-Code
    • EternalBlue x64/x86 Kernel-Payload-Shellcode von worawit
    • Eternalblue-Wiederholungsdatei
    Tool herunterladen