现在的位置: 首页 > 综合 > 正文

交换机CAM表端口转发攻击–研究及实现

2013年10月01日 ⁄ 综合 ⁄ 共 3382字 ⁄ 字号 评论关闭

 

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

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

      废话说了不少,进入正题。

      起初对于这种攻击的发现是来源早期对ARP协议的学习与研究,在当时发现发送特定格式的ARP数据包会对网络造成一定影响,假如我是B机器,捕获到C机器发向AARP返回包,在B机器上使用SNIFFER PRO 捕获后,进行数据包重放,就是说B机器上发出了源MAC C机器的这样的数据包,交换机时收到这样连续不段的数据包时(发送的数量与攻击的效果有很大关系)C机器突然就与网络中的其他机器失去联系,网络中的其他机器也访问不到C机器,根据抓包发现C机器的数据包是能够发送出去的,只是没有收到回应包,问题出在那里?。

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

     我提供了小工具的下载地址,是为了方面不会用SNIFFER PRO的人用来做测试,坚决鄙视用来搞网络破坏的恐怖分子(因为你攻击我,我也没有很好的办法找到真正的攻击源头),希望大家一起发挥自己的想象,找到完美的解决方法,为我们安全爱好者增光添彩。
   
     
下载地址: http://211.154.169.179/antiswitch.rar
        
解压密码:antis   
        
服务器经常不太稳定,如有需求可以对我发送邮件索取
      
邮箱:zhihui13@gmail.com

                                                       作者:冯智慧
               
如有转帖请注明源作者,如用以上技术与工具做网络破坏造成后果与本人无关。

 
 

抱歉!评论已关闭.