hacktricks/generic-methodologies-and-resources/pentesting-network/eigrp-attacks.md

7.8 KiB
Raw Blame History

EIGRP 攻击

从零开始学习 AWS 黑客技术,成为 htARTEHackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

本页面基于 ****。查看以获取更多信息。

理解 EIGRP 协议的漏洞

EIGRP增强内部网关路由协议 被识别为一种动态的距离矢量路由协议。如果忽略身份验证或被动接口的配置可能会出现关键漏洞导致潜在的路由表污染。此外EIGRP 网络或自治系统的结构是非分段的,缺乏任何形式的区域划分。这种扁平结构意味着攻击者注入的路由可能传播到整个自治系统。

![](../../.gitbook/assets/image (25) (1).png)

利用 EIGRP 系统的初始步骤包括与合法的 EIGRP 路由器建立连接。这种连接打开了从侦察到各种形式的注入的途径。为了实现这一点,使用开源解决方案 FRRouting 在 Unix 和 Linux 系统上模拟路由器。FRRouting 支持多种协议,包括 BGP、OSPF 和 EIGRP。在攻击者的系统上部署 FRRouting 使其能够在路由域内模拟合法的路由器。将在后续提供在您的系统上部署 FRR 的详细说明。

收集网络情报

集成到路由域中允许对网络进行枚举和侦察提供了一种节省时间的替代方案避免了广泛扫描的风险。这种方法不仅节省时间还减少了被入侵检测系统IPS/IDS发现的风险。要实现这一点需要部署 FRRouting

需要在控制守护程序活动的 daemons 配置文件中进行修改。必须激活 eigrpd 守护程序。

~# nano /etc/frr/daemons
eigrpd=yes

此外,需要调整vtysh.conf文件,以确保各种协议的配置被整合到单个文件中。

~# nano /etc/frr/vtysh.conf
service integrated-vtysh-config

在配置完成后需要启动FRR守护程序并启用流量路由在Linux发行版中默认情况下是禁用的

~$ sudo systemctl start frr
~$ sudo sysctl -w net.ipv4.ip_forward=1

![](../../.gitbook/assets/image (32).png)

vtysh命令提供对FRR路由器控制面板的访问。

~$ sudo vtysh

示例用法:

root# show version

注意EIGRP路由域可能已通过身份验证进行保护。但是仍然可以通过从hello数据包中提取加密哈希并重置密码来实现潜在访问。

在全局配置模式下,启动EIGRP进程并定义自治系统号为1,以及网络位置。

root# config
root(config)# router eigrp 1
root(config-router) network 10.10.100.50/32

在与合法的 EIGRP 路由器(在本例中为 GW1 (10.10.100.100)GW2 (10.10.100.200))建立邻居连接后,路由器会交换路由信息。这个过程会导致攻击系统的路由表中出现新的路由,有助于渗透测试并节省子网扫描时间。在这个阶段,系统已经成为 EIGRP 路由域的一部分,并准备好进一步发展攻击向量。

![](../../.gitbook/assets/image (5) (1) (2).png) ![](../../.gitbook/assets/image (30) (1).png) ![](../../.gitbook/assets/image (29) (1) (2).png)

利用 EIGRP攻击向量

1. 伪造 EIGRP 邻居

大量发送 EIGRP hello 数据包可能导致路由器 CPU 过载,为 DoS 攻击铺平道路。一个名为 helloflooding.py 的脚本用于此目的,尽管其数据包发送速度受 GIL全局解释器锁限制。计划对该脚本进行 C 语言重写以提高性能。

![](../../.gitbook/assets/image (2) (6) (1).png)

脚本的使用涉及指定:

  • 网络接口例如eth0
  • EIGRP 自治系统号例如1
  • 子网位置例如10.10.100.0/24
~$ sudo python3 helloflooding.py --interface eth0 --as 1 --subnet 10.10.100.0/24

2. EIGRP黑洞

这种攻击涉及注入虚假路由以破坏流量流向,通常称为黑洞攻击。使用routeinject.py脚本来实现。例如,将172.16.100.140/32的流量重定向到一个不存在的目的地。

Script参数包括

  • 攻击者系统接口
  • EIGRP AS号
  • 攻击者IP地址
  • 目标子网IP及其掩码
~$ sudo python3 routeinject.py --interface eth0 --as 1 --src 10.10.100.50 --dst 172.16.100.140 --prefix 32

![](../../.gitbook/assets/image (20) (1).png)

攻击结果是由于路由注入导致对目标主机的连接丢失。

![](../../.gitbook/assets/image (6) (1) (1).png)

3. 滥用 K-Values

EIGRP 路由器之间不匹配的 K-Values 可以破坏 EIGRP 域。relationshipnightmare.py 脚本利用这一点,通过注入修改后的 K-Values触发 EIGRP 域内持续的中断和重新连接,有效地导致 DoS 攻击。

![](../../.gitbook/assets/image (12) (2) (1).png)

脚本需要:

  • 网络接口
  • EIGRP AS 号
  • 合法路由器的 IP 地址

注入的修改会从指定的 IP 发送到多播 EIGRP IP 地址,导致不匹配。

~$ sudo python3 relationshipnightmare.py --interface eth0 --as 1 --src 10.10.100.100

![](../../.gitbook/assets/image (9) (1) (4).png) ![](../../.gitbook/assets/image (27) (1).png)

4. 路由表溢出

此攻击通过向路由表发送虚假路由来使路由器的CPU和RAM负担过重。routingtableoverflow.py 脚本通过快速发送大量虚假路由来实现此攻击。

![](../../.gitbook/assets/image (3) (4).png)

脚本参数:

  • 网络接口
  • EIGRP AS编号
  • 攻击者的IP地址

执行脚本后,路由表将充斥着虚假路由,严重影响路由器性能。

sudo python3 routingtableoverflow.py --interface eth0 --as 1 --src 10.10.100.50

![](../../.gitbook/assets/image (4) (4).png) ![](../../.gitbook/assets/image (21) (1).png)

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS Red Team Expert

其他支持HackTricks的方式