还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
MAC地址欺骗的原理和实战介绍1一.MAC地址欺骗的原理和实战介绍
一、原理在开始之前我们先简单了解一下交换机转发过程交换机的一个端口收到一个数据帧时:首先检查改数据帧的FI的MAC地址在MAC地址表(CAM)对应的端口,假如目的端口与源端口不为同一个端口,那末把帧从目的端口转发出去,同时更新MAC地址表中源端口与源MAC的对应关系;假如目的端口与源端口相同,那末丢弃该帧有如下的工作场景一个4口的switch端口分别为Port.A、Port.B^Port.C^Port.D对应主机ABCD其中D为网关当主机A向B发送数据时,A主机按照OSI往下封装数据帧,过程中,会根据IP地址查找到B主机的MAC地址,填充到数据帧中的目的MAC地址发送之前网卡的MAC层协议控制电路也会先做个判断,假如目的MAC相同于本网卡的MAC那末不会发送,反之网卡将这份数据发送出去PortA接收到数据帧,交换机按照上述的检查过程,在MAC地址表发现B的MAC地址(数据帧目的MAC)所在端口号为Port.B而数据来源的端口号为Port.A那末交换机将数据帧从端口Port.B转发出去B主机就收到这个数据帧了这个寻址过程也可以概括为IP;MAC;PORTARP欺骗是欺骗了IP/MAC的应关系,而MAC欺骗那末是欺骗了MAC/PORT的对应关系比较早的攻击方法是泛洪交换机的MAC地址,这样确实会使交换机以广播模式工作从而达到嗅探的目的,但是会造成交换机负载过大,网络缓慢和丢包甚至瘫痪,我们不采用这种方法
二、实战工作环境为上述的4口swith软件以cncert的hijack为例,应用为A主机劫持C主机的数据以下是劫持过程(da为目的MACsa为源MAC)A发送任意da二网关.mac、sa二B.mac的数据包到网关这样就说明b.mac对应的是poil.a在一段时间内,交换机会把发往b.mac的数据帧全部发到a主机这个时间一直持续到b主机发送一个数据包,或者此外一个(1@=网关.01@:、sa=b.mac的数据包产生前A主机收到网关发给B的数据,记录或者修改之后要转发给B在转发前要学海无涯,书山有路发送一个恳求B.MAC的广播,这个包是正常的MAC信息为da二FFFFFFFFFF、sa=a.mac这个数据帧说明了a.mac对应port.a同时会激发b主机响应一个应答包MAC信息为da=a.mac、sa=b.mac这个数据帧说明了b.mac对应port.b至此,对应关系已经恢复,A主机将劫持到的数据可顺利转发至B转发劫持到的数据到B完成一次劫持
三、攻击特点.由于这种攻击方法具有时间分段特性,所以对方的流量越大,动持频率也越低,网络越稳定.隐蔽性强,基于1的特殊性和工作本质,可以在ARP防火墙和双向绑定的环境中工作
四、如何防护高级的交换机可以采用ip+mac+port绑定,控制CAM表的自动学习目前尚无软件可以防护此类攻击
五、利用工具
1.hijackbeta2说明会话劫持
2.ssclone说明交换环境下的会话复制软件gmailqqmailsohumail
3.skiHer说明流量控制二.前不少网络都使用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两个端口PortCInternetCisco2912portA/portB/HubHubPcAPcB假定PcA的MAC的地址是PcB的MAC的地址是在正常的情况下,Cisco2912里会保存如下的一对映射关系OO.OO.AA.AA.AA.AA—portAOO.OO.BB.BB.BB.BB—portB—portC根据这个映射关系,Cisco2912把从PortC上收到的发给PcA的包通过PortA发出,而不会从PortB发出但是假如我们通过某种手段使交换机改变了这个映射关系,那么Cisco2912就会将数据包转发到不应该去的端口,导致用户无法正常访问Internet等服务最为简单的一种方法就是用户PcB构造一种数据包,该包的源MAC地址再也不是自己的MAC地址OO.X.BB.BB.BB.BB而是PcA的MAC地址OO.OO.AA.AA.AA.AA从上面的地址学习过程可以看出,Cisco2912就会错误的认为MAC地址是从portB上来的,因此映射关系也就改为OO.OO.AA.AA.AA.AA一portBOO.OO.BB.BB.BB.BB—portB这样,Cisco2912就会错误地把从PortC上收到的目的地址为MACA的数据包通过RMB发出,而不再发给PorlA.显然,假如PcB向来在发这种特意构造的包用户PcA就无法通过Cisco2912正常访问Internet更为严重的是,假如用户PcB构造portC上联设备如路由器的MAC地址那末会导致Cisco2912下面所有的用户无法正常访问Internet等业务这太简单了,对付MAC地址欺骗,其实就是对局域网ARP保护就可以了每台主机都有一个暂时存放IP-MAC的对应表ARP攻击就通过更改这个缓存来达到欺骗的目的,使用静态的ARP来绑定正确的MAC是一个有效的方法.在命令行下使用arp-a可以查看当前的ARP缓存表.以下是本机的ARP表C:\DocumentsandSettings\cnqingarp-aInterface:
192.
168.
0.1onInterfacexl3InternetAddressPhysicalAddressType
192.
168.
0.100-03-6b-7f-ed-02dynamic其中代表动态缓存,即收到一个相关ARP包就会修改这项.假如是个非法的含有不正确的网关的ARP包,这个表就会自动更改.这样我们就不能找到正确的网关MAC就不能正常和其他主机通信.静态表的建立用ARP-SIPMAC.执行arp-s
192.
168.
0.100-3-6b-7f-ed-02后我们再次查看ARP缓存表.C:\DocumentsandSettings\cnqingarp-aInterface:
192.
168.
0.1onInterface0x1000003InternetAddressPhysicalAddressType
192.
168.
0.10-03-6b-7f-ed-02static此时TYPE项变成为了static静态类型.这个状态下,是不会在接受到ARP包时改变本地缓存的.从而有效的防止ARP攻击.静态的ARP条目在每次重启后都要消失需要重新设置.此时我们就可以自己写一个批处理文件,文件内容如下@echooffarp-darp-s
192.
168.
0.100-03-6b-7f-ed-02写好之后我们把它存储为raip.bat再把此文件放到开始菜单-程序-启动栏,这样每次启动机器时,就自动执行此批处理文件菜单一程序■启动栏默认目录C:\DocumentsandSettings\AllUsers\「开始」菜单程序\启动第二种方法就是直接使用防止局域网Arp攻击的软件比如说Aip保护神等等交换机如何获得mac地址交换机工作在数据链接层,当一台主机发送数据时,交换机会收到MAC帧,我包含发送主机的MAC地址和接收主机的地址,交换机收到这个帧后,会把这个发送主机的MAC地址记录在自己的MAC表中,并记下这个发送主机对应的端口号之后交换机会查看自己MAC表看有没得接收主机的记录,假如有就直接发到对应的端口,假如没有就广播出去交换机的工作原理中,交换机之间的MAC地址学习室通过端口泛洪的方式以太网交换机厂商根据市场需求,推出了三层甚至四层交换机,但无论如何,其核心功能仍是二层的以太网数据包交换,这样将大大进步交换机的处理速率交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立暂时的交换路径,使数据帧直接由源地址到达目的地址.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发.如数据帧中的目的MAC地址不在MAC地址表中,那末向所有端口转发这一过程称为泛洪(flood).广播帧和组播帧向所有的端口转发以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起有如下的工作场景一个4口的switch端口分别为Port.A、Port.B、Port.C、Port.D对应主机ABCD其中D为网关当主机A向B发送数据时,A主机按照OSI往下封装数据帧,过程中,会根据IP地址查找到B主机的MAC地址,填充到数据帧中的F1的MAC地址发送之前网卡的MAC层协议控制电路也会先做个判断,假如目的MAC相同于本网卡的MAC那末不会发送,反之网卡将这份数据发送出去Port.A接收到数据帧,交换机按照上述的检查过程,在MAC地址表发现B的MAC地址(数据帧目的MAC)所在端口号为Port.B而数据这个寻址过程也可以概括为IP;MAC;PORTARP欺骗是欺骗了IP/MAC的应关系,而MAC欺骗那末是欺骗了MAC/PORT的对应关系比较早的攻击方法是泛洪交换机的MAC地址,这样确实会使交换机以广播模式工作从而达到嗅探的目的,但是会造成交换机负载过大,网络缓慢和丢包甚至瘫痪,我们不采用这种方法工作环境为上述的4口swith软件以cncert的hijack为例,应用为A主机劫持C主机的数据以下是劫持过程(da为目的MACsa为源MAC)这样就说明b.mac对应的是port.a在一段时间内,交换机会把发往b.mac的数据帧全部发到a主机这个时间向来持续到b主机发送一个数据包,或者此外一个da二网关.mac、sa=b.mac的数据包产生前由于这种攻击方法具有时间分段特性,所以对方的流量越大,劫持频率也越低,网络越稳定隐蔽性强,基于1的特殊性和工作木质,可以在ARP防火墙和双向绑定的环境中工作高级的以太网交换机可以采用ip+mac+port绑定,控制CAM表的自动学习目前尚无软件可以防护此类攻击三.交换机端口安全之Mac泛洪攻击我们都知道,组建我们的网络,交换机是必不可少的一个设备,我们都会用它来做一些相应的配置,如戈IJ分VLAN、VTP、以及生成内的端口安全呢?这是一个必要的操作那末下面我们就使用CiscoPacketTracer
5.2来做做这方面的实验,但是还是有一些不我们知道交换机在网络中存在规模最大,通过这个图我们得出一个结论那就是离接入层越近风险越大,所以问题主要集中在接入层那末下来我们就来分析一下这个交换机倒底存在那些安全呢?交换机所面临攻击的层面MAClayerattacksVLANattacksSpoofingattacksAttacksonswitchdevices那末我们知道了交换机所面临这四种攻击,我们如今来一个一个的分析一下这些MacFloodingAttack:利用伪造数据帧或者数据包软件,不停变化源MAC地址向外发包,让有限的MAC地址表空间无法包容进而破坏MAC地址表应对限定端口映射的MAC数量在这里三台PC的IP地址如下以下我们在交换机上面配置MAC地址绑定那现我们来测试一下看看能否正常使用从这里我们可以看见,PCO能够正常使用那我们再新添加一台PC并将这台PC接到FA0/1端口上面看看会是什么效果从这个图我们可以看见,PC3接在FA0/1接口上面,当PC3没有向其它网段发送数据包的时候一切正常,那末下面我们来发送一个个MAC地址,所以就执行将此接口shutdown掉,从上图我们也可以看见,PC3连接的FA0/1已经被shutdown了我们可以看出来,当交换机的FA0/1接口接PC0的时候,能够正常使用,但是当我的PC3接入到交换机的FA0/1上,当我发送数据那末当有其它MAC地址的计算机接入一我们这个端口以后,该端口会自动shutdown那末当shutdown以后的接口如何恢夏呢?注意以下来条命令不能在CiscoPacketTracer
5.2中使用,这个软件里面如今还没有集成这几条命令这种方法只能对付下挂交换机的情况,不能对付下挂路由器的情况假如产生err-disable的原因是udld下面有一条命令非常管用搜集这些日志也非常管用所以建议配置一个syslogserver搜集log信息刚才在上面我们绑定的那个MAC地址是PC0的,我们如今查看一下交换机上面的MAC地址表看看但是针对CiscoPacketTracer
5.2来说,我们不能直接使用noshutdown命令来启用,也不能使用我们上面的那条命令,那末我址接入到此端口的时候我们就将它设置不不转发数据并且上报网管平台从上面我们可以看见,当设置为数据包不转发以后,我们从PC3上面还是ping不通我们的PC2而我们的交换机只是不转发此数据包那末我们又浮现一个新的问题?我们不可能一个端口只绑定一个MAC地址吧!那末我们如何给一个端口绑定多个MAC地址通行呢?但是这个设置手工绑定多条MAC地址的命令在这里没有,所以这个也不能使用它将接入到此端口的MAC地址自动绑定到这个MAC地址中呢?但是在这里假如我设置了maximum设置为100的话,那末不是我们手工需要绑定100条?而且我们还需要去搜集这100个MAC地址那末我们再来试试看呢?我们使用接入到交换机端口FA0/2这个接口的计算机发送一点数据包来看看如今来在交换机上面来查看一下MAC地址表这个表是没有发达数据包之前的我们可以看见还是动态学习到的而下面的是我们命令了动态学习的到第一台通过这个端口发送数据包的那台计算机的MAC地址而自动变成静态绑定的看看,这样是不是就解决了我们手工去绑定MAC地址那些烦琐的事件了这样是不是给我们减轻了很大的工作量下面这条命令是查看端口安全的,以及每一个端口从上面我们可以看出FA0/1端口有3条违背我们策略的指行的是Restricto而FaO/2没有违背我们的策略,假如说现有呢就执以上就是我们基于MAC地址的限制我想这个功能对于大家在实际工程中应用的还是比较广泛我们用来做端口安全的还有一种方而这里使用这个软件不能做基于交换机的
802.lx认证那末那天用到真机以后我再将这方面的内容发送出来!这里只是解决了MacFloodingAttack如今由于时间太晚了剩下的明天继续
2.MAC地址泛洪攻击12层交换机是基于MAC地址去转发数据帧的2转发过程中依靠对CAM表的查询来确定正确的转发接口一旦在查询过程中无法找到相关目的MAC对应的条目,此数据帧将作为广播帧来处理CAM表的容量有限,只能储存不多的条目,当CAM表记录的MAC地址达到上限后,新的条目将不会添加到CAM表中基于以上原理,我们会发现一个非常有趣的现象某台PC不断发送去往未知目的地的数据帧,且每一个包的源MAC地址都不同,当这样的数据包发送的速度足够快之后,快到在刷新时间内将交换机的CAM表迅速填满CAM表被这些伪造的MAC地址占领,真正的MAC地址条目却无法进入CAM表那末任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理如下列图所示上传的图象。