扫一扫
关注微信公众号

关于一些路由协议的漏洞(2)
2007-09-03   eNet论坛

看到没有,到达222.222.222.0/24经由192.168.1.254

Rprobe & srip--这个工具附带在一篇关于RIP欺骗非常不错的指南文档中(由humble写),你可以在下面的地址找到这篇文章http://www.technotronic.com/horizon/ripar.txt.Rprobe工具会从一路由daemon(守护程序)中请求一RIP路由表的拷贝,使用Tcpdump或者其他任何嗅探工具可以用来捕获这些结果。接下来,srip可以用来从任意源IP发送一伪造的RIPv1或者RIPv2消息,Srip可以插入新的路由和使当前的路由无效,当然攻击者/渗透测试者需要知道命令行中使用什么参数。关于这些工具的介绍可参看Hacking Exposed 第二版Network Device节找到示例。

当然还有其他工作与相关路由协议的工具可被攻击者或者渗透测试者使用,如:Routed,gated, zebra, mrt, 和 gasp ,大家可以参看其他的文档。

下面是有关各种协议的浅释和相关漏洞及可以采用的防卫措施

Routing Information Protocol (RIP,路由信息协议)

Routing Information Protocol (RIP,路由信息协议)是基于距离矢量的路由协议,其所有路由基于(hop)跳数来衡量。由Autonomous System (AS,自主系统) 来全面的管理整个由主机,路由器和其他网络设备组成的系统。RIP是作为一种内部网关协议(interior gateway protocol),即在自治系统内部执行路由功能。相反的大家都知道外部网关路由协议(exterior gateway protocol),如边缘网关协议(BGP),在不同的自治系统间进行路由。RIP协议对大型网络来说不是一个好的选择,因为它只支持15跳,RIPv1而且只能通信自身相关的路由信息,反之RIPv2能对其他路由器进行通信。RIP协议能和其他路由协议共同工作,依照Cisco,RIP协议经常用来与OSPF协议相关联,虽然很多文荡指出OSPF需代替RIP. 应该知道经由RIP更新提交的路由可以通过其他路由协议重新分配,这样如果一攻击者能通过RIP来欺骗路由到网络,然后再通过其他协议如OSPF或者不用验证的BGP协议来重新分配路由,这样攻击的范围将可能扩大。

RIP协议相关的漏洞和防范措施

一个测试者或者攻击者可以通过探测520 UDP端口来判断是否使用RIP,你可以使用熟悉的工具如nmap来进行测试,如下所示,这个端口打开了并没有使用任何访问控制联合任意类型的过滤:

[root@test]# nmap -sU -p 520 -v router.ip.address.2 

interesting ports on (router.ip.address..2):

Port State Service

520/udp open route

扫描UDP520端口在网站http://www.dshield.org/的\"Top 10 Target Ports\"上被排列在第7位,你表明有许多人在扫描RIP,这当然和一些路由工具工具的不断增加有一定的关联。

RIPv1 天生就有不安全因素,因为它没有使用认证机制并使用不可靠的UDP协议进行传输。RIPv2的分组格式中包含了一个选项可以设置16个字符的明文密码字符串(表示可很容的被嗅探到)或者MD5签字。虽然RIP信息包可以很容易的伪造,但在RIPv2中你使用了MD5签字将会使欺骗的操作难度大大提高。一个类似可以操作的工具就是nemesis项目中的RIP命令--nemesis-rip,但由于这个工具有很多的命令行选项和需要必备的知识,所以nemesis-rip 比较难被script kiddies使用。想使用nemesis-rip成功进行一次有效的RIP欺骗或者类似的工具需要很多和一定程度的相关知识。不过\"Hacking Exposed\"第二版第10章:Network Devices提到的有些工具组合可以比较容易的进行RIP欺骗攻击攻击,这些工具是使用rprobe来获得远程网络RIP路由表,使用标准的tcpdump或者其他嗅探工具来查看路由表,srip来伪造RIP信息包(v1或者v2),再用fragrouter重定向路由来通过我们控制的主机,并使用类似dsniff的工具来最后收集一些通信中的明文密码。

尽管大家知道欺骗比较容易,但仍然存在一些大的网络提供商仍旧依靠RIP来实现一些路由功能,虽然不知道他们是否采用来安全的措施。RIP显然目前还是在使用,呵呵但希望很少人使用RIPv1,并且使用了采用MD5安全机制的RIPv2,或者已经移植到了使用MD5认证的OSPF来提高安全性。

