Podemos usar ssh -D para especificar el reenvío de puertos locales dinámicos a nivel de aplicación SOCKS4 (de nuevo tunelizados dentro de SSH) con la siguiente sintaxis:
## Comando GUIA
ssh -N -D <address to bind to>:<port to bind to> <username>@<SSH server address>
Con la sintaxis anterior en mente, podemos crear un proxy de aplicación SOCKS4 local (-N -D) en nuestra máquina Kali Linux en el puerto TCP 8080 (127.0.0.1:8080), que hará un túnel de todo el tráfico entrante a cualquier host en la red de destino, a través de la máquina Linux comprometida, en la que entramos como estudiante (student@10.11.0.128):
## Comando Final
kali@kali:~$ sudo ssh -N -D 127.0.0.1:8080 student@10.11.0.128
student@10.11.0.128's password:
## Para este caso es necesario configurar proxychains en el kali
kali@kali:~$ cat /etc/proxychains.conf
...
[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4 127.0.0.1 8080
## El objetivo era tener alcance a todos los puertos de una maquina desde nuestro kali
kali@kali:~$ sudo proxychains nmap --top-ports=20 -sT -Pn 192.168.1.110
ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nmap 7.60 ( https://nmap.org ) at 2019-04-19 18:18 EEST
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:443-<--timeout
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:23-<--timeout
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:80-<--timeout
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:8080-<--timeout
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:445-<><>-OK
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:135-<><>-OK
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:139-<><>-OK
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:22-<--timeout
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:3389-<><>-OK
|S-chain|-<>-127.0.0.1:8080-<><>-192.168.1.110:1723-<--timeout