Ein einzelner kompromittierter Host in einem internen Netzwerk ist ohne einen zuverlässigen Pivot-Pfad nutzlos. SOCKS5-Tunnel über SSH bieten die latenzärmste und tool-unabhängigste Methode für laterale Bewegungen – doch die meisten Betreiber konfigurieren sie falsch oder hinterlassen forensische Spuren, die ein kompetentes Blue Team in Sekunden erkennt. Im Jahr 2024 schlägt ein richtig eingerichteter SOCKS5-Proxy immer noch HTTP-CONNECT-Proxies in Bezug auf den reinen TCP-Durchsatz, und mit Tools wie proxychains-ng und Chisel können Sie nmap, Metasploit und eigene Skripte durch eine einzige SSH-Sitzung leiten, ohne die Firewall-Regeln des Ziels zu berühren.
Warum SOCKS5 über SSH Port-Weiterleitung schlägt
Statische lokale Port-Weiterleitung (-L) zwingt Sie, jeden entfernten Dienst auf einen lokalen Port abzubilden, bevor Sie mit ihm interagieren können. Wenn Sie ein /24-Subnetz scannen müssen, müssten Sie 254 separate Weiterleitungen erstellen. SOCKS5 dynamische Weiterleitung (-D) löst dies, indem sie einen lokalen SOCKS5-Proxy bereitstellt, der jede TCP-Verbindung durch den SSH-Tunnel zum entfernten Host leitet. Das Protokoll ist in RFC 1928 definiert und unterstützt Authentifizierung, UDP (optional) und IPv6. In der Praxis erhalten Sie einen einzigen lokalen Listener – typischerweise auf 127.0.0.1:1080 – und jedes Tool, das SOCKS-Proxies unterstützt, kann ihn nutzen. Der Overhead ist vernachlässigbar: Die SSH-Verschlüsselung verursacht vielleicht 5–10 % CPU-Mehrbelastung, aber die Latenz ist weitaus geringer als bei einem VPN oder einer Reverse-Port-Weiterleitung durch eine Web-Shell.
Einrichten eines SOCKS5-Listeners auf einem Linux-Foothold
Angenommen, Sie haben eine Shell auf einem Linux-Host im Zielnetzwerk. Der schnellste Weg, einen Pivot zu etablieren, ist die Ausführung von ssh -D 1080 -N -f user@your-listener vom kompromittierten Host zurück zu Ihrer Angriffsmaschine. Dies erfordert jedoch ausgehenden SSH-Zugriff, der möglicherweise blockiert ist. Führen Sie stattdessen die dynamische Weiterleitung von Ihrer Angriffsmaschine zum kompromittierten Host aus:
ssh -D 1080 -N -f compromised_user@compromised_host
Dies öffnet einen SOCKS5-Proxy auf Ihrem lokalen Port 1080. Konfigurieren Sie nun proxychains-ng (/etc/proxychains.conf), um diesen Proxy zu verwenden:
socks5 127.0.0.1 1080
Führen Sie dann jedes TCP-Tool durch den Tunnel aus:
proxychains4 nmap -sT -Pn -p 445,3389 10.10.10.0/24
Beachten Sie, dass nmap -sT (TCP-Connect-Scan) benötigt, da SOCKS5 keine rohen SYN-Pakete unterstützt. Für Metasploit setzen Sie setg Proxies socks5:127.0.0.1:1080, und alle Auxiliary- und Exploit-Module werden durch den Pivot geleitet. Diese Technik funktioniert in CTF-Umgebungen wie Hack The Box oder Proving Grounds, bei denen das Ziel darin besteht, ein zweites Subnetz zu erreichen.
Chisel, Ligolo-ng und die Abwägungen
Wenn SSH nicht verfügbar ist – vielleicht läuft auf dem Ziel Windows oder es gibt keinen SSH-Server – schließen alternative Tunnelwerkzeuge die Lücke. Chisel verwendet einen Go-basierten Client und Server, die TCP über HTTP/HTTPS tunneln. Starten Sie den Server auf Ihrer Angriffsbox: chisel server -p 8000 --reverse. Auf dem kompromittierten Host starten Sie den Client: chisel client your_ip:8000 R:socks. Dies ergibt einen SOCKS5-Listener auf der Serverseite. Chisel ist schnell und funktioniert durch restriktive Egress-Filter, aber der Datenverkehr ist standardmäßig nicht verschlüsselt – umwickeln Sie ihn mit TLS oder verwenden Sie SSH, wenn Ihnen OpSec wichtig ist.
Ligolo-ng verfolgt einen anderen Ansatz: Es erstellt einen Netzwerktunnel auf Schicht 3 mithilfe von TUN/TAP-Schnittstellen. Anstelle von SOCKS5 leiten Sie ganze IP-Bereiche durch den Pivot. Das bedeutet, Sie können nmap -sS (SYN-Scan) ohne proxychains ausführen. Der Nachteil ist der administrative Aufwand: Sie benötigen Root auf beiden Seiten, und die Tunneleinrichtung erfordert das Hinzufügen von Routen auf Ihrer Angriffsmaschine. In CTFs, bei denen Sie beide Seiten kontrollieren, ist Ligolo-ng schneller. In realen Engagements ist der SOCKS5-Ansatz portabler, da er ohne erhöhte Privilegien auf dem Pivot-Host funktioniert.
Erkennungssignale, die Angreifer hinterlassen
Jede Pivot-Methode hinterlässt Artefakte. Die dynamische SSH-Weiterleitung erzeugt einen lauschenden Socket auf dem kompromittierten Host – ss -tlnp zeigt einen ssh-Prozess, der an 127.0.0.1:1080 gebunden ist. Blue Teams können dies mit ausgehenden SSH-Verbindungen zu einer externen IP korrelieren. Der Chisel-Client-Prozess heißt standardmäßig chisel – trivial mit Prozessüberwachung zu erkennen. Ligolo-ng benötigt ein TUN-Gerät (ip link show), was auf einem Server ungewöhnlich ist.
Schlimmer noch: Viele Betreiber vergessen die Bereinigung. Die SSH-Sitzung bleibt bestehen, bis der entfernte Host sie beendet oder die Verbindung abbricht. Proxychains hinterlässt keine lokalen Artefakte, aber der nmap-Datenverkehr selbst – ungewöhnliche Port-Scans, die von einem Host ausgehen, der normalerweise nicht scannt – löst IDS-Alarme aus. Der häufigste Fehler ist die Wiederverwendung des Standard-SOCKS5-Ports 1080. Ändern Sie ihn auf einen hohen ephemeren Port (z. B. ssh -D 53421) und aliasieren Sie die proxychains-Konfiguration, um das Hinterlassen einer Standard-Konfigurationsdatei zu vermeiden. In einem CTF spielt das keine Rolle. In einem echten Penetrationstest sind diese Signale der Grund, warum Sie erwischt werden.