RIPv2认证机制与安全漏洞分析
在本系列的第一部分《利用RIP漏洞》中,我们搭建了使用RIPv1的GNS3实验环境,并成功通过注入伪造路由来利用其漏洞。作为防护措施,RIPv2可采用认证机制来阻止未授权路由添加到系统中。根据我的研究,RIPv2的认证功能并非作为安全机制设计,而是为了防止错误配置的路由器意外添加路由。
本文将逐步将实验环境从版本1升级到版本2,并启用不同级别的认证。在每个阶段,我将展示系统的弱点及利用方法。
实验网络拓扑
这是我上一篇文章中构建的网络:
(图1:网络拓扑示意图)
从RIPv1升级到RIPv2
首先查看RIPv1的数据包捕获,以便对比启用认证后的差异:
(图2:RIPv1数据包捕获)
现在将版本从1升级到2:
|
|
需要在R2和R3上重复此操作,确保所有设备都使用版本2通信。
升级后的数据包捕获显示:
(图3:RIPv2数据包捕获)
版本2在每个数据包中发送更多信息,但本质上没有实质性变化。
启用认证机制
启用认证前,建议检查网络连通性。我曾在某个设备上忘记设置版本,导致网络暂时中断。
要启用认证,首先需要设置密钥链和密钥字符串:
|
|
这将创建名为"digi"的密钥链,其中包含密码"ninja"。然后将密钥应用到接口:
|
|
此时网络中的RIP会中断,因为R1发送带认证的消息,但R2不期望认证,会忽略提供的路由。
数据包层面显示:
(图4:明文密码数据包捕获)
密码以明文形式传输!我们可以利用此漏洞更新VM配置使用RIPv2和收集到的密码。
Quagga配置修改
修改Quagga配置文件很简单:
- 将版本号从1改为2
- 添加以下行(需要缩进):
|
|
启动Quagga后检查R1路由表,发现没有变化。原因是只配置了R1的e1/0接口使用RIPv2和认证,但未修改连接VBox的e1/3接口,该接口仍期望版本1且无认证。
通过调试命令验证:
|
|
显示忽略来自192.168.0.101(VBox)的数据包,原因为"invalid authentication"。
配置MD5认证
RIPv2还支持基于MD5的认证,旨在防止密码明文传输。这是推荐的安全配置。
启用MD5认证:
|
|
需要在通信双方都进行配置。清除R1上的缓存路由:
|
|
破解MD5认证
使用Cain和Able工具
破解MD5哈希的步骤:
- 捕获包含RIPv2消息的pcap文件
- 在Cain中打开pcap文件
- 转到Sniffer标签页,然后选择Routing标签
- 右键点击要破解的条目,选择"Send to Cracker"
- 转到Cracker标签页,数据包会显示在列表中
- 选择攻击类型(如字典攻击)
- 加载字典文件并开始破解
(图5:Cain破解界面) (图6:破解成功界面)
使用John the Ripper工具
安装John the Ripper:
|
|
安装Ettercap提取密钥:
|
|
检查pcap中的RIP数据包:
|
|
将RIP数据包导出到文件:
|
|
运行John进行破解:
|
|
成功破解密码"ninja"。
结论
通过这两篇文章,您已掌握如何嗅探网络中的RIP数据包、注入伪造路由(无论使用版本1还是2),以及如何破解认证机制。虽然RIP协议现在较少使用(OSPF更受青睐),但其简单性使其成为学习更复杂协议的良好起点。
未来计划覆盖其他二层协议如OSPF、HSRP和EIRGP,使用的工具大多相同,因此从这些实验过渡到更复杂的协议将相对简单。