RIPv2认证机制与安全漏洞分析

本文详细分析了RIPv2认证机制的安全弱点,包括明文传输漏洞和MD5哈希破解方法,通过实验演示如何利用Quagga注入伪造路由,并使用Cain和John the Ripper工具成功破解加密密码。

RIPv2认证机制与安全漏洞分析

在本系列的第一部分《利用RIP漏洞》中,我们搭建了使用RIPv1的GNS3实验环境,并通过向网络注入伪造路由成功实现了攻击。作为防护措施,RIPv2可采用认证机制来阻止未授权路由添加到系统中。根据我的研究,RIPv2加入认证并非出于安全考虑,而是为了防止错误配置的路由器意外添加路由。

本文将逐步将实验环境从版本1升级到版本2,并启用不同级别的认证。在每个阶段,我都会展示系统的弱点及相应的利用方法。

实验网络拓扑

这是我上篇文章构建的网络结构:(图示略)

RIPv1数据包分析

首先查看RIPv1数据包捕获情况,以便对比启用认证后的差异:(数据包截图略)

升级到RIPv2

1
2
3
R1#conf t
R1(config)#router rip
R1(config-router)#version 2

需要在R2和R3上重复此操作,确保所有设备都使用版本2协议。

升级后的数据包显示版本2发送了更多信息,但本质上没有实质性变化。

启用认证机制

启用认证前需先创建密钥链和密钥字符串:

1
2
3
4
R1#conf t
R1(config)#key chain digi
R1(config-keychain)#key 1
R1(config-keychain-key)#key-string ninja

然后将密钥应用到接口:

1
2
3
R1#conf t
R1(config)#interface e1/0
R1(config-if)#ip rip authentication key-chain digi

此时网络中的RIP会中断,因为R1发送认证信息而R2未预期接收。

明文传输漏洞

数据包分析显示密码以明文传输:(数据包截图显示明文密码"ninja")

配置Quagga支持认证

修改Quagga配置文件:

  • 将版本号从1改为2
  • 添加以下内容(需保持缩进):
1
2
3
4
5
6
7
8
!
key chain digi
 key 1
  key-string ninja
!
interface eth0
 ip rip authentication key-chain digi
 ip rip authentication mode text

调试技巧

使用调试命令观察认证过程:

1
R1#debug ip rip

显示"invalid authentication"错误信息,表明认证失败。

MD5认证机制

启用MD5认证:

1
2
3
R1#conf t
R1(config)#interface e1/3
R1(config-if)#ip rip authentication mode md5

需在通信双方都启用此配置。

破解MD5认证

使用Cain and Able工具

步骤:

  1. 捕获包含RIPv2数据包的pcap文件
  2. 在Cain中打开pcap文件
  3. 转到Sniffer → Routing标签
  4. 右键选择要破解的条目 → “Send to Cracker”
  5. 在Cracker标签中选择字典攻击方式
  6. 加载字典文件并开始破解

成功破解后显示密码"ninja"。

使用John the Ripper工具

安装步骤:

1
2
3
git clone -b bleeding-jumbo https://github.com/magnumripper/JohnTheRipper.git
cd JohnTheRipper/src
make linux-x86-64-native

提取哈希值:

1
ettercap -Tr ./rip_v2_from_r1_just_r1.pcap > ~/rip_for_john

运行破解:

1
~/JohnTheRipper/run/john ~/rip_for_john --wordlist=/tmp/words

成功破解出密码"ninja"。

结论

通过这两篇文章,您已经掌握了嗅探RIP数据包、注入伪造路由的方法,以及如何破解RIPv2的认证机制。虽然RIP协议现已较少使用,但作为学习更复杂协议(如OSPF、HSRP和EIRGP)的基础仍然很有价值。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计