Tunneling and Port Forwarding
Try Hard Security Group
Nmap-Tipp
ICMP- und SYN-Scans können nicht über Sockenproxys getunnelt werden, daher müssen wir die Ping-Erkennung deaktivieren (-Pn
) und TCP-Scans (-sT
) spezifizieren, damit dies funktioniert.
Bash
Host -> Jump -> InternalA -> InternalB
SSH
SSH grafische Verbindung (X)
Lokaler Port-zu-Port
Ö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
Umgekehrtes Port-Forwarding
Dies ist nützlich, um umgekehrte Shells von internen Hosts über eine DMZ auf Ihren Host zu erhalten:
VPN-Tunnel
Sie benötigen Root-Zugriff auf beiden Geräten (da Sie neue Schnittstellen erstellen werden) und die sshd-Konfiguration muss Root-Login erlauben:
PermitRootLogin yes
PermitTunnel yes
Aktivieren Sie die Weiterleitung auf der Serverseite.
Setzen Sie eine neue Route auf der Client-Seite.
SSHUTTLE
Sie können den gesamten Datenverkehr zu einem Teilnetzwerk über einen Host tunneln. Zum Beispiel, Weiterleitung des gesamten Datenverkehrs, der zu 10.10.10.0/24 geht.
Verbinden Sie sich mit einem privaten Schlüssel
Meterpreter
Port2Port
Lokaler Port --> Kompromittierter Host (aktive Sitzung) --> Dritte_Box:Port
SOCKS
SOCKS (Socket Secure) ist ein Internet-Protokoll, das zur Weiterleitung von Netzwerkverkehr zwischen einem Client und einem Server in einem Proxy-Server verwendet wird. Es ermöglicht dem Client, Verbindungen über den Proxy herzustellen, wodurch die wahre Identität des Clients verborgen wird. SOCKS kann für die Umgehung von Firewalls, das Anonymisieren des Datenverkehrs und das Tunneln von Verbindungen verwendet werden.
Tunneling and Port Forwarding
Tunneling is a method that allows data to be transferred securely over a public network. It involves encapsulating the data into another protocol to create a secure communication channel. Port forwarding, on the other hand, is a technique that redirects a communication request from one address and port number combination to another while the data is in transit.
Tunneling
Tunneling can be used to bypass firewalls and access restricted networks. It creates a secure connection between the source and destination by encapsulating the data. Common tunneling protocols include SSH, VPN, and SSL/TLS.
Port Forwarding
Port forwarding is commonly used in NAT environments to allow external devices to access services on private networks. It can also be used in penetration testing to redirect traffic from one port to another for exploitation.
Both tunneling and port forwarding are essential techniques in networking and cybersecurity for ensuring secure and efficient data transfer.
Cobalt Strike
SOCKS-Proxy
Öffnen Sie einen Port im Teamserver, der auf allen Schnittstellen lauscht und verwendet werden kann, um den Datenverkehr durch den Beacon zu leiten.
rPort2Port
In diesem Fall wird der Port im Beacon-Host geöffnet, nicht im Team Server, und der Datenverkehr wird zum Team Server und von dort zum angegebenen Host:Port gesendet.
rPort2Port lokal
In diesem Fall wird der Port im Beacon-Host geöffnet, nicht im Team-Server, und der Datenverkehr wird an den Cobalt Strike-Client (nicht an den Team-Server) gesendet und von dort zum angegebenen Host:Port.
reGeorg
https://github.com/sensepost/reGeorg
Sie müssen einen Webdatei-Tunnel hochladen: ashx|aspx|js|jsp|php|php|jsp
Meißel
Sie können es von der Veröffentlichungsseite von https://github.com/jpillora/chisel herunterladen Sie müssen die gleiche Version für Client und Server verwenden
Socken
Portweiterleitung
Rpivot
https://github.com/klsecservices/rpivot
Umgekehrter 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
Umgekehrte Shell
Port2Port
Port2Port
Port-zu-Port über Socks
Meterpreter über SSL Socat
In diesem Abschnitt werden wir sehen, wie wir eine Meterpreter-Sitzung über eine SSL-verschlüsselte Verbindung mit Socat einrichten können.
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
Zertifikate auf beiden Seiten erstellen: Client und Server
Remote Port2Port
Verbinde den lokalen SSH-Port (22) mit dem 443-Port des Angreifer-Hosts
Plink.exe
Es ist wie eine Konsolenversion von PuTTY (die Optionen ähneln sehr einem ssh-Client).
Da dieses Binärfile 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 haben können. Anschließend leiten wir nur lokal zugängliche Ports zu einem Port auf unserer Maschine weiter:
Windows netsh
Port2Port
Sie müssen ein lokaler Administrator sein (für jeden Port)
SocksOverRDP & Proxifier
Sie müssen RDP-Zugriff auf das System haben. Herunterladen:
SocksOverRDP x64 Binaries - Dieses Tool verwendet
Dynamic Virtual Channels
(DVC
) aus dem Remote Desktop Service-Feature von Windows. DVC ist verantwortlich für das Tunneln von Paketen über die RDP-Verbindung.
Laden Sie auf 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 auf 127.0.0.1:1080 hört.
Verbinden Sie sich über RDP und laden Sie die SocksOverRDP-Server.exe
-Binärdatei auf die Opfermaschine hoch und führen Sie sie aus:
Jetzt bestätigen Sie auf Ihrem Rechner (Angreifer), dass der Port 1080 lauscht:
Jetzt können Sie Proxifier verwenden, um den Datenverkehr durch diesen Port zu leiten.
Windows-GUI-Apps proxifizieren
Sie können Windows-GUI-Apps dazu bringen, über einen Proxy zu navigieren, indem Sie Proxifier verwenden. Unter Profil -> Proxy-Server fügen Sie die IP und den Port des SOCKS-Servers hinzu. Unter Profil -> Proxifizierungsregeln fügen Sie den Namen des zu proxifizierenden Programms und die Verbindungen zu den IPs hinzu, die Sie proxifizieren möchten.
NTLM-Proxy-Umgehung
Das zuvor erwähnte Tool: Rpivot OpenVPN kann es auch umgehen, indem Sie diese Optionen in der Konfigurationsdatei festlegen:
Cntlm
Es authentifiziert sich gegen einen Proxy und bindet lokal einen Port, der an den externen Dienst weitergeleitet wird, den Sie angeben. Anschließend können Sie das Tool Ihrer Wahl über diesen Port verwenden. Zum Beispiel, um Port 443 weiterzuleiten.
Jetzt, wenn Sie zum Beispiel den SSH-Dienst beim Opfer einstellen, um auf Port 443 zu lauschen. Sie können sich über den Angreiferport 2222 damit verbinden. Sie könnten auch einen Meterpreter verwenden, der sich mit localhost:443 verbindet und der Angreifer auf Port 2222 lauscht.
YARP
Ein von Microsoft erstellter Reverse-Proxy. Sie finden ihn hier: https://github.com/microsoft/reverse-proxy
DNS Tunneling
Iodine
Root ist in beiden Systemen erforderlich, um TUN-Adapter zu erstellen und Daten zwischen ihnen mithilfe von DNS-Abfragen zu tunneln.
Der Tunnel wird sehr langsam sein. Sie können eine komprimierte SSH-Verbindung durch diesen Tunnel erstellen, indem Sie:
DNSCat2
Richtet einen C&C-Kanal über DNS ein. Es benötigt keine Root-Berechtigungen.
In PowerShell
Sie können dnscat2-powershell verwenden, um einen dnscat2-Client in PowerShell auszuführen:
Portweiterleitung mit dnscat
Ändern des Proxychains DNS
Proxychains unterbricht den gethostbyname
-libc-Aufruf und leitet die TCP-DNS-Anfrage durch den Socks-Proxy. Standardmäßig verwendet Proxychains den DNS-Server 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önnten 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
In beiden Systemen ist Root erforderlich, um Tunnelschnittstellen 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 Befehl ins Internet zu bringen. Expositions-URIs sehen so aus: UID.ngrok.io
Installation
Erstellen Sie ein Konto: https://ngrok.com/signup
Client-Download:
Grundlegende Verwendungen
Dokumentation: https://ngrok.com/docs/getting-started/.
Es ist auch möglich, bei Bedarf Authentifizierung und TLS hinzuzufügen.
Tunneling TCP
Offenlegung von Dateien über HTTP
Abhören von HTTP-Anfragen
Nützlich für XSS, SSRF, SSTI ... Direkt von stdout oder im HTTP-Interface http://127.0.0.1:4040.
Tunneling interner HTTP-Dienste
ngrok.yaml einfaches Konfigurationsbeispiel
Es öffnet 3 Tunnel:
2 TCP
1 HTTP mit statischer Dateiausstellung von /tmp/httpbin/
Andere Tools zum Überprüfen
Try Hard Security Group
Last updated