一个入侵者想非法进入某台计算机,他知道这台主机的防火墙只对192.0.0.3(假设)这个IP开放23口(telnet),而他必须要使用telnet来进入这台主机,所以他要这么做:
1、他先研究192.0.0.3这台计算机,发现这台95的机器使用一个oob就可以让他死掉。
2、于是,他送一个洪水包给192.0.0.3的139口,于是,该机器应包而死。
3、这时,主机发到192.0.0.3的IP包将无法被机器应答,系统开始更新自己的arp对应列表。将192.0.0.3的项目除去。
4、这段时间里,入侵者把自己的IP改成192.0.0.3
5、他发一个ping(ICMP 0)给主机,要求主机更新主机的arp转换列表。
6、主机找到该IP,然后在arp列表中加入新的IP-->MAC对应关系。
7、防火墙失效了,入侵的IP变成合法的MAC地址,可以telnet了。
现在,假如该主机不只提供telnet,它还提供r命令(rsh,rcopy,rlogin等)那么,所有的安全约定将无效,入侵者可以放心的使用这台主机的资源而不用担心被记录什么。
有人也许会说,这其实就是冒用IP嘛。是冒用了IP,但决不是IP欺骗,IP欺骗的原理比这要复杂的多,实现的机理也完全不一样。
上面就是一个ARP的欺骗过程,这是在同网段发生的情况。但是,提醒注意的是,利用交换集线器或网桥是无法阻止ARP欺骗的,只有路由分段是有效的阻止手段。(也就是IP包必须经过路由转发。在有路由转发的情况下,ARP欺骗如配合ICMP欺骗将对网络造成极大的危害。从某种角度讲,入侵者可以跨过路由监听网络中任何两点的通讯,如果设置防火墙,请注意防火墙有没有提示过类似“某某IP是局域IP但从某某路由来”等这样的信息。
在有路由转发的情况下,发送到达路由的IP的主机其arp对应表中,IP的对应值是路由的MAC。
比如: 我pingwww.xxxx.com后,那么在我的计算机中,www. xxxx.com的IP对应项不是xxxx的MAC,而是我路由的MAC,其IP也是我路由的IP。(有些网络软件通过交换路由ARP可以得到远程IP的MAC)。
有兴趣做深入一步的朋友可以考虑这样一种情况:
假设这个入侵者突然想到:我要经过一个路由才可以走到那台有防火墙的主机!!!
于是这个入侵者开始思考:
1、我的机器可以进入那个网段,但是,不是用192.0.0.3的IP。
2、如果我用那个IP,就算那台正版192.0.0.3的机器死了,那个网络里的机器也不会把IP包丢到路由传给我。
3、所以,我要骗主机把IP包丢到路由。
通过多种欺骗手法可以达到这个目的。所以他开始这样做:
1、为了使自己发出的非法IP包能在网络上活久一点,开始修改ttl为下面的过程中可能带来的问题做准备。他把ttl改成255。 (ttl定义一个IP包,如果在网络上到不了主机后在网络上能存活的时间,改长一点在本例中有利于做充足的广播)
2、他掏出一张软盘,这张软盘中有他以前用sniffer时保存的各种IP包类型。
3、他用一个合法的IP进入网络,然后和上面一样,发个洪水包让正版的192.0.0.3死掉,然后他用192.0.0.3进入网络。
4、在该网络的主机找不到原来的192.0.0.3的MAC后,将更新自己的ARP对应表。于是他赶紧修改软盘中的有关ARP广播包的数据,然后对网络广播说"能响应IP为192.0.0.3的MAC是我"。
5、好了,现在每台主机都知道了,一个新的MAC地址对应IP 192.0.0.3,一个ARP欺骗完成了,但是,每台计算机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.3的IP包丢给路由。于是他还得构造一个ICMP的重定向广播。
6、他开始再修改软盘中的有关ICMP广播包的数据,然后发送这个包,告诉网络中的主机:“到192.0.0.3的路由最短路径不是局域网,而是路由。请计算机重定向你们的路由路径,把所有到192.0.0.3的IP包丢给路由哦。”
7、计算机接受到这个合理的ICMP重定向后,于是修改自己的路由路径,把对192.0.0.3 的IP通讯都丢给路由器。
8、入侵者终于可以在路由外收到来自路由内的主机的IP包了,他可以开始telnet到主机的23口,用IP 192.0.0.3。
注意,这只是一个典型的例子,在实际操作中要考虑的问题还不只这些。
现在想想,如果他要用的是Sniffer会怎样? 可见,利用ARP欺骗,一个入侵者可以:
1、利用基于IP的安全性不足,冒用一个合法IP来进入主机。
2、逃过基于IP的许多程序的安全检查,如NSF,R系列命令等。
他甚至可以栽赃嫁祸给某人,让他跳进黄河也洗不清!
没有评论:
发表评论