Last updated on

cheat-sheet-socat


  • ESTE COMANDO DE SOCAT SIRVE PARA SERVIR BINARIOS ATRAVEZ DE UNA RED.
  • O con socat puedes tunelizar el funcionanmiento del binario atravez de un puerto para el EXTERIOR para que sea usado en la red.
socat TCP-LISTEN:5000 EXEC:/ruta/binario
socat UDP-LISTEN:<PORT> EXEC:/ruta/binario

1. 🔧 Parámetros útiles para tunear TCP-LISTEN + EXEC

En TCP-LISTEN:5000 puedes añadir

ParámetroDescripción
reuseaddrPermite reutilizar el puerto sin esperar TIME_WAIT
forkAcepta múltiples conexiones (sino se cierra tras la primera)
backlog=NNúmero máximo de conexiones en espera
range=IP1-IP2Solo permite conexiones desde cierto rango IP
bind=IPEscucha solo en una IP específica (por defecto todas)
delayEspera a que el cliente conecte antes de ejecutar

En EXEC:/binario puedes añadir

ParámetroDescripción
ptyUsa pseudoterminal (útil si es shell o binario interactivo)
stderrRedirige stderr junto con stdout
setsidCrea una sesión separada (mejora compatibilidad de terminales)
sigintAcepta señales como Ctrl+C correctamente
saneConfigura terminal en modo estándar
noforkEjecuta directamente sin hacer fork (solo una instancia activa)

2. 🧠 Variantes prácticas

✅ Shell interactiva (como reverse shell listener)

socat TCP-LISTEN:5000,reuseaddr,fork EXEC:/bin/bash,pty,stderr,setsid,sigint,sane

📁 Transferencia de archivo desde cliente a /tmp/archivo

socat TCP-LISTEN:5000,reuseaddr,fork EXEC:"tee /tmp/archivo"

Cliente:
cat archivo.bin | socat - TCP:<IP>:5000


📡 Escuchar y ejecutar script Python

socat TCP-LISTEN:5000,reuseaddr,fork EXEC:"python3 /tmp/script.py",pty

🔒 Restringir por IP

socat TCP-LISTEN:5000,reuseaddr,fork,range=192.168.1.0/24 EXEC:/binario

👾 Simular servicio malicioso o honeypot

socat TCP-LISTEN:21,reuseaddr,fork EXEC:"/usr/sbin/vsftpd"

3. 📋 Cheat Sheet rápida de variantes útiles

EscenarioComando socat
Shell interactivasocat TCP-LISTEN:4444,reuseaddr,fork EXEC:/bin/bash,pty,stderr,setsid,sigint,sane
Transferencia de archivosocat TCP-LISTEN:5000,reuseaddr EXEC:"tee /tmp/file"
Script Python al conectarsocat TCP-LISTEN:9999,reuseaddr EXEC:"python3 /tmp/handler.py"
Servicio falso (honeypot)socat TCP-LISTEN:23,reuseaddr,fork EXEC:/bin/echo
IP restrictasocat TCP-LISTEN:1337,reuseaddr,range=192.168.1.0/24 EXEC:/binario

¿Quieres que te genere un script con varias de estas configuraciones, como un arsenal de socat para red team o labs?