Pivoting | Solyd One
- Pivoting | Solyd One
No contexto de pentest (teste de penetração), o termo pivoting se refere a uma técnica usada após comprometer uma máquina em uma rede, que permite ao atacante usar essa máquina como um ponto de acesso para alcançar outras máquinas ou recursos que, de outra forma, estariam inacessíveis.
📌 Explicando melhor:
Quando um atacante consegue acesso a uma máquina interna (por exemplo, por meio de uma falha de segurança), ele pode usá-la para:
- "Pivoteá-la" – ou seja, redirecionar seu tráfego por essa máquina.
- Explorar a rede interna a partir dela.
- Escalar privilégios, mapear a rede, acessar servidores, bancos de dados, etc.
🔁 Tipos de Pivoting:
-
Pivoting baseado em rede (Network Pivoting)
- O atacante usa túneis (como SSH, VPN, port forwarding, etc.) para encaminhar tráfego.
- Exemplo: Redirecionar uma porta local para uma porta interna da rede remota.
-
Pivoting baseado em proxy (Proxy Pivoting)
- Utiliza a máquina comprometida como proxy HTTP/SOCKS para encaminhar o tráfego da ferramenta de ataque (como o Burp Suite ou o browser) para a rede interna.
🧰 Ferramentas comuns para pivoting:
- Metasploit (com
autoroute,socks_proxy, etc.) - ProxyChains
- SSH tunneling (ssh -L, -R, -D)
- Chisel (túnel reverso via HTTP)
- Impacket (por exemplo,
smbrelayx,wmiexec)
✅ Exemplo prático:
Você invade uma máquina chamada "Máquina A" que está em uma DMZ. Dentro da rede interna, existe uma "Máquina B" que só pode ser acessada a partir da Máquina A. Você faz o pivoting através da Máquina A para atacar a Máquina B.
1) Cenário rápido (para todos os exemplos)
- Você (atacante) está na sua máquina
ATK. - Comprometeu uma máquina interna
PIVOT(por exemplo, via exploit). - Há um alvo
TARGETacessível apenas a partir dePIVOT(rede interna).
2) SSH Pivoting (quando você tem SSH ou shell reverso com acesso à ferramenta ssh)
a) SSH Local Port Forwarding (-L)
Encaminha uma porta local na sua máquina para uma porta no TARGET via PIVOT.
Exemplo:
# do ATK: encaminha localhost:3389 -> TARGET:3389 via PIVOT
ssh -L 33389:TARGET:3389 user@PIVOT
# depois você conecta a localhost:33389 (RDP) que na prática vai para TARGET:3389
b) SSH Remote Port Forwarding (-R)
Expõe uma porta no PIVOT que encaminha para sua máquina — útil para quando PIVOT inicia a conexão.
Exemplo:
# do ATK: cria um listener remoto no PIVOT (porta 9000) que encaminha para sua porta 4444
ssh -R 9000:localhost:4444 user@PIVOT
# no PIVOT, conectar para localhost:9000 chega na porta 4444 do ATK
c) SSH Dynamic SOCKS Proxy (-D) — muito usado
Cria um proxy SOCKS local que encaminha todo o tráfego TCP via PIVOT (bom para usar Burp, browser, nmap via proxychains).
# do ATK
ssh -D 1080 user@PIVOT
# agora configure seu browser/Burp para usar SOCKS5 localhost:1080
# ou configure proxychains para usar socks5 127.0.0.1 1080
3) Pivoting com Metasploit / Meterpreter (comum em pentests)
a) Obter sessão meterpreter
(pressupõe que você já tem uma sessão Meterpreter session 1)
b) Adicionar uma rota para a rede interna
Isto instrui o framework a rotear tráfego para a rede da vítima via aquela sessão:
# no msfconsole
meterpreter > run autoroute -s 10.10.10.0/24
# ou via msfconsole route
msf6 > route add 10.10.10.0 255.255.255.0 1 # onde 1 é id da sessão
autoroute facilita quando há sub-redes.
c) Levantar um servidor SOCKS no Metasploit
msf6 > use auxiliary/server/socks4a
msf6 auxiliary(socks4a) > set SRVPORT 1080
msf6 auxiliary(socks4a) > run
# agora você tem um SOCKS4A server escutando localmente no seu msfconsole
Esse módulo cria um proxy que encaminha via sessões/routing adicionadas. Depois configure proxychains ou Burp para usar 127.0.0.1:1080.
d) Uso prático (ex.: nmap via proxychains)
No seu Kali/ATK:
# proxychains.conf deve ter: socks4 127.0.0.1 1080
proxychains nmap -sT -Pn 10.10.10.5 -p 22,80
4) Usando ProxyChains + SOCKS (exemplo completo)
- Gera SOCKS via
ssh -D 1080 user@PIVOTou Metasploit socks4a. - Configura
/etc/proxychains.conf:
[ProxyList]
socks5 127.0.0.1 1080
- Executa ferramentas via proxychains:
proxychains curl http://10.10.10.5
proxychains nmap -sT -Pn 10.10.10.0/24
# ou configura Burp para usar o SOCKS local
5) Pivoting TCP simples com socat (quando você tem shell no PIVOT)
No PIVOT (máquina comprometida), crie um encaminhamento:
# no PIVOT (linux)
socat TCP-LISTEN:9000,fork TCP:10.10.10.5:3389 &
# no ATK, conecta em PIVOT:9000 -> na prática chega em TARGET:3389
6) Ferramentas adicionais comuns
- Chisel: túnel TCP/HTTP (bom em ambientes com restrições); cria reverse tunnels.
- plink / rinetd: port forwarding em Windows.
- Impacket: para relays SMB/WMIC e pivot via execução remota.
- Metasploit autoroute / socks (já mostrado).
- Responder / smbrelayx para lateral movement (use com cautela e autorização).
7) Dicas práticas e armadilhas
- Verifique routes (
ip route/route -n) e firewalls internos antes de assumir que pivoting funcionará. - Se usar SOCKS via SSH, muitas ferramentas só suportam HTTP proxy — use
tsocks/proxychainspara forçar. - Alguns serviços (RDP/SMB) podem rejeitar conexões de IPs inesperados — cuidado com Kerberos/NTLM e políticas.
- Prefira túnel encriptado (SSH/ssl) para estabilidade e stealth.
8) Limpeza (sempre faça)
- Feche túneis e services (kill socat, fechar ssh).
- Remova rotas no Metasploit:
route delete 10.10.10.0. - Apague artefatos e crie relatório com comandos executados.
9) Detecção e mitigação (como defender)
- Monitorar conexões SSH/HTTP anômalas saindo de hosts internos.
- EDR detecta criação de processos como
socat,chisel,sshem hosts que não deveriam. - Filtrar/inspecionar tráfego interno e limitar acessos entre segmentos com firewalls e ACLs.
- Habilitar registro e alertas para port forwarding ou criação de listeners locais.