谈交换网络中的MAC地址欺骗-应用技巧

王朝数码·作者佚名  2010-08-31
窄屏简体版  字體:   |    |    |  超大  

1 MAC地址欺骗

目前很多网络都使用Hub进行连接的,众所周知,数据包经过Hub传输到其他网段时,Hub只是简单地把数据包复制到其他端口。因此,对于利用Hub组成的网络来说,没有安全而言,数据包很容易被用户拦截分析并实施网络攻击(MAC地址欺骗、IP地址欺骗及更高层面的信息骗取等)。为了防止这种数据包的无限扩散,人们越来越倾向于运用交换机来构建网络,交换机具有MAC地址学习功能,能够通过VLAN等技术将用户之间相互隔离,从而保证一定的网络安全性。

交换机队于某个目的MAC地址明确的单址包不会像Hub那样将该单址包简单复制到其他端口上,而是只发到起对应的特定的端口上。如同一般的计算机需要维持一张ARP高速缓冲表一样,每台交换机里面也需要维持一张MAC地址(有时是MAC地址和VLAN)与端口映射关系的缓冲表,称为地址表,正是依靠这张表,交换机才能将数据包发到对应端口。

地址表一般是交换机通过学习构造出来的。学习过程如下:

(1) 交换机取出每个数据包的源MAC地址,通过算法找到相应的位置,如果是新地址,则创建地址表项,填写相应的端口信息、生命周期时间等;

(2) 如果此地址已经存在,并且对应端口号也相同,则刷新生命周期时间;

(3) 如果此地址已经存在,但对应端口号不同,一般会改写端口号,刷新生命周期时间;

(4) 如果某个地址项在生命周期时间内没有被刷新,则将被老化删除。

如同ARP缓冲表存在地址欺骗的问题,交换机里的这种MAC地址表也存在地址欺骗问题。在实际应用中,人们已经发现早期设计的许多交换机都存在这个问题,以Cisco2912交换机为例,阐明一下如何进行MAC地址欺骗。

如图所示,两个用户PcA和PcB分别连接Cisco2912的portA和portB两个端口。

PortC 00.00.CC.CC.CC.CC Internet

Cisco2912

portA / portB

/

Hub Hub

PcA PcB

00.00.AA.AA.AA.AA 00.00.BB.BB.BB.BB

假定PcA的MAC的地址是00.00.AA.AA.AA.AA

PcB的MAC的地址是00.00.BB.BB.BB.BB

在正常的情况下,Cisco2912里会保存如下的一对映射关系:

(00.00.AA.AA.AA.AA)portA

(00.00.BB.BB.BB.BB) portB

(00.00.CC.CC.CC.CC) portC

依据这个映射关系,Cisco2912把从PortC上收到的发给PcA的包通过PortA发出,而不会从PortB发出。但是如果我们通过某种手段使交换机改变了这个映射关系,则Cisco2912就会将数据包转发到不应该去的端口,导致用户无法正常访问Internet等服务。最为简单的一种方法就是用户PcB构造一种数据包,该包的源MAC地址不再是自己的MAC地址00.00.BB.BB.BB.BB,而是PcA的MAC地址00.00.AA.AA.AA.AA,从上面的地址学习过程可以看出,Cisco2912就会错误的认为MAC地址00.00.AA.AA.AA.AA是从portB上来的,因此映射关系也就改为:

(00.00.AA.AA.AA.AA)portB

(00.00.BB.BB.BB.BB) portB

这样,Cisco2912就会错误地把从PortC上收到的目的地址为MAC A的数据包通过PortB发出,而不再发给PortA.。显然,如果PcB一直在发这种特意构造的包。用户PcA就无法通过Cisco2912正常访问Internet。更为严重的是,如果用户PcB构造portC上联设备(如路由器)的MAC地址(00.00.CC.CC.CC.CC),则会导致Cisco 2912下面所有的用户无法正常访问Internet等业务。

第一頁    上一頁    第1頁/共2頁    下一頁    最後頁
第01頁 第02頁 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航