Tunneling and Port Forwarding
Nmap-Tipp
ICMP- und SYN-Scans können nicht durch Socks-Proxys getunnelt werden, daher müssen wir Ping-Discovery deaktivieren (-Pn
) und TCP-Scans (-sT
) angeben, damit dies funktioniert.
Bash
Host -> Jump -> InternalA -> InternalB
SSH
SSH grafische Verbindung (X)
Local Port2Port
Öffnen Sie einen neuen Port im SSH-Server --> Anderer Port
Port2Port
Lokaler Port --> Kompromittierter Host (SSH) --> Dritte_Box:Port
Port2hostnet (proxychains)
Lokaler Port --> Kompromittierter Host (SSH) --> Überall
Reverse Port Forwarding
Dies ist nützlich, um Reverse-Shells von internen Hosts über eine DMZ zu Ihrem Host zu erhalten:
VPN-Tunnel
Sie benötigen Root-Rechte auf beiden Geräten (da Sie neue Schnittstellen erstellen werden) und die sshd-Konfiguration muss Root-Login erlauben:
PermitRootLogin yes
PermitTunnel yes
Aktivieren Sie das Forwarding auf der Server-Seite
Setzen Sie eine neue Route auf der Client-Seite
SSHUTTLE
Sie können tunneln über ssh den gesamten Verkehr zu einem Subnetz über einen Host. Zum Beispiel, den gesamten Verkehr, der zu 10.10.10.0/24 geht, weiterleiten.
Mit einem privaten Schlüssel verbinden
Meterpreter
Port2Port
Lokaler Port --> Kompromittierter Host (aktive Sitzung) --> Dritte_Box:Port
SOCKS
Eine andere Möglichkeit:
Cobalt Strike
SOCKS-Proxy
Öffnen Sie einen Port im Teamserver, der an allen Schnittstellen lauscht und verwendet werden kann, um den Verkehr durch das Beacon zu leiten.
rPort2Port
In diesem Fall wird der Port im Beacon-Host geöffnet, nicht im Team-Server, und der Verkehr wird an den Team-Server gesendet und von dort an den angegebenen Host:Port.
Zu beachten:
Beacons Reverse-Port-Forwarding ist dafür ausgelegt, Verkehr zum Team-Server zu tunneln, nicht um zwischen einzelnen Maschinen weiterzuleiten.
Der Verkehr wird innerhalb des C2-Verkehrs von Beacon getunnelt, einschließlich P2P-Links.
Admin-Rechte sind nicht erforderlich, um Reverse-Port-Forwarding auf hohen Ports zu erstellen.
rPort2Port lokal
In diesem Fall wird der Port im Beacon-Host geöffnet, nicht im Team-Server, und der Verkehr wird an den Cobalt Strike-Client gesendet (nicht an den Team-Server) und von dort an den angegebenen Host:Port
reGeorg
https://github.com/sensepost/reGeorg
Sie müssen eine Webdatei hochladen: ashx|aspx|js|jsp|php|php|jsp
Chisel
Sie können es von der Release-Seite von https://github.com/jpillora/chisel herunterladen. Sie müssen die gleiche Version für Client und Server verwenden.
socks
Portweiterleitung
Rpivot
https://github.com/klsecservices/rpivot
Reverse-Tunnel. Der Tunnel wird vom Opfer gestartet. Ein socks4-Proxy wird auf 127.0.0.1:1080 erstellt.
Pivot durch NTLM-Proxy
Socat
https://github.com/andrew-d/static-binaries
Bind-Shell
Reverse-Shell
Port2Port
Port2Port über Socks
Meterpreter über SSL Socat
Sie können einen nicht-authentifizierten Proxy umgehen, indem Sie diese Zeile anstelle der letzten in der Konsole des Opfers ausführen:
https://funoverip.net/2011/01/reverse-ssl-backdoor-with-socat-and-metasploit/
SSL Socat Tunnel
/bin/sh Konsole
Erstellen Sie Zertifikate auf beiden Seiten: Client und Server
Remote Port2Port
Verbinde den lokalen SSH-Port (22) mit dem 443-Port des Angreiferhosts
Plink.exe
Es ist wie eine Konsolen-PuTTY-Version (die Optionen sind sehr ähnlich zu einem ssh-Client).
Da dieses Binary auf dem Opfer ausgeführt wird und es sich um einen ssh-Client handelt, müssen wir unseren ssh-Dienst und -Port öffnen, damit wir eine umgekehrte Verbindung herstellen können. Dann, um nur lokal zugängliche Ports auf einen Port in unserer Maschine weiterzuleiten:
Windows netsh
Port2Port
Sie müssen ein lokaler Administrator sein (für jeden Port)
SocksOverRDP & Proxifier
Sie müssen RDP-Zugriff über das System haben. Herunterladen:
SocksOverRDP x64 Binaries - Dieses Tool verwendet
Dynamic Virtual Channels
(DVC
) aus der Remote-Desktop-Service-Funktion von Windows. DVC ist verantwortlich für das Tunneln von Paketen über die RDP-Verbindung.
Laden Sie in Ihrem Client-Computer SocksOverRDP-Plugin.dll
wie folgt:
Jetzt können wir uns über RDP mit dem Opfer verbinden, indem wir mstsc.exe
verwenden, und wir sollten eine Aufforderung erhalten, die besagt, dass das SocksOverRDP-Plugin aktiviert ist und es auf 127.0.0.1:1080 lauschen wird.
Verbinden Sie sich über RDP und laden Sie die SocksOverRDP-Server.exe
-Binärdatei auf dem Opfercomputer hoch und führen Sie sie aus:
Jetzt bestätigen Sie auf Ihrer Maschine (Angreifer), dass der Port 1080 lauscht:
Jetzt können Sie Proxifier verwenden, um den Datenverkehr über diesen Port zu proxyen.
Windows GUI-Apps proxifizieren
Sie können Windows GUI-Apps dazu bringen, über einen Proxy zu navigieren, indem Sie Proxifier verwenden. In Profil -> Proxy-Server fügen Sie die IP und den Port des SOCKS-Servers hinzu. In Profil -> Proxifizierungsregeln fügen Sie den Namen des Programms hinzu, das proxifiziert werden soll, und die Verbindungen zu den IPs, die Sie proxifizieren möchten.
NTLM-Proxy-Umgehung
Das zuvor erwähnte Tool: Rpivot OpenVPN kann dies ebenfalls umgehen, indem Sie diese Optionen in der Konfigurationsdatei festlegen:
Cntlm
Es authentifiziert sich gegen einen Proxy und bindet einen Port lokal, der an den externen Dienst weitergeleitet wird, den Sie angeben. Dann können Sie das Tool Ihrer Wahl über diesen Port verwenden. Zum Beispiel, um Port 443 weiterzuleiten.
Jetzt, wenn Sie beispielsweise im Opfer den SSH-Dienst so einstellen, dass er auf Port 443 lauscht. Sie können sich über den Angreifer-Port 2222 mit ihm verbinden. Sie könnten auch einen meterpreter verwenden, der sich mit localhost:443 verbindet und der Angreifer auf Port 2222 lauscht.
YARP
Ein Reverse-Proxy, der von Microsoft erstellt wurde. Sie finden ihn hier: https://github.com/microsoft/reverse-proxy
DNS Tunneling
Iodine
Root wird in beiden Systemen benötigt, um tun-Adapter zu erstellen und Daten zwischen ihnen über DNS-Abfragen zu tunneln.
Der Tunnel wird sehr langsam sein. Sie können eine komprimierte SSH-Verbindung durch diesen Tunnel erstellen, indem Sie Folgendes verwenden:
DNSCat2
Stellt einen C&C-Kanal über DNS her. Es benötigt keine Root-Rechte.
In PowerShell
Sie können dnscat2-powershell verwenden, um einen dnscat2-Client in PowerShell auszuführen:
Portweiterleitung mit dnscat
Ändern Sie den DNS von Proxychains
Proxychains intercepts gethostbyname
libc call und tunnelt TCP-DNS-Anfragen durch den SOCKS-Proxy. Standardmäßig ist der DNS-Server, den Proxychains verwendet, 4.2.2.2 (fest codiert). Um ihn zu ändern, bearbeiten Sie die Datei: /usr/lib/proxychains3/proxyresolv und ändern Sie die IP. Wenn Sie sich in einer Windows-Umgebung befinden, können Sie die IP des Domänencontrollers festlegen.
Tunnel in Go
https://github.com/hotnops/gtunnel
ICMP-Tunneling
Hans
https://github.com/friedrich/hans https://github.com/albertzak/hanstunnel
Root wird in beiden Systemen benötigt, um Tun-Adapter zu erstellen und Daten zwischen ihnen mithilfe von ICMP-Echo-Anfragen zu tunneln.
ptunnel-ng
ngrok
ngrok ist ein Tool, um Lösungen mit einem einzigen Befehl ins Internet zu exponieren. Expositions-URIs sind wie: UID.ngrok.io
Installation
Erstellen Sie ein Konto: https://ngrok.com/signup
Client-Download:
Grundlegende Anwendungen
Dokumentation: https://ngrok.com/docs/getting-started/.
Es ist auch möglich, Authentifizierung und TLS hinzuzufügen, falls erforderlich.
Tunneling TCP
Dateien mit HTTP freigeben
Sniffing HTTP calls
Nützlich für XSS, SSRF, SSTI ... Direkt von stdout oder in der HTTP-Schnittstelle http://127.0.0.1:4040.
Tunneling internal HTTP service
ngrok.yaml einfaches Konfigurationsbeispiel
Es öffnet 3 Tunnel:
2 TCP
1 HTTP mit statischer Dateiexposition von /tmp/httpbin/
Andere Tools zur Überprüfung
Last updated