Pivoting with sshuttle
Arsenal completo de comandos en la cheatsheetsshuttle es un pivoting transparente sobre SSH, una especie de "VPN de pobre": con un solo comando enruta hacia una subred interna todo el tráfico, sin proxychains y sin tocar cada herramienta. Solo necesita acceso SSH al pivote y Python en el otro extremo.
Por qué funciona. sshuttle abre una sesión SSH al pivote, sube un pequeño script Python que actúa de extremo remoto, y en el atacante intercepta el tráfico destinado a la subred indicada (con iptables/nfqueue) para reenviarlo por el túnel. Para las herramientas es invisible: creen que hablan directamente con la red interna, así que funcionan las que ignoran proxychains, incluida la resolución DNS con --dns.
El abuso. Un único comando basta para enrutar la subred interna; 0/0 enruta todo (salvo lo que se excluya con -x).
# enrutar la subred interna a traves del pivote
sudo sshuttle -r <user>@<pivot> <internal-network>/24 -v
# varias subredes de una sola vez
sudo sshuttle -r <user>@<pivot> <internal-network>/24 <other-network>/24
# puerto y clave SSH concretos
sudo sshuttle -r <user>@<pivot>:2222 <internal-network>/24 --ssh-cmd 'ssh -i id_rsa'
# enrutar TODO el trafico y el DNS por el tunel, en segundo plano
sudo sshuttle -r <user>@<pivot> --dns 0/0 -x <pivot> -x <lhost> -DRequisitos. Hace falta SSH al pivote y Python en el pivote; en el atacante, privilegios de root para manipular el enrutado. Es cómodo pero solo para objetivos Linux como extremo remoto y transporta TCP (y DNS con --dns), no protocolos crudos arbitrarios.
Cómo detectarlo. Desde el pivote, la firma es una sesión SSH que ejecuta un intérprete de Python que recibe y reenvía tráfico hacia la red interna: un python hijo de sshd moviendo paquetes es muy poco habitual en un servidor. En red se ve, como los demás túneles, una conexión SSH cifrada que canaliza tráfico hacia muchos destinos internos.
Defensa. Restringir SSH saliente y la ejecución de intérpretes en servidores, segmentar la red, y monitorizar sesiones SSH que lancen Python y muevan volumen anómalo. Cumple el mismo papel que el SOCKS de SSH y ligolo-ng, pero de forma transparente y sin proxychains; se apoya en el mismo reenvío de puertos conceptual.