Voltar aos artigos
Intermediate

Anúncios de Roteador Malicioso IPv6: Sequestro de Hosts Windows e Linux em Redes Dual-Stack

A maioria dos times de segurança tem uma política IPv4 coerente. Firewalls, DHCP snooping, ARP inspection — os suspeitos usuais estão configurados e auditados.

@0xrafasecFebruary 18, 2026network_and_infra

Available in English

Share:

Anúncios de Roteador Malicioso IPv6: Sequestro de Hosts Windows e Linux em Redes Dual-Stack

Legal & Ethical Disclaimer

This content is provided for EDUCATIONAL and AUTHORIZED SECURITY TESTING purposes only.

DO
  • Use these techniques on systems you own or have explicit written permission to test
  • Practice in authorized lab environments (VulnHub, HackTheBox, DVWA, etc.)
  • Follow responsible disclosure practices when finding vulnerabilities
  • Use knowledge for defensive security and authorized penetration testing
DO NOT
  • Access systems without explicit authorization
  • Use these techniques for malicious purposes
  • Deploy exploits against production systems you don't own
  • Share working exploits for unpatched vulnerabilities

Legal warning

Unauthorized access to computer systems is illegal in most jurisdictions (e.g. CFAA in the US, Computer Misuse Act in the UK). Violators may face criminal prosecution and civil liability. The author and publisher assume no liability for misuse of this information. By continuing, you agree to use this knowledge ethically and legally.

Gancho & Contexto

A maioria dos times de segurança tem uma política IPv4 coerente. Firewalls, DHCP snooping, ARP inspection — os suspeitos usuais estão configurados e auditados. O que frequentemente falta é que Windows tem IPv6 ativado por padrão desde Vista, e distribuições Linux fazem o mesmo há mais de uma década. O resultado é um ambiente dual-stack expansivo onde IPv6 é totalmente funcional no nível do SO mas invisível para o time de segurança. Sem RA Guard. Sem DHCPv6 snooping. Sem monitoramento. Apenas ar aberto.

O ataque coberto neste post explora uma característica fundamental do IPv6: Stateless Address Autoconfiguration (SLAAC). Quando um host inicia ou se conecta à rede, ele ouve mensagens de Router Advertisement (RA) para aprender seu gateway padrão, prefixo de rede e resolvedores DNS (via RDNSS). Não há mecanismo de autenticação no protocolo base. Qualquer host no mesmo segmento Camada 2 pode enviar um pacote RA e todo host desprotegido acreditará nele. O atacante não precisa tocar em IPv4. Não precisa fazer ARP-poison. Simplesmente se anuncia como o roteador, e o SO faz o resto.

Isso importa operacionalmente porque Windows preferirá IPv6 sobre IPv4 por padrão quando ambas as stacks estão ativas. Um atacante que vence a corrida do gateway padrão IPv6 intercepta tráfego que a vítima acredita estar indo para a rede real — consultas DNS, conexões SMB, autenticação LDAP, requisições HTTP — enquanto fluxos IPv4 funcionam normalmente, mantendo o usuário completamente alheio. Esta é a base de ataques como cadeias de relay NTLM via mitm6, e foi confiável e amplamente explorada em engajamentos de red team reais por anos.

TL;DR

DimensãoDetalhe
Superfície de ataqueQualquer segmento Camada 2 onde IPv6 está ativado por padrão (ou seja, praticamente em todo lugar)
Protocolo abusadoICMPv6 Router Advertisements (Tipo 134), SLAAC, RDNSS
O que o atacante ganhaPosição de gateway padrão IPv6 → interceptação de tráfego, sequestro DNS
Ferramenta principalmitm6 (combina com impacket para relay NTLM)
Defesa principalRA Guard em switches gerenciados + DHCPv6 snooping + filtragem RDNSS
Preferência do SOWindows prefere IPv6 sobre IPv4 por padrão (RFC 6724)

Fundamentos & Teoria

Por que SLAAC Existe e Por que Não Tem Autenticação

IPv6 foi projetado para ser auto-configurável em escala. SLAAC (definido em RFC 4862) permite que um host derive um endereço globalmente roteável completo a partir de um prefixo anunciado por um roteador mais seu próprio identificador de interface — sem servidor DHCP necessário. A mensagem de Anúncio de Roteador (ICMPv6 Tipo 134) carrega:

  • Prefix Information Option (PIO): o prefixo /64 que hosts usam para construir seu endereço
  • Router Lifetime: quanto tempo este roteador deve ser confiável como gateway padrão
  • RDNSS Option (RFC 8106): um ou mais endereços de servidor DNS, embutidos diretamente no RA

