You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/generic-methodologies-and-resources/pentesting-network/eigrp-attacks.md
+66-1Lines changed: 66 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,33 @@
62
62
63
63
-**HELLO packets carry K-values and neighbors only form when they match.** This is the basis for K-value mismatch/relationship disruption attacks and why mismatched K-values prevent adjacency.
64
64
-**The PARAMETER TLV (Type 0x0001) in HELLO (and initial UPDATE) carries K-values and Hold Time**, so passive captures reveal the exact values used on the segment.
65
+
-**EIGRP uses IP protocol 88**, multicasting to **224.0.0.10** in IPv4 and **FF02::A** in IPv6. That makes it easy to spot with `tcpdump 'ip proto 88 or ip6 proto 88'` before attempting active abuse.
66
+
-**Reliable UPDATEs are ordered with sequence / acknowledgement fields and SEQUENCE TLVs.** Blind multicast route injection can work in weak labs, but when emulating a real neighbor you often need to track `seq`, `ack`, and the peer list carried in SEQUENCE TLVs to stay in sync with the RTP logic.
67
+
68
+
## **Passive Recon Before Injection**
69
+
70
+
Before you try to inject routes, capture a legitimate HELLO / UPDATE exchange and extract:
71
+
72
+
-**AS number**
73
+
-**K-values and Hold Time** from the PARAMETER TLV
74
+
-**Authentication in use**: none, MD5, or HMAC-SHA-256
75
+
-**Neighbor source address** and the subnet/interface where EIGRP is active
76
+
-**Software / TLV profile** (`SOFTWARE_VERSION`, `STUB`, `SEQUENCE`) so your crafted packets look like the local routers
77
+
78
+
Useful commands:
79
+
80
+
```bash
81
+
# Passive sniffing
82
+
sudo tcpdump -ni eth0 'ip proto 88 or ip6 proto 88'
Nmap's `broadcast-eigrp-discovery` works by sending a HELLO to `224.0.0.10` and parsing the returned UPDATE packets, which is useful to enumerate prefixes before attempting a more intrusive route injection.
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).
81
108
109
+
Scapy also exposes primitives that are useful when you need higher-fidelity emulation instead of a single UPDATE:
110
+
111
+
-`EIGRPAuthData` for authenticated adjacencies
112
+
-`EIGRPSeq` for sequence / conditional-receive handling
113
+
-`EIGRPStub` to mirror observed stub behavior
114
+
-`EIGRPv6IntRoute` / `EIGRPv6ExtRoute` for IPv6 route injection
115
+
116
+
That matters because the reliable transport logic is often what separates a throwaway PoC from a fake neighbor that survives long enough to learn routes and poison the topology.
117
+
118
+
## **EIGRP for IPv6**
119
+
120
+
EIGRP for IPv6 is a separate address-family transported over IPv6. It still uses EIGRP packet format / TLVs, but it is enabled directly on interfaces and multicasts to `FF02::A`. From an offensive perspective, that means a dual-stack segment may expose an EIGRP attack surface even when the IPv4 side looks clean.
121
+
122
+
Important differences:
123
+
124
+
-**IPv6 EIGRP is enabled per interface** (`ipv6 eigrp <as>`), not with IPv4-style `network` statements.
125
+
-**A router ID is still required**, so sniffing an active segment usually reveals enough context to mimic a valid peer.
126
+
-**MD5 authentication exists for EIGRP for IPv6**, and modern named mode deployments may also use **HMAC-SHA-256**, which blocks unauthenticated route injection.
If the IPv6 next hop inside the route TLV is zeroed, receivers fall back to the IPv6 source address in the packet header. That makes source spoofing and correct link-local addressing especially important during EIGRPv6 testing.
- Example scripts: https://github.com/davidbombal/scapy
84
146
@@ -90,11 +152,14 @@ The same repo includes quick "fake neighbor" scripts that sniff a real EIGRP pac
90
152
## **Authentication Recon**
91
153
92
154
- EIGRP named mode supports **HMAC-SHA-256 authentication** via `authentication mode hmac-sha-256 ...`. If enabled, crafted packets must be authenticated with the correct key; if not enabled, spoofing/injection is easier to validate.
155
+
- RFC 7868 also defines both **MD5** and **SHA2-256** authentication data inside the EIGRP AUTH TLV, which is why passive captures quickly tell you whether a blind spoof is realistic or whether you first need key material.
156
+
- On EIGRP for IPv6, Cisco also supports **MD5 authentication with key chains**. If multiple keys with send/accept lifetimes are configured, replaying stale authenticated traffic becomes less reliable because the active key can rotate without changing the rest of the adjacency profile.
0 commit comments