浅述交换机ACM表端口转发攻击

xuezhengyyy 2010-03-12

大家看到这个题目可能感觉有点奇怪,网络安全圈里好像没有人定义过这种名词,起初我也不清楚该定义一个什么样的名词,我只是根据攻击的原里定义这样的名词,如果那位有更好的建议为他来填上一个更响亮的名字,例如“熊猫烧香”等,天下皆知。

这种攻击方式不知有人研究过没,我在网上没有看到过,最近一段时间花费了点心思,把这种攻击技术稍微钻研了下,希望能对安全技术爱好者又提供一个奠基石,但不希望大家用他来做网络破坏,因为后果很严重,网管很生气,因为他找不到攻击源,对于防护这种攻击目前没有很好的解决办法,所以大家三思而后行。

废话说了不少,进入正题。起初对于这种攻击的发现是来源早期对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个字节。

相关推荐

ganyouxianjava / 0评论 2012-05-31