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

 

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

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

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

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

     
有想法的人肯定会想到数据包被交换机转发到 B 机器上来了,为了证实我们的想法,在 B 机器上抓包发现,有很多数据包是其他 IP C 机器的回应包。很多人会不明白为什么会这样那。大家知道交换机和 HUB 的区别,交换机不对数据包进行广播,他工作的模式是: A 机器 --->B 机器的数据包  C 机器是接收不到的,应为交换机内部有转发列表( CAM , AMC 表的作用是建立 MAC 地址与端口的对应关系,一个端口可以和很多 MAC 地址建立对应关系,(在 802.1x 下好像只能建立一个),这看上去没什么问题,问题是出在 CAM 是实时动态更新的,  说到这里在看上面的问题就清楚了,原本 C 机器发送数据包到 A 没有问题, C 机器的 MAC 3 口建立了临时的对应关系, A 机器收到后如果再与 C 机器进行通讯,交换机会把数据包直接转向了 3 口,他们之间的数据连接就会成功。
B 机器捕获到这个数据包时进行连续重放,刚才也说了是从 B 机器上发送源地址为 C 机器 MAC 的数据包,数据包通过交换机时会改变 C 机器 MAC 3 口的对应关系,交换机发现这个数据包的源 MAC 地址是从交换机的 2 口发送,所以会建立 C 机器的 MAC  2 号端口建立 CAM 表的对应关系, A 机器再发向 C 机器的数据包,全被交换机转到 2 号端口 B 机器上面,所有就形成了 C 机器的断网现象,大家现在应该明白了吧,上面是我自己的理解,可能有些地方解释的有问题,希望大家提出。
      
下面有人会说 C 机器也在不断的发包,也会改变 CAM 表上 C 机器 MAC 2 号端口的对应关系,上面我也说过,这就要看 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 机器 MAC UDP 数据包,发送到 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   
        
服务器经常不太稳定,如有需求可以对我发送邮件索取
      
邮箱: [email protected]

                                                       
作者:冯智慧
               
如有转帖请注明源作者,如用以上技术与工具做网络破坏造成后果与本人无关。
 
该帖包含附件 :http://dl2.csdn.net/down4/20080416/16134504160.rar
 

你可能感兴趣的:(闲言杂语)