ARP 欺骗与反ARP欺骗(转载)

 搬家后,这里可以上网,是房东牵了一根宽带然后用交换机分到每个房间里. 头天来还挺快。从第二天开始,速度就奇慢无比,十有八九是有人在下BT。就在网上找点工具查查谁在下。GOOGLE,BAIDU一搜,网络执法官,P2P 终结者。OK,下了个P2P终结者。运行起来,一查,果然拦截到不少BT,电驴等的数据。然后一开用户列表,有一台机器下载速度达到130k,天哪,你们 用了这么多,别人还用不用了。当时一发狠,就把他的网给掐了。随即世界太平了。网速恢复嗖嗖的了。

             过了两天,发现网速又是奇慢。打开P2P终结者,咦?能拦截到P2P的包,但是每个用户都是几k的速度,总的带宽占用也不多啊,是不是也有人用网络执法官 之类的软件呢?后来在网上查资料,了解诸如网络执法官,P2P终结者之所以限制网速甚至断网,就是利用了ARP欺骗的原理。

                    在局域网内通讯,IP层的下一层——链路层是通过MAC地址通讯的。比如我要访问192.168.0.3的机器,这时我可能不知道192.168.0.3 的MAC地址,这时我就向局域网里广播一个ARP包,问谁是192.168.0.3啊?请把你的MAC地址发我。局域网内所有的机器都会收到这个广播包, 正常情况下,只有192.168.0.3的机器会做出应答,说我的MAC是A23FFF0D,这时我的机器就知道了192.168.0.3对应的MAC地 址,并可以和他通讯了,并且会在本机的ARP缓冲里面保存192.168.0.3对应的MAC地址,这样就不用每次都去发广播包询问了。某太机器的IP地 址可能会变,所以这个列表会随时更新的。ARP欺骗的原理就是,当有ARP查询包时,尤其是要查询网关的ARP的时候,有其他机器在中间回答,说我是网 关,这就麻烦了。比如网关的IP地址是192.168.0.1,我要上网了,肯定要先把数据发到网关,于是我就先发个广播包询问,谁是网关啊,把你的 MAC地址发个我。其中有不是网关的机器就对这个ARP查询数据应答了,说我是网关,要想上网把数据发给我,这样我每次上网的数据都是先发给他,再由他发 给真正的网关,这就达到了截获数据的目的,当然也可以干脆把数据包丢掉,得,这下干脆就上不了网了。而且ARP还有一种广播包,里面的信息是IP地址和对 应的MAC地址。正常情况下,比如我的ip地址变更了,我就可以发送这样一个广播包告诉大家,我的IP地址和对应MAC地址是多少,以前的IP地址不用 了。但是这样一种包也可以被ARP欺骗利用,他可以不停在局域网里广播数据包,包的内容是网关的IP地址和自己的MAC地址,意思是告诉大家,我是网关, 以后大家要有出局域网的数据都要发给我。这下好了。局域网所有的用户都得听他的了。网络执法官和P2P终结者就是这么干的。

      难道就没有解决办法吗?

      回答是有的。本地的ARP列表可以进行静态绑定。即我的列表里192.168.0.1的MAC固定为某个值,不允许改变。这样的话,只要把正确MAC地址 和网关IP绑定,就不怕自己的包再发给“中间的第三人”了。用ARP -A命令一看,网关地址果然不是原来的了,随即进行了静态绑定。120k/s,哈哈,网速又恢复了!这之后,只要一发现网速变慢,我就看看ARP列表网关 的MAC有没有被改变,变了我就绑定成静态的,绑定完就网速就好了。直到有一天……      一天回家上网,发现网速奇慢,先用P2P终结者看了看,没有人大量占用带宽。再看看ARP列表,网关的MAC地址是静态绑定的,而且MAC值也是对的, 咦,这是怎么回事?百思不得其解。后来在网上闲逛,发现ARP防火墙可能管用,就下了一个,装上一试,网速倒是没有完全恢复吧,但是也有50,60k了, 看来还管点用。当时一看不早了,就去洗脸准备睡觉。在洗脸的时候我就琢磨,突然来了灵感:是不是ARP欺骗者把网关记录的我机器的MAC地址也改了——改 成欺骗者的MAC地址了,这样我发出去的包是直接送到了网关,但网关接收到数据后,是首先发给欺骗者,再发给我的,这样接收数据的速度就会收到控制。回屋 后看ARP防火墙的监测,发现一秒钟发出五个ARP攻击数据——即告诉局域网中的其他机器网关的MAC地址是FAC2CC03FC(即攻击者本机的 MAC),并告诉网关网络中所有的机器的MAC也都是FAC2CC03FC,这样不仅往外发的数据会经过欺骗者,而且网关从外网接收到数据以后,也会先发 给欺骗者,再由他转发给实际的接收者(至于说他是否真的转发,就全由着他了)。索性的是我的ARP防火墙可以发广播数据,即告诉局域网中的机器(包括网 关)我的IP地址和真正对应的MAC地址。你不是一秒钟发5个ARP欺骗包吗?好,那我一秒钟发20个广播包,告诉大家(尤其是网关)我真正的MAC地址 是多少。在ARP防火墙中设置完后,一看网速,180k/s,爽!

      后记:      这样的反ARP欺骗方式有个缺点就是自己发广播包的速度一定要比欺骗者快,原理我想我已经说得很清楚了。这样就带来一个问题,如果欺骗者想得逞,就会加快 欺骗数据的发送速度,而被欺骗者如果想摆脱欺骗,就得以更快的速度发送“更正”数据,这样下来,两个人就开始比谁发送广播包的速度快了,结果局域网里到处 充斥广播包,对网速也会有影响,如果是多个人同时比赛看谁发发得快,OH MY GOD!      如果局域网中同时有人用ARP欺骗和BT下载的话,那怎么办的?那你就得用更快的速度发ARP欺骗包,从而占领整个网络的控制高地。当然,还是上面说的问 题,如果多个人同时竞争ARP包的发送速度,那……。就像美苏两个大国在搞军备竞赛,储备的核弹够把地球毁灭多少遍了,突然又冒出个国家来,声称他的核弹 比美苏的还多,这岂不是加倍让人提心吊胆吗?            当然管理BT下载用ARP欺骗的方法并不是个解决方法,最好的办法还是人来管。本文只是从技术的角度讨论一下ARP欺骗和反ARP欺骗的原理和应对。

猜你喜欢

转载自leekaixuan.iteye.com/blog/649148