Os projetistas do protocolo assumiram que roteadores seriam confiáveis porque estavam fisicamente no segmento de rede correto. Não havia consideração para um host comprometido ou malicioso compartilhando o mesmo domínio de broadcast. Esta suposição é a raiz da vulnerabilidade.

Preferência IPv6 do Windows: O Multiplicador Silencioso

RFC 6724 define a política padrão de seleção de endereço para sistemas capazes de IPv6. Windows implementa esta política e coloca endereços unicast globais IPv6 acima de endereços IPv4 na tabela de seleção de endereço de destino. Quando um host Windows resolve um hostname e recebe ambos registros A (IPv4) e AAAA (IPv6), tentará o caminho IPv6 primeiro.

Isso significa que um atacante que controla apenas o caminho IPv6 pode interceptar respostas DNS e redirecionar conexões — mesmo se IPv4 está perfeitamente saudável. O usuário não vê nenhum erro. A sessão simplesmente passa pelo gateway errado.


Onde Se Encaixa no Fluxo de Trabalho

Loading diagram…

Este ataque se situa firmemente na fase de movimento lateral pós-acesso inicial. Assume que o atacante já está em um segmento Camada 2 — seja via uma estação de trabalho comprometida, um dispositivo malicioso em uma porta de rede, ou acesso a um segmento wireless. Não é um ataque pré-autenticação remoto. O poder está em como silenciosamente e completamente reposiciona o atacante como um insider de rede.


Conceitos Chave em Profundidade

1. O Pacote RA Malicioso: Anatomia do Sequestro

O pacote central é um Anúncio de Roteador ICMPv6 enviado do endereço link-local do atacante para o grupo multicast de todos os nós (ff02::1). Todo host com IPv6 ativado no segmento o recebe. Os campos críticos que um atacante controla:

  • Router Lifetime (definido alto, ex: 1800s): vítimas continuam usando este gateway até ele expirar ou um melhor aparecer
  • Prefix Information Option: o atacante anuncia um prefixo /64 com aparência legítima, ou sequestra o real
  • RDNSS Option: endereço IPv6 do atacante é inserido como o resolver DNS
  • M flag (Managed) / O flag (Other): pode instruir hosts a também usar DHCPv6, permitindo que mitm6 responda a mensagens DHCPv6 SOLICIT e entregue endereços IPv6 com DNS controlado por atacante

Com mitm6, você pode criar e inundar estes pacotes com um único comando:

bash
sudo mitm6 -i eth0 -d targetdomain.local

mitm6 especificamente alveja requisições WPAD e DNS do domínio -d, tornando-o cirúrgico em vez de barulhento. Responde a requisições DHCPv6 e injeta entradas RDNSS apontando para o host do atacante.

2. Envenenamento DNS via RDNSS

Uma vez que a vítima adota o resolver RDNSS malicioso, toda consulta DNS para nomes internos (targetdomain.local) vai para o atacante primeiro. mitm6 responde com seu próprio IP para qualquer busca — mais criticamente para WPAD (Web Proxy Auto-Discovery). Windows automaticamente requisitará wpad.targetdomain.local, e mitm6 devolve um script WPAD que roteia tráfego HTTP através do proxy do atacante.

Isto não é ruído teórico. Esta única cadeia de resposta DNS confiável dispara:

  • Autenticação NTLM para o servidor WPAD falso do atacante (Windows envia credenciais automaticamente para URLs da zona intranet)
  • Autenticação SMB quando mitm6 redireciona buscas de caminho UNC

Combine isto com impacket's ntlmrelayx.py e você tem uma cadeia de relay completa:

bash
sudo ntlmrelayx.py -6 -t smb://192.168.1.10 -wh attacker.targetdomain.local -l loot/

A flag -6 diz para ntlmrelayx ouvir em IPv6. Credenciais capturadas de WPAD/HTTP são retransmitidas em tempo real para alvos SMB internos.

3. Observando o Ataque em Wireshark

Antes de executar qualquer ferramenta, observação passiva ensina você o ambiente. Em Wireshark, aplique este filtro de exibição para ver todo tráfego RA no segmento:

icmpv6.type == 134

RAs legítimos vêm do endereço link-local do roteador real em baixa frequência (tipicamente a cada 200–600 segundos). Quando mitm6 é executado, você verá uma inundação de RAs do endereço link-local do atacante em taxa muito mais alta — esta é a estratégia "vencedora": super-anunciar o roteador real para que vítimas atualizem sua tabela de gateway padrão para o atacante.

Para ver opções RDNSS especificamente em Wireshark:

icmpv6.opt.type == 25

Isto isola pacotes RA contendo informações de servidor DNS. Você verá o endereço IPv6 do atacante sendo empurrado como resolver para todo host no segmento.

