
TCP-Port-Weiterleitungs-Dienstprogramm
PortBender ist ein TCP-Port-Umleitungsdienstprogramm, das es einem Red-Team-Operator ermöglicht, eingehenden Datenverkehr, der für einen TCP-Port (z. B. 445/TCP) bestimmt ist, auf einen anderen TCP-Port (z. B. 8445/TCP) umzuleiten. PortBender enthält ein Aggressor-Skript, das Operatoren nutzen können, um das Tool in Cobalt Strike zu integrieren. Da das Tool jedoch als Reflective DLL implementiert ist, kann es in jedes C2-Framework integriert werden, das das Laden von Modulen über eine „ReflectiveLoader“-Schnittstelle unterstützt [1]. Das Tool ermöglicht es Operatoren außerdem, einen Backdoor/Persistenzmechanismus zu simulieren, der in der „PortServ.sys“-Funktion des Duqu-2.0-Bedrohungsakteurs verwendet wird.
PortBender nutzt die WinDivert-Bibliothek, um Netzwerkverkehr über die Windows Filtering Platform (WFP) abzufangen. Das Design von PortBender ist stark von der DivertTCPConn-Anwendung beeinflusst, die ebenfalls die WinDivert-Bibliothek verwendet [1].
PortBender hat zwei Betriebsmodi. Der erste ist der „Redirector-Modus“, der zweite der „Backdoor-Modus“. Im Redirector-Modus wird jede Verbindung zu einem Zielport (z. B. 445/TCP) auf einen alternativen Port (z. B. 8445/TCP) umgeleitet. Im Backdoor-Modus wird der Datenverkehr nur umgeleitet, wenn ein Angreifer ein speziell formatiertes TCP-Paket an einen Zielport (z. B. 443/TCP) sendet. PortBender fügt dann die Client-IP-Adresse zu einer Liste von Backdoor-Clients hinzu und leitet den gesamten Datenverkehr zu diesem Zielport an einen alternativen Port (z. B. 3389/TCP) um. Ein Operator kann diesen Mechanismus nutzen, um die Persistenztechnik zu emulieren, die der Duqu-2.0-Bedrohungsakteur bei der Kompromittierung von Kaspersky eingesetzt hat.
Um PortBender auszuführen, müssen wir zuerst das Skript „PortBender.cna“ in Cobalt Strike importieren und die WinDivert32.sys- oder WinDivert64.sys-Binärdatei, die in „PortBender.zip“ enthalten ist, je nach Architektur des Zielsystems auf den Zielrechner hochladen. Das Hilfemenü von PortBender mit der Beispielverwendung ist unten dargestellt:
beacon> help PortBender
Redirect Usage: PortBender redirect FakeDstPort RedirectedPort
Backdoor Usage: PortBender backdoor FakeDstPort RedirectedPort Password
Examples:
PortBender redirect 445 8445
PortBender backdoor 443 3389 praetorian.antihacker
Angenommen, wir möchten PortBender im Redirector-Modus ausführen, um von einem kompromittierten Windows-System aus einen SMB-Relay-Angriff durchzuführen. Dazu können wir PortBender anweisen, den gesamten Datenverkehr zu 445/TCP auf einen alternativen Port 8445/TCP umzuleiten, auf dem ein Angreifer-SMB-Dienst läuft. In diesem Beispiel führen wir den Befehl „PortBender redirect 445 8445“ aus. Die erwartete Ausgabe ist unten dargestellt:
In diesem Beispiel möchten wir den verdeckten Persistenzmechanismus auf einem kompromittierten, mit dem Internet verbundenen IIS-Webserver bereitstellen. Hier führen wir den Befehl „PortBender backdoor 443 3389 praetorian.antihacker“ aus, um den Backdoor-Dienst anzuweisen, alle Verbindungen zu 443/TCP auf 3389/TCP auf dem kompromittierten Host umzuleiten, sofern die IP-Adresse das angegebene Schlüsselwort „praetorian.antihacker“ liefert. Die erwartete Ausgabe ist unten dargestellt:
[1] https://github.com/Arno0x/DivertTCPconn
[2] https://github.com/stephenfewer/ReflectiveDLLInjection
[3] https://github.com/basil00/Divert
[4] https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445