来自幻影论坛《号称可以过任何arp防护的测试软件》的分析

在邮件组里收到幻影的
Skiller Ph4nt 0m | Google 网上论坛发布了一个号称可以过任何 arp 防火墙的测试软件。
[url]http://groups.google.com/group/ph4nt0m/browse_thread/thread/62ef34de7d39d14b[/url]
简单的说,不管是被害主机做的ip-mac绑定还是有arp防护,或者网关做的绑定,这个通过发送udp包的软件还是能做任意的欺骗。
首先来看看这个著名的东东,是个测试版。
OK,如上很好很强大的软件用法就不多说了,这样用的结果就是图中填写的受害主机.22不能上网了。
我们的.1网关做的mac绑定,这个.22也有绑定和arp防火墙。
=============================非常贱的分割线============================
先来理清拓扑。
很easy的拓扑,一台二层交换机带着两台机子通过一个路由上网。
现在邪恶的.31用这个程序快速发送一些数据包,搞得.22不能上网了。
现在我们有两个疑问:
1、这个程序确实只发送了UDP的报文。没有发送arp,如何达到"arp欺骗"的效果的。
2、.22有arp防火墙,不能被修改;.1网关也是绑定mac的。又是如何达到不能上网的呢?
=============================还是非常贱的分割线============================
在下愚钝,分析这个问题被误导的走了些弯路,但是过程中有很多长进。如下:
(分析过程中很多图没截,见谅)
首先看数据,.31上这个软件发送的数据是UDP的。观察UDP的数据,源IP和MAC变成了.22的,目的IP和MAC变成.1网关的了,其他没有特别的地方,只不过校验都通不过而已,这个不影响,arp是二层的。看来这里不是问题的关键。
其次看.1,在路由器上刷arp缓存看变化,在攻击时,.22的绑定是正确的,没有变化,说明问题也不在.1上。
我们吧目光移到了.254那个二层交换机上。
查一下mac表,.22的mac2由ETH2移到了ETH1,也就是交换机现在认为.22接在ETH1(也就是.31)上而不是正常的ETH2上了。看来原因就在于此。
那么疑问很明确了,UDP数据包究竟是如何让交换机修改了MAC地址呢?
=============================依旧非常贱的分割线============================
经过一番无厘头的混乱思考后,慢慢有点思路。
首先.1没有发生变化,而软件有个选项是填了.1,那么这个程序究竟有没有对.1发生作用?
我们吧.1也就是网关的位置随便填写IP,他启动的时候会报MAC不正确。
好吧,我们随便填一个在子网中存在但是不是.1的IP,攻击的效果同样达到了,也就是这个目的地址是唬人的。
其存在的目的是构成一个正常的UDP报文。
其次,UDP是不是和ARP有关系?换句话说,大量的小UDP数据报是不是会导致ARP反应呢?
查询相关资料没有证据证明会发生这样的情况,况且四层的东西怎么引发二层的变化??
我们在.31上做了实验,在静态绑定了.22的IP-MAC的情况下,攻击依旧发生了。
也就是不是依靠.31发出的ARP影响.22造成的。
第三,观察到一个现象,攻击启动时,马上产生效果,攻击停止后,效果马上消失,这不符合ARP出现问题时的特点,因为ARP有缓存时间,再短,也不会马上消失,况且设备的缓存时间高达数小时之久。同时,在攻击持续过程中, ping .22的地址获得的竟然是正确的MAC!!
以上几点基本可以肯定一个问题,这个攻击方式和ARP毫无关系。
=============================依旧非常贱的分割线============================
我们做如下结论:
1、该攻击方式不是ARP欺骗,也没有任何和ARP及其上层有关任何协议的东西。
2、该软件导致了交换机的错误,没有对网关产生任何影响。
3、该软件有效的部分只是发送数据包中的源IP和MAC地址,其他参数在软件使用中之所以要填只是为了顺利的构造一个有效的UDP报文。
4、 最关键的原因:软件快速发送大量UDP报文使得交换机将该源MAC(也就是.22的MAC)当作接在了ETH1上,交换机在每个port上都要维护该port所接任何网络产品的MAC(否则怎么做二层交换呢?)。在ETH1收到MAC2的数据高于ETH2收到MAC2的情况下,交换机彻底沦陷了,他吧MAC2认为是接在ETH1上的。这个过程是和交换机设计的物理概念,和任何协议以及层次都毫无关系,只要他还有交换,还是个正常工作的设备,都会这么做的!
5、 因此,这个软件只是个幌子,是不是UDP,要不要目的地址,有没有网关,理论上都没有关系。UDP只是为了不建立握手,可以快速发射!只要不断的"告诉"交换机"我,.22也就是MAC2"在ETH1上,接在ETH2上的真实的.22就永远也不能上网,因为他在交换机的MAC表里已经消失了,这个问题产生的原因,是因为世界范围内理论上不可能存在两个一摸一样的MAC地址。所以,要么在这个端口,要么在那个端口。就看谁快!
=============================肯定非常贱的分割线============================
有次分析,我们可以得出如下邪恶用途:
1、任何网络不管是用了何种安全防范,不管是ARP绑定还是MAC绑定还是ARP防火墙,只要 不是MAC-PORT静态绑定,就可以用这种方式实现所谓的"欺骗",甚至,你聊QQ(QQ默认用UDP传送消息),然后将自己的MAC改成自己想搞的人的MAC,最后用非常快的数据发送聊天信息,你一样可以"抢过"那个人的上网权,同时还不影响你自己的MAC在交换机上的正常表现。
2、你将自己的MAC改成别人的MAC,然后改自己的IP为那个人的IP,你不用担心会出现IP冲突,因为你已经是他了,而且你可以和他一起上网,只不过速度会有影响,有点不稳定而已。至于为什么?呵呵,如果你仔细看到这里,应该已经明白了。
说到底,这就是用了一个正常功能的不正常实现而已。

你可能感兴趣的:(软件,ARP,防护,论坛,休闲)