4. Diagrama da Superfície de Ataque: Quem é Vulnerável

Loading diagram…

Nota Linux: em sistemas usando systemd-networkd, a configuração accept-ra padrão é yes. Em sistemas NetworkManager, nm-setting-ip6-config controla aceitação de RA e está ativado por padrão. Verifique com:

bash
sysctl net.ipv6.conf.eth0.accept_ra

Um valor de 1 significa que o host aceitará e agirá sobre RAs de qualquer fonte.

5. Scapy para Criação Personalizada de RA

Para ambientes de laboratório controlados e injeção de RA direcionada (ex: testar opções RDNSS específicas sem inundar), Scapy oferece controle preciso:

python
from scapy.all import *
from scapy.layers.inet6 import *

iface = "eth0"
src_mac = get_if_hwaddr(iface)
src_ip = get_if_addr6(iface)  # link-local do atacante

ra = (
    Ether(src=src_mac, dst="33:33:00:00:00:01") /
    IPv6(src=src_ip, dst="ff02::1") /
    ICMPv6ND_RA(routerlifetime=1800) /
    ICMPv6NDOptPrefixInfo(prefix="2001:db8:dead:beef::", prefixlen=64) /
    ICMPv6NDOptRDNSS(dns=["2001:db8:dead:beef::1"])
)

sendp(ra, iface=iface, loop=1, inter=5)

Isto é útil para exercícios purple team onde o objetivo é validar se políticas RA Guard estão capturando RAs injetados em portas específicas do switch, sem executar uma sessão mitm6 completa que interrompe tráfego de produção.


Alternativas & Comparação

Ferramenta / MétodoMecanismoDiscretoCaso de Uso
mitm6DHCPv6 + injeção RA RDNSSMédioCadeia de relay NTLM completa, red team
Scapy RA customizadoCriação ICMPv6 manualAltoTeste de laboratório direcionado, purple team
fake_router6 (THC-IPv6)Inundação RA brutaBaixoTeste agressivo, risco de DoS
EvilFOCA (Windows)MITM IPv6 baseado em GUIMédioTestes de pen em Windows-cêntricos
Abuso Router Advertisement Daemonradvd mal configuradoMuito AltoAmeaça interna, sequestro de serviço legítimo

mitm6 é a escolha padrão para engajamentos de red team porque é limitado a um domínio específico, se integra diretamente com ntlmrelayx, e tem comportamento bem compreendido. fake_router6 do toolkit THC-IPv6 é mais barulhento e mais provável de ativar alertas IDS ou causar disrupção legítima de rede — use-o apenas em ambientes de laboratório isolados.


Hardening: Defendendo Contra RAs Maliciosos

⚠️ Detecção sem prevenção não é um controle de segurança. Compreender o ataque é metade do trabalho — compreender a remediação é o que separa uma auditoria completa de um relatório de vulnerabilidade.

RA Guard (IEEE 802.1aq / RFC 6105)

RA Guard é um controle de nível Camada 2 em switch que descarta pacotes RA em portas não designadas como voltadas para roteador. Configure-o em Cisco IOS-XE:

ipv6 nd raguard policy HOST-POLICY
 device-role host
!
interface GigabitEthernet1/0/1
 ipv6 nd raguard attach-policy HOST-POLICY

Todas as portas voltadas para host recebem HOST-POLICY. Apenas portas uplink/roteador são deixadas sem ela. Este é o controle mais efetivo único porque opera no tecido de switch antes de qualquer host jamais ver o pacote malicioso.

DHCPv6 Snooping

Similar a DHCP snooping em IPv4, isto descarta mensagens DHCPv6 REPLY de portas não confiáveis, prevenindo que mitm6 se assigne com sucesso como servidor DNS via DHCPv6:

ipv6 dhcp snooping
ipv6 dhcp snooping vlan 10

Group Policy do Windows: Desativando Componentes IPv6 Seletivamente

Se IPv6 não é operacionalmente requerido, a abordagem recomendada pela Microsoft não é desativar a stack inteiramente (o que pode quebrar coisas) mas usar a chave de registro HKLM\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents com uma máscara de bits. Via Group Policy Preferences, defina valor 0xFF para desativar todos os componentes IPv6 exceto o loopback. Isto previne SLAAC inteiramente.

Linux: Endurecer Aceitação de RA

bash
# Desativar aceitação de RA em todas as interfaces
sysctl -w net.ipv6.conf.all.accept_ra=0
sysctl -w net.ipv6.conf.default.accept_ra=0

Fazer permanente em /etc/sysctl.d/99-ipv6-harden.conf.


Leitura Adicional & Referências

Achou este artigo interessante? Siga-me no X e no LinkedIn.