the_open_door
café
ESEN
← Volver al índice

Remote Port Forwarding

ATT&CKT1090.001
Arsenal completo de comandos en la cheatsheet

El remote port forwarding abre un puerto en el host remoto que reenvía el tráfico de vuelta hacia nuestra máquina (o hacia un servicio al que nosotros llegamos). Es el sentido inverso del local port forwarding y resuelve el caso en que el pivote no puede iniciar la conexión hacia nosotros, pero sí aceptar la nuestra.

Por qué funciona. Con ssh -R se le pide al servidor SSH que escuche en uno de sus puertos y mande todo lo que reciba, por el túnel ya establecido, a un destino que definimos en el lado del cliente. El uso típico es traer nuestro handler o un servicio a un equipo interno para que su carga útil "llame a casa" aunque el firewall bloquee la salida directa: la conexión sale por el túnel SSH que ya está permitido.

El abuso. Se establece el túnel inverso desde el atacante hacia el pivote y se apunta al servicio que se quiere exponer.

# el pivote escuchara en su 8080 y reenviara hacia nuestro 80
ssh -R <pivot>:8080:0.0.0.0:80 <user>@<pivot> -vN
# exponer un servicio interno (no solo del pivote) hacia el atacante
ssh -R 8080:<internal-ip>:<rport> <user>@<pivot> -fN
# en Windows, con plink, para reenvio inverso equivalente
plink -R 8080:127.0.0.1:80 <user>@<pivot>

Con chisel (util cuando el pivote no acepta SSH entrante): el servidor va en el atacante y el cliente en el pivote.

./chisel server -p 8000 --reverse                          # atacante
./chisel client <lhost>:8000 R:8080:<internal-ip>:<rport>  # pivote

Requisitos. Hace falta una sesión SSH entre atacante y pivote y, para que el puerto remoto escuche en todas las interfaces, GatewayPorts habilitado en el servidor. Solo transporta lo que se le indique (reenvío de un puerto concreto), no una red entera como el SOCKS.

Cómo detectarlo. La señal es un puerto en escucha nuevo en el host asociado a un proceso SSH con reenvío, y tráfico que "rebota" desde ese puerto hacia el exterior por el túnel. En red se ve como una conexión SSH que, en lugar de terminar en el pivote, canaliza tráfico de vuelta. Auditar sshd con -R y puertos de escucha inesperados en servidores es la vía directa.

Defensa. Deshabilitar el reenvío de puertos en SSH donde no se necesite (AllowTcpForwarding no, GatewayPorts no), filtrar la salida del segmento para que un túnel no encuentre por dónde volver, y monitorizar puertos de escucha nuevos. Es la cara inversa del local port forwarding y del dynamic port forwarding, y a veces se combina con un relay de socat para encadenar saltos.

Herramientassshplink

Máquinas donde se aplica

  • BuffHackTheBox
  • FishProving Grounds Practice