Parte: 3 — Hacking ético y pentesting: metodología · Fuente: Offensive Security - "Metasploit Unleashed"; Peter Kim - "The Hacker Playbook 3" ⏱️ Duración estimada: 140 min · Nivel: Experto
El alumno aprenderá a usar un host comprometido como punto de apoyo (pivote) para alcanzar redes internas segmentadas que no son accesibles directamente desde la máquina atacante, dominando túneles SSH, proxychains, el pivoting integrado de Metasploit y herramientas modernas como chisel y ligolo-ng, en un laboratorio propio con topología multi-red.
Al finalizar, el alumno podrá:
autoroute y un proxy SOCKS dentro de Metasploit para pivotar sobre una sesión Meterpreter.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Local port forwarding (ssh -L) |
Expone un servicio interno específico en la máquina atacante |
| 2 | Remote port forwarding (ssh -R) |
Útil cuando el pivote no puede iniciar conexiones salientes hacia el atacante |
| 3 | Dynamic forwarding / proxy SOCKS (ssh -D) |
Un solo túnel da acceso a toda una subred interna |
| 4 | proxychains | Permite encaminar herramientas como nmap a través del pivote |
| 5 | Metasploit autoroute + socks_proxy | Pivoting integrado sobre una sesión Meterpreter existente |
| 6 | chisel / ligolo-ng | Túneles sobre HTTP(S) cuando SSH no está disponible en el pivote |
| 7 | Doble pivote | Encadena dos saltos para alcanzar redes doblemente segmentadas |
| 8 | Segmentación como contramedida | Limita el alcance real de un pivote aunque el primer host caiga |
La segmentación de red hace que el atacante no pueda llegar directamente a las zonas sensibles: el servidor de bases de datos vive en una subred a la que su máquina no tiene ruta. El pivoting convierte un host ya comprometido —que sí tiene un pie en esa subred— en un puente para alcanzarla. No es un ataque nuevo, es una técnica de enrutamiento: hacer que el tráfico del atacante viaje a través del host pivote hasta destinos que de otro modo serían invisibles. Es la aplicación ofensiva directa de los túneles de la Clase 037.
SSH es la herramienta natural del pivoting porque crea túneles sin instalar nada, y sus tres modos responden a tres situaciones distintas:
El local (-L) expone en la máquina del atacante un servicio interno concreto (el
puerto 3306 de un servidor de base de datos interno aparece en localhost del atacante). El
remoto (-R) hace lo contrario y resuelve el caso incómodo: cuando el pivote no puede
iniciar conexiones salientes hacia el atacante, es el pivote quien abre un puerto de vuelta.
El dinámico (-D) es el más potente: convierte el cliente SSH en un proxy SOCKS, un
único túnel a través del cual se alcanza cualquier destino que el pivote pueda ver.
Combinado con proxychains, permite lanzar herramientas como Nmap "a través" del pivote,
con los límites ya conocidos (solo TCP con conexión completa: -sT -Pn, nada de SYN scan ni
UDP).
No siempre hay un SSH cómodo en el pivote. Metasploit integra el pivoting sobre una sesión
Meterpreter existente: autoroute añade una ruta hacia la subred interna a través de la
sesión, y el módulo socks_proxy levanta un SOCKS local para que el resto de herramientas la
usen —todo sin tocar SSH—. Cuando ni eso encaja, herramientas modernas como chisel y
ligolo-ng crean túneles sobre HTTP(S), lo que les permite atravesar firewalls que solo
dejan salir tráfico web y confundirse con navegación normal. Y para redes doblemente
segmentadas se encadena un doble pivote: el primer host da acceso a una subred, y un
segundo host comprometido en ella da acceso a una tercera. Cada salto añade latencia y
fragilidad, así que se hace con intención, no por deporte.
Toda esta clase es, leída al revés, un argumento a favor de la segmentación de red como contramedida. El pivoting solo tiene sentido porque hay una red interna que alcanzar; si esa red está bien segmentada —con firewalls internos que restringen qué host puede hablar con cuál, no solo el perímetro— la caída del primer host no entrega la red entera, sino solo lo que ese host podía ver legítimamente. El movimiento este-oeste (entre hosts internos) es el que el pivoting explota y el que la microsegmentación de la Clase 042 restringe. Documentar en el informe qué se alcanzó mediante pivoting y desde dónde es lo que permite al cliente ver el valor de segmentar: no es teoría, es "desde este servidor web comprometido llegué a vuestra base de datos de nóminas porque no había nada entre ellos".
-L): mapea un puerto de la máquina atacante a un destino alcanzable desde el pivote. Característica clave: ssh -L 8080:172.16.0.10:80 usuario@pivote hace que localhost:8080 en el atacante equivalga al puerto 80 del host interno.netstat/EDR) ayuda a detectar túneles no autorizados.-R): abre un puerto en el pivote que reenvía las conexiones hacia la máquina atacante. Característica clave: útil cuando el firewall del pivote bloquea conexiones salientes hacia el atacante pero sí permite conexiones entrantes locales.-D): convierte el túnel SSH en un proxy SOCKS genérico. Característica clave: un único túnel dinámico da acceso a cualquier host y puerto de la subred interna, sin necesitar un mapeo por servicio.--reverse, iniciando la conexión desde el pivote hacia el atacante, lo cual evade restricciones de firewall saliente estrictas.| Término | Definición concisa |
|---|---|
| Pivoting | Usar un host comprometido para alcanzar redes inaccesibles |
| Host pivote | Máquina con acceso a la subred objetivo |
Local forwarding (-L) |
Expone un servicio interno concreto en el atacante |
Remote forwarding (-R) |
Puerto de vuelta cuando el pivote no puede salir |
Dynamic forwarding (-D) |
Proxy SOCKS: acceso a toda la subred por un túnel |
| SOCKS | Proxy genérico que transporta TCP con conexión completa |
| proxychains | Encamina herramientas a través del proxy del túnel |
| autoroute | Ruta de Metasploit hacia una subred vía Meterpreter |
| socks_proxy | Módulo de Metasploit que levanta un SOCKS local |
| chisel / ligolo-ng | Túneles sobre HTTP(S) cuando no hay SSH |
| Doble pivote | Encadenar dos saltos para redes doblemente segmentadas |
| Tráfico este-oeste | Comunicación entre hosts internos |
| Segmentación | Contramedida que limita el alcance de un pivote |
| Latencia por salto | Cada pivote añade retardo y fragilidad |
sudo apt install proxychains4; configurar /etc/proxychains4.conf con la línea socks5 127.0.0.1 1080 (o el puerto elegido).post/multi/manage/autoroute y auxiliary/server/socks_proxy, sobre una sesión Meterpreter ya activa.El pivoting extiende deliberadamente tu acceso hacia redes que suelen estar segmentadas por diseño de seguridad. Practica esto solo dentro de tu laboratorio propio o del alcance explícitamente autorizado en las reglas de engagement de un pentest contratado. Alcanzar una red no incluida en el alcance firmado es una violación grave del contrato y puede constituir delito.
10.10.10.5) y una subred interna objetivo 172.16.0.0/24, levanta un túnel dinámico: ssh -D 1080 -N usuario@10.10.10.5.proxychains4 nmap -sT -Pn -p 22,80,445 172.16.0.10.ssh -L 8080:172.16.0.10:80 -N usuario@10.10.10.5 y verifica con curl http://127.0.0.1:8080.use post/multi/manage/autoroute, set SESSION 1, set SUBNET 172.16.0.0, run.use auxiliary/server/socks_proxy, set SRVPORT 1080, set VERSION 4a, run -j../chisel server -p 8000 --reverse; en el pivote, .\chisel.exe client 10.10.10.5:8000 R:socks.proxy en Kali, crea la interfaz con ip tuntap add user root mode tun ligolo, súbela con ip link set ligolo up, ejecuta el agent en el pivote y añade la ruta hacia la subred interna con ip route add 172.16.0.0/24 dev ligolo.nmap -sS 172.16.0.0/24) y compáralo contra el escaneo -sT realizado antes por proxychains.-L, -R y -D en un túnel SSH.-sT -Pn en lugar de un escaneo SYN.autoroute en Metasploit y verifica la ruta activa con el comando route print dentro de msfconsole.--reverse y encamina una petición curl a través de él usando proxychains.Reto: alcanza un servicio en la subred interna de tu laboratorio que no es accesible directamente desde Kali, exclusivamente a través de un pivote, usando al menos dos técnicas distintas (por ejemplo, SSH dinámico y chisel, o autoroute y ligolo-ng).
Criterio de aceptación: el alumno demuestra acceso al servicio interno (respuesta HTTP, banner de servicio o resultado de escaneo) inalcanzable sin el túnel, documenta el método exacto usado en cada caso y adjunta un diagrama de la topología atacante-pivote-objetivo.
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| nmap con SYN scan falla a través de proxychains | proxychains solo soporta conexiones TCP completas (connect); usar siempre -sT -Pn |
| El proxy SOCKS no responde | El túnel se cayó o el puerto configurado en proxychains4.conf no coincide con el del túnel activo; verificar el listener con netstat |
| autoroute no encamina el tráfico | La SESSION especificada es incorrecta o la subred está mal escrita; revisar con route print en msfconsole |
| chisel no logra conectar | Firewall saliente bloqueando el puerto; usar --reverse y un puerto comúnmente permitido como 443 |
| ligolo-ng no crea la interfaz TUN | Falta el privilegio de administrador/root en la máquina atacante para crear la interfaz de red |
| Rendimiento muy bajo en doble pivote | Latencia acumulada de dos túneles anidados; reducir el número de puertos escaneados y evitar paralelismo excesivo |
❓ ¿Por qué un escaneo nmap con proxychains necesita las banderas -sT y -Pn?
Porque proxychains solo puede encaminar conexiones TCP de tipo connect (establecidas a nivel de aplicación), no paquetes SYN crudos; además, el ping ICMP previo tampoco se transmite por el proxy, así que hay que omitirlo con -Pn.
❓ ¿Cuándo conviene usar remote forwarding (-R) en lugar de local (-L)?
Cuando el pivote tiene un firewall saliente restrictivo que impide iniciar conexiones nuevas hacia el atacante, pero sí permite exponer un puerto local que reenvíe hacia una escucha que el atacante ya preparó.
❓ ¿Chisel o un túnel SSH tradicional? SSH es la opción natural si el pivote ya lo tiene disponible y es Linux. Chisel es preferible cuando no hay cliente SSH (por ejemplo, un pivote Windows), cuando solo se permite tráfico HTTP/HTTPS saliente, o cuando se necesita atravesar un proxy corporativo.
❓ ¿Cómo detecta un equipo defensivo el pivoting? Mediante segmentación real de red con firewalls internos, sistemas de detección de tráfico anómalo entre segmentos (NDR), monitoreo de conexiones salientes inusuales desde servidores internos, y auditoría de túneles SSH o procesos desconocidos como chisel ejecutándose en hosts críticos.
❓ ¿ligolo-ng reemplaza completamente a proxychains? En muchos escenarios sí, porque al trabajar a nivel de interfaz de red permite usar cualquier herramienta sin las limitaciones de un proxy SOCKS; sin embargo, proxychains sigue siendo útil cuando no se puede o no se quiere crear una interfaz TUN en la máquina atacante.
Clase 078 — Movimiento lateral en la red