分类: 系统运维
2013-06-18 11:13:32
大家看到这个题目可能感觉有点奇怪,网络安全圈里好像没有人定义过这种名词,起初我也不清楚该定义一个什么样的名词,我只是根据的原里定义这样的名词,如果那位有更好的建议为他来填上一个更响亮的名字,例如“熊猫烧香”等,天下皆知。
这种攻击方式不知有人研究过没,我在网上没有看到过,最近一段时间花费了点心思,把这种攻击技术稍微钻研了下,希望能对安全技术爱好者又提供一 个奠基石,但不希望大家用他来做网络破坏,因为后果很严重,网管很生气,因为他找不到攻击源,对于防护这种攻击目前没有很好的解决办法,所以大家三思而后 行。
废话说了不少,进入正题。
起初对于这种攻击的发现是来源早期对ARP协议的学习与研究,在当时发现发送特定格式的ARP包会对网络造成一定影响,假如我是B机器,捕 获到C机器发向A的ARP返回包,在B机器上使用SNIFFER PRO 捕获后,进行包重放,就是说B机器上发出了源MAC 为C机器的这样的数据包,时收到这样连续不段的数据包时(发送的数量与攻击的效果有很大关系)C机器突然就与网络中的其他机器失去联系,网络中的其 他机器也访问不到C机器,根据抓包发现C机器的数据包是能够发送出去的,只是没有收到回应包,问题出在那里?。
有想法的人肯定会想到数据包被交换机转发到B机器上来了,为了证实的 想法,在B机器上抓包发现,有很多数据包是其他IP对C机器的回应包。 很多人会不明白为什么会这样那。大家知道交换机和HUB的区别,交换机不对数据包进行广播,他工作的模式是:A机器--->B机器的数据包 C机器是接收不到的,应为交换机内部有转发列表(ACM), AMC表的作用是建立MAC地址与端口的对应关系,一个端口可以和很多MAC地址建立对应关系,(在802.1x下好像只能建立一个),这看上去没什么问 题,问题是出在ACM是实时动态更新的, 说到这里在看上面的问题就清楚了,原本C机器发送数据包到A没有问题,C机器的MAC在3口建立了临时的对应关系,A机器收到后如果再与C机器进行通讯, 交换机会把数据包直接转向了3口,他们之间的数据连接就会成功。
在B机器捕获到这个数据包时进行连续重放,刚才也说了是从B机器上发送源地址为C机器MAC的数据包,数据包通过交换机时会改变C机器MAC与 3口的对应关系,交换机发现这个数据包的源MAC地址是从交换机的2口发送,所以会建立C机器的MAC 与2号端口建立ACM表的对应关系,A机器再发向C机器的数据包,全被交换机转到2号端口B机器上面,所有就形成了C机器的断网现象,大家现在应该明白了 吧,上面是我自己的理解,可能有些地方解释的有问题,希望大家提出。
下面有人会说C机器也在不断的发包,也会改变ACM表上C机器MAC与2号端口的对应关系,上面我也说过,这就要看B机器的重放数据包的数量 了,经过我测试发现在B机器重放每秒500-1000个数据包的同时,C机器应经与机器不能通讯或通讯非常非常的慢,有意思的是在C机器上能PING 的通其他机器,这让C机器挺郁闷吧,而且C机器收不到任何攻击数据包,应为是C对应A机器的数据包,没有进行广播,如数据包的数量在1万左右,C机器收不 到任何信息。
你又会说为什么不进行数据包广播那,应为数据包进行广播的话,对交换机影响很大,会对其他机器造成影响,而且容易让别人发现这种数据包,(虽然 他不查看交换机MAC表是找不到你,但是就怕他看),如果你网络很大,广播对你自己利用说也会造成影响,所以我们要把数据包做成定向发送,找个傀儡机喽, 在上面A就是我们的傀儡机了,假如还有D机器的话,在D机器上抓包是发现不了这种攻击的,是不是很可怕,下面还有更可怕的那,大家又要开动脑筋了,既然可 以对单台机器发动攻击,也可以对网关发动攻击,对网关发送攻击会出现什么后果那,就是大家都不能和网关进行通讯,网络全部断掉(包括你自己),前提只需在 B机器上发送源地址为网关的数据包。我们已经说了广播包是最不可取的,那我们就要找个傀儡机器,还找机器A吗,不行啦,因为是定向包B机器和A机器在同一 交换机上面,所能更改的也只是这台交换机的ACM表,也只是对这个交换机的下面的机器有影响,我们怎么突破范围那,上面说了广播可以,但是又是最不可行的 方法,怎么办?,放心,聪明人总会有办法的,在这个时候傀儡机器的作用显现出来了,用专业术语说下,从B机器发送源地址为网关MAC的数据包,它所经过的 交换机都会被更改与网关ACM的对应关系,也就是说傀儡机有多远我们攻击的交换机就有多远,所以说选择傀儡机所在网络拓扑的位置很重要,他决定了我们攻击 交换机的范围。如果我想让全网掉线的话,我会选择主干交换下面的机器做傀儡机器,是不是我很坏。
大家都看懂了吧,也可能会说这种攻击很完美了,我反对,因为大家想,这种攻击如只局限于ARP协议是很容易被封杀的,因为测试过程中这种攻击很多ARP防火墙是不允许的,然后我只好在想办法啦,大家又要动脑筋了。
聪明的姐妹们很快想出来了吧(我是男同胞)。
我们在回到原理上,是数据包的那个部分对交换机ACM造成影响,是DLC链路层,在数据包中的头十四个字节,这十四个字节包含了数据的源MAC 地址6个字节,目的MAC地址6个字节 协议类型2个字节。我们想一想还有什么数据包包含这十四个字节那,很多啦例如有TCP /UDP /ICMP等,我们马上操刀开练,在B机器上发送源地址为C机器MAC的UDP数据包,发送到A机器,哈哈,TCP/ICMP等效果一样,后来发现高兴的 太早了,彩影和巡路做的ARP防火墙还是会针对IP欺骗做过滤,我痛苦啊,我郁闷啊,我绝望啊,我挠头啊,我挠……,哈哈挠出办法来了,终于想出办法突破 ARP防火墙了,从原理上看他们是用NDIS技术做了TCP/IP协议的过滤,我们来试下IPX 协议还有其他的协议只要带头十四个字节就OK ,马上操刀……过程省略,结果很完美,完全突破了防火墙的限制,而且可以达到我们的预期效果。
好像我可以睡觉了,又有人说了你搞了这么多原理就把我们搞迷糊了,你还让我们做测试的时候先学下SNIFFER PRO怎么用,然后在填充几十到上百字节的数据包吗,到时候黄花菜都凉了。
我只好再想想办法了,我又想既然大家都知道了是利用头十四个字节,协议类型随便,可以随便填,搞些不存在的协议类型,把防火墙的作者搞毛了,看 看让他怎么来定义过滤,怎么实现那,我们这样设想,发送一个数据包只要可以改动头十四个字节,其他全部填充为0,这样利用SNIFFER PRO编辑方便多了吧,但是我好人做到底吧,由于本人编程技术起步晚技术不佳,在网上下了个TCP SYN的数据包,做了些改动来完成我们的目的,让它只发送数据包大小为54,头14字节可以随便改动,其他为0的小工具,我没有限制发送数量,最大能力 发,我粗略计算每秒1万多吧,大家用起来还是小心为好。