Border Gateway Protocol (BGP,边界网关协议)

BGP是Exterior Gateway Protocol (EGP,外部网关协议),此协议执行的时候自主系统之间的路由,现在BGP4是最近的流行标准,BGP使用几种消息类型,其中这文章相关的最重要的消息是UPDATE消息类型,这个消息包含了路由表的更新信息,全球INTERNET大部分依靠BGP,因此一些安全问题必须很严肃的对待,L0pht几年就宣称过:他们能在很短的时间内利用路由协议的安全如BGP来搞垮整个Internet.

BGP协议相关的漏洞和防范措施

BGP使用TCP 179端口来进行通信,因此nmap必须探测TCP 179端口来判断BGP的存在。

[root@test]# nmap -sS -p 179 -v router.ip.address.2 

Interesting ports on (router.ip.address..2):

Port State Service

179/tcp open bgp

一个开放的BGP端口,更容易被攻击

[root@test]# nmap -sS -n -p 179 router.ip.address.6

Interesting ports on (router.ip.address.6):

Port State Service

179/tcp filtered bgp

BGP端口被过滤了,对攻击有一定的抵抗力。

由于BGP使用了TCP的传输方式,它就会使BGP引起不少关于TCP方面的问题,如很普遍的SYN Flood攻击,序列号预测,一般拒绝服务攻击等。BGP没有使用它们自身的序列而依靠TCP的序列号来代替,因此,如果设备采用了可预测序列号方案的话,就存在这种类型的攻击,幸好的是,运行在Internet上大部分重要的路由器使用了Cisco设备,而其是没有使用可预测序列号方案。

部分BGP的实现默认情况下没有使用任何的认证机制,而有些可能存在和RIP同样的问题就是使用了明文密码。这样假如认证方案不够强壮的话,攻击者发送UPDATE信息来修改路由表的远程攻击的机会就会增加许多,导致进一步的破坏扩大。

BGP也可以传播伪造的路由信息,如果攻击者能够从一协议如RIP中修改或者插入路由信息并由BGP重新分配。这个缺陷是存在与信任模块中而不是其协议本身。另外BGP的community 配置也会有某些类型的攻击,原因是community name在某些情况下是作为信任token(标志)可以被获得。至于通过通过BGP的下层协议(TCP)对其攻击看来是比较困难的,因为会话在点对点之间是通过一条单独的物理线路进行通信的,但在一定环境如在两AS系统通过交换机来连接则可能存在TCP插入的攻击,在这样的网络中,攻击者在同一VLAN或者他有能力嗅探switch的通信(如使用dsniff工具通过ARP欺骗来获得),监视TCP序列号,插入修改的信息包或者使用工具如hunt的进行hijack连接而获得成功,但这种类型的攻击一般只能在实验室环境中演示比较容易,而在实际的网络中因为太过复杂而很难成功。

要使BGP更安全,你最好对端口179采用访问列表控制,使用MD5认证,使用安全传输媒体进行安全BGP通信和执行路由过滤(你可以查看下面的文档(see http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/12cgcr/np1_c/1cprt1/1cbgp.htm#40309)以及一些标准的路由安全设置过滤配置。

Open Shortest Path First (OSPF,开放最短路径优先协议)

OSPF是动态连接状态路由协议,其保持整个网络的一个动态的路由表并使用这个表来判断网络间的最短路径,OSPF是内部使用连接状态路由协议,协议通过向同层结点发送连接状态信息(LSA)工作,当路由器接收到这些信息时,它就可以根据SPF算法计算出到每个结点的最短路了。其他相临路由器通过使用OSPF的Hello协议每10秒发送一个问候包给224.0.0.5,然后接收这些路由器发回的信息。一个OSPF的hello信息包头可以通过iptraf来嗅探到,如下所示:

OSPF hlo (a=3479025376 r=192.168.19.35) (64 bytes) from 192.168.253.67 to 224.0.0.5 on eth0

192.168.253.67边界路由器发送一个helo信息包给多播(224.0.0.5)来告诉其他路由器和主机怎样

从192.168.19.35联系区域a(a=3479025376).

一旦路由器接受到Hello信息包,它就开始同步自己的数据库和其他路由一样。

一个LAS头包括以下几个部分: LS age, option, LS type, Link state ID, Advertising Router ID,

LS sequence number, LS checksum, 和 length.

热词搜索:

上一篇:关于一些路由协议的漏洞(1)
下一篇:关于一些路由协议的漏洞(3)

分享到: 收藏