
Meine Situation ist wie folgt:
- Arbeits-Mac hinter Firewall, benannt als „Opfer“. (High Sierra 10.13.3)
- Ubuntu VHS im Netz, genannt „Server“. SSH läuft auf Port 2222. (Ubuntu 16.04)
- anderer Mac ebenfalls hinter Firewall, als „Angreifer“ bezeichnet. (High Sierra 10.13.3)
Ich möchte Socks verwenden, um interne Websites zu besuchen, auf die nur vom „Opfer“ aus zugegriffen werden kann.
Wenn ich das vom „Opfer“ aus mache und vom Angreifer aus per SSH auf den „Server“ zugreife und ausführe , habe ich vom Angreifer aus Shell-Zugriff auf das Opfer.ssh -R 5555:localhost:22 [email protected] -P 2222
ssh victim@localhost -p 5555
Was ich erreichen muss, ist, mithilfe von Socks Websites zu besuchen, auf die nur das „Opfer“ zugreifen kann.
Mir ist klar, dass ich einen umgekehrten Tunnel vom Opfer zum Server einrichten und auf dem Server eine Weiterleitung vom eingehenden Port zum umgekehrten Verbindungsport einrichten und auch eine Weiterleitung des Angreifers vom lokalen Host zum Remote-Host (der mit dem Server verbunden ist) einrichten sollte, aber wie mache ich das?
Wenn ich Socks direkt vom Angreifer zum Server einrichte, führe ich einfach den Proxy Socks v5 localhost:8080 in Firefox aus und richte ihn ein, aber ich verstehe nicht, wie ich die Weiterleitung auf dem Server einrichte ...ssh -D 8080 [email protected] -p 2222
Kann mir das jemand erklären? Danke
Antwort1
Diese Frage kann anscheinend niemand beantworten, aber das ist ok, denn ich habe die Antwort selbst gefunden.
Hier sind die Antworten:
- AnOpfer:
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
- AnAngreifer#1:
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
- AnAngreifer#2:
ssh -p 4444 -D localhost:3333 user_on_victim@localhost
- AnAngreifer#3: in Firefox oder IRC oder auch für die allgemeinen Netzwerkeinstellungen: Socks (v5) Proxy-Einstellungen: 127.0.0.1 Port 3333
Jede Anwendung, für die Sie den Host localhost mit Port 3333 einrichten, wird über serv zum Opfer getunnelt und wenn Sie etwas wiehttp://myip.comSie sehen die IP/Host des Opfers. Von hier aus können Sie sogar GUI-Anwendungen auf demAngreifer(wenn Sie Socks-Einstellungen für die jeweilige App oder für das gesamte System einrichten), die getunnelt werden überdienenZuOpferund Sie fungieren alsOpferals solche.
Mein Denkfehler bestand darin, dass ich nicht wirklich verstanden hatte, wie das umgekehrte Port-Schema aussieht. Ich werde versuchen, es in einfachen Worten zu erklären.
Opferaktion
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
-N
= Ich werde keine Befehle in der Shell ausführen-f
= den Prozess in den Hintergrund stellen (damit Sie das Terminalfenster schließen können)-R
= umgekehrter Tunnel5555:localhost:22
= 5555 ist der Port, auf dem serv intern lauscht, um Daten an Port 22 weiterzuleitenOpfer. Wenn Sie das Opfer so eingerichtet haben, dass SSH auf Port 2222 läuft, sollten Sie 22 in 2222 ändern.-p
= Port, auf dem SSH läuftdienenläuft.
1. Angriffsaktion
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`
Der erste Befehl, den Sie ausführen,Angreifer( -L 4444:localhost:5555
) wird einen Tunnel einrichten, so dass Ihre Verbindung mit Ihrem 3. Befehl direkt durchgetunnelt wird zuOpfer(Dies gilt nur für dynamische Portweiterleitungs-/SOCKS-Anwendungen)
Wenn Sie nur Shell-Zugriff aufOpferAnstelle dieses Befehls melden Sie sich einfach per SSH beim Server an und führen dann den Befehl „ssh user_on_victim@localhost -p 5555“ aus.
Wir möchten jedoch keinen Shell-Zugriff, sondern alle Daten dynamisch tunneln, sodass wir eine Port-Weiterleitung vornehmen müssen.
Oder die schematische Erklärung
-L
= lokale Portweiterleitung (eindienen)- 4444:localhost:5555
alle über Port 4444 eingehenden Daten auf Port 5555 umleiten.
2. Angriffsaktion
Der zweite Befehl, den Sie ausführen,Angreifer
ssh -p 4444 -D localhost:3333 Benutzer_auf_Opfer@localhost
ist der eigentliche Befehl, der die Verbindung über die beiden Tunnel initialisiert. Sie sagen: Verbinde dich mit Port 4444 und leite alle Daten, die über (Localhost-Port 3333) eingehen, an 4444 weiter. (Die Daten werden lokal überdienenan Port 5555 -> dies wird an Port 22 weitergeleitet amOpfer.
Oder die schematische Erklärung
-D
= Dynamische Weiterleitunglocalhost:3333
= Lauschen Sie auf Port 3333 und senden Sie die Daten über eine SSH-Verbindung an Port 4444 zum Serv.-p 4444
= der Port, auf demdienenlauscht, um die Daten an Port 5555 weiterzuleiten und dann an Port 22 weiterzuleiten.Opfer.
3. Angriffsaktion
Richten Sie Ihre Anwendungen oder sogar Ihr gesamtes System so ein, dass der SOCKS-Proxyserver (v5) unter der Adresse localhost port: 3333 verwendet wird. Es spielt keine Rolle, auf welchen Ports diese Anwendungen normalerweise laufen, da dies vom Proxyserver übernommen wird. Theoretisch kann jede Anwendung über die dynamische Portweiterleitung des Socks-Proxys laufen. Sie müssen es nur einrichten. :)
Die dritte Aktion amAngreifersind die eigentlichen Daten, zu denen Sie tunneln werdenOpfer. Dabei spielt es keine Rolle, um welche Daten oder Anwendungen es sich handelt, deshalb handelt es sich um dynamische Weiterleitung. Dabei spielt es keine Rolle, auf welchen Ports diese Anwendungen laufen, da dies von SOCKS übernommen wird.
Ich hoffe, dass meine Erklärung für jemanden von Nutzen ist.
Einen schönen Tag noch....