SOCKS Proxy nutzen/netcat-openbsd

Aus UUGRN
< SOCKS Proxy nutzen
Version vom 27. Februar 2016, 18:54 Uhr von Rabe (Diskussion | Beiträge) (delegomm)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Anwendungsfall
Über den Zugriff auf shell.uugrn.org:8888 bekommt man seine eigene IP-Adresse angezeigt. netcat-openbsd unterstützt dabei über die Parameter -4 und -6 die explizite Nutzung von IPv4 oder IPv6, entsprechend kann man damit auch testen, ob und wenn ja mit welcher IPv6-Adresse man Zugriff auf das Internet hat.
Beispiel ohne SOCKS-Proxy
$ nc -4 shell.uugrn.org 8888
84.173.256.9
$ nc -6 shell.uugrn.org 8888
2003:5f:ffff:2a00:bc8f:eeee:9355:3a19

Die angezeigten (leicht verfremdeten) Adressen sind IPv4 und IPv6 aus dem Netz der Telekom (DSL).

Beispiel mit SOCKS-Proxy 127.0.0.1 Port 1087
$ nc -6 -X 5 -x 127.0.0.1:1087 shell.uugrn.org 8888
nc: no proxy support for IPv6
$ nc -4 -X 5 -x 127.0.0.1:1087 shell.uugrn.org 8888
2a03:2500:1:6:16::

Auffallend hier: netcat kann SOCKS nur in Verbindung mit IPv4 benutzen, dennoch verbindet sich das Tunnelende hinter 127.0.0.1:1087 mit seiner IPv6-Adresse zum Ziel, entsprechend antwortet der Service mit der IPv6-Adresse des SOCKS-Endpunktes

$ host 2a03:2500:1:6:16::
0.0.0.0.0.0.0.0.0.0.0.0.6.1.0.0.6.0.0.0.1.0.0.0.0.0.5.2.3.0.a.2.ip6.arpa domain name pointer shell.uugrn.org.

Nutzt man einen anderen SOCKS-Proxy, dann ändert sich auch die Antwort entsprechend:

Beispiel mit SOCKS-Proxy 127.0.0.1 Port 1081
$ nc -4 -X 5 -x 127.0.0.1:1081 shell.uugrn.org 8888
2a03:2500:1:6:19::
$ host 2a03:2500:1:6:19::
0.0.0.0.0.0.0.0.0.0.0.0.9.1.0.0.6.0.0.0.1.0.0.0.0.0.5.2.3.0.a.2.ip6.arpa domain name pointer rabe.uugrn.org.

Man kann einen solchen SOCKS-Proxy auch verwenden, um auf ein dahinter liegendes RfC1918-Netz zuzugreifen, der Service ist hier entsprechend shell.uugrn.lan:8888 und die SOCKS-Tunnel auf den Ports 1087 und 1081:

$ nc -X 5 -x 127.0.0.1:1081 shell.uugrn.lan 8888
10.253.1.25
$ nc -X 5 -x 127.0.0.1:1087 shell.uugrn.lan 8888
10.253.1.22  

Relvant ist in diesem Beispiel, dass die DNS-Auflösung für "shell.uugrn.lan" nicht durch netcat erfolgt sondern durch den entfernten Teil des SOCKS-Proxies:

$ host shell.uugrn.lan                                                                                                            
Host shell.uugrn.lan not found: 3(NXDOMAIN)     
$ host 10.253.1.25                                                                                           
Host 25.1.253.10.in-addr.arpa. not found: 3(NXDOMAIN)