Iniciante Redes

ARP spoofing e MITM — envenenar a tabela ARP

ARP (Address Resolution Protocol) associa endereços IP a endereços MAC na rede local. O problema: ARP não tem autenticação. Qualquer máquina pode anunciar falsos mapeamentos — e a rede acredita.

Como ARP funciona normalmente

Host A quer falar com 192.168.1.1:
  → Broadcast: "Quem tem 192.168.1.1?"
  ← Gateway responde: "Sou eu, MAC aa:bb:cc:dd:ee:ff"
  Host A armazena: 192.168.1.1 → aa:bb:cc:dd:ee:ff

Essa tabela (ARP cache) não é verificada — qualquer resposta ARP é aceita.

ARP Spoofing: o ataque

Em um ambiente de teste autorizado (ex: lab 192.168.1.0/24):

Atacante envia gratuitous ARP para a vítima:
  "192.168.1.1 (gateway) está no MAC do atacante"

Atacante envia gratuitous ARP para o gateway:
  "192.168.1.50 (vítima) está no MAC do atacante"

Resultado:
  Vítima → [pensa que fala com gateway] → Atacante → Gateway
  Atacante vê TODO o tráfego: Man-in-the-Middle (MITM)

Verificar a tabela ARP

# Linux/macOS
arp -n

# Saída suspeita: dois IPs com o mesmo MAC
192.168.1.1   aa:bb:cc:dd:ee:ff   eth0
192.168.1.50  aa:bb:cc:dd:ee:ff   eth0 mesmo MAC = ARP poisoning

Consequências do MITM

  • Leitura de tráfego HTTP (credenciais, cookies)
  • Injeção de conteúdo em páginas não-HTTPS
  • Captura de hashes NTLMv2 para cracking offline
  • Downgrade de HTTPS para HTTP (SSLstrip)
  • Redirecionamento para páginas falsas

Defesas contra ARP Spoofing

Dynamic ARP Inspection (DAI) — switches gerenciáveis verificam se a resposta ARP é legítima comparando com a tabela DHCP snooping:

Switch descarta resposta ARP se:
  IP anunciado ≠ IP atribuído pelo DHCP para aquele MAC/porta

Entradas ARP estáticas — para hosts críticos (gateway, DNS):

# Linux — adicionar entrada ARP estática
sudo arp -s 192.168.1.1 aa:bb:cc:dd:ee:ff

Monitoramento com arpwatch:

sudo apt install arpwatch
sudo arpwatch -i eth0
# Alerta por e-mail quando um par IP/MAC muda

HTTPS obrigatório — mesmo sob MITM, TLS impede leitura do conteúdo se o certificado for validado corretamente.

Por que HTTPS não é suficiente sozinho

HSTS (HTTP Strict Transport Security) previne downgrade para HTTP. Mas se o usuário ignora avisos de certificado inválido, a proteção cai.

Atacante → certificado falso → vítima vê aviso "conexão não segura"
Usuário clica "Avançar assim mesmo" → MITM estabelecido mesmo com TLS

Treine usuários para nunca ignorar avisos de certificado.