前言

无论是arp欺骗还是mac泛洪,其实目的是差不多的,都是为了盗取信息。

arp欺骗和mac泛洪其实都是利用了arp的缺陷。

利用arp欺骗可以使得通信的双方正常通信,但是数据全都被欺骗拿取一份,通信双方是没有感觉的。

利用mac地址泛洪可以把交换机的mac地址表的空间给“撑破”,逼迫交换机进行的arp广播,取代被欺骗者的mac地址,使之数据全都流向欺骗者,此时被欺骗者会掉线。

二层的缺陷

  1. 缺乏认证,不知道源地址是否合法

  2. 采用广播,任何人都可以拦截

  3. 不得不处理,这是硬伤啊!

二层的安全是整个tcp/ip协议集的一个短板。

泛洪步骤

mac地址欺骗是利用交换机的接口从源报文当中学习mac地址表并持续写入mac表的特点,通过macof发送大量的、具有不同源mac地址的广播报文,使mac表的空间耗尽,耗尽之后正常的报文进行通信时交换机会发广播,为什么会广播?因为mac表没有对应的mac地址?如果之前这些mac都存在的话,那么这些mac去哪里了?答案是被新来的mac地址表给“挤出去了”,mac地址表当前中充斥着满满的无用的、垃圾的mac地址条目,所以新来的正常的通信报文到达交换机之后,发现mac地址表没有对应的去向目标mac地址的mac地址,所以交换机会去泛洪,泛洪的内容就是“谁是某某,把你的mac给我”,早已等候多时的×××已经早早的打开了抓包软件一看到有目标回复自己的mac地址,如果个目标就是×××想要×××的目标,×××就会把自己的mac地址改成与目标主机的mac一样,并且不断的欺骗交换机我才是目标主机,这样的话给目标主机的报文都送给×××了。

所以mac地址泛洪应该分为三个步骤:

第一步:通过泛洪把交换机的mac表充满,使交换机在合法通信时不得不泛洪

第二步:打开抓包工具抓取合法的计算机回复自己的mac地址

第三步:把自己的mac地址变成抓取到的mac地址

mac 地址的泛洪工具:

macof –i eth0  #给交换机发广播报文,源地址都不相同。

交换机会发生什么现象?一点的话会运行卡顿,如果有合法的用户请求转发数据的话会发广播,这样正中了×××的圈套,情况严重的话就直接死机,一般为讲×××使用mac泛洪就是为了截获数据,一般不会一直给交接机发广播,如果我们发现交换机运行非常的卡顿,就使用下面这条命令:

show mac-address-table count  统计mac地址表记录了多少条记录以及还有多少空间可用,如下图:

image.png

如果出现这种现象把所有的与pc相连的线都拨了,然后使用下面这条命令清空动态学习到的地址:

clear mac-address-tables dynamic

在泛洪×××之后,×××截取了目标的主机的mac地址之后,会放弃自己的主机的的mac地址,再次生成一个目标主机的mac地址,然后不断的发广播说自己目标主机,交换机原本记录的此mac地址并不是在×××主机对应的端口上,但是此时×××给交换机说自己就是目标主机,交换机默认没有能力判断到底谁是真?谁是假?天真的认为最新就是正确的,所以×××说什么就是什么了,以后只要是给目标主机的报文就都给×××了,而真正的mac地址拥有者就一直收不到报文。

×××欺骗的话就会一直欺骗,以保证交换机一直认为×××就是目标主机,如果目标主机正在下载或者上传东西的话,目标主机的mac就会一直在×××与真正的目标主机之后来回的变化,无论是×××还是真正的目标主机可能都不是那么的完整。

欺骗×××要建立在泛洪×××的基础之上,先把交换机变成hub,然后好捕获所有的数据包,最后根据捕获数据包的内容去获取目标主机的mac地址,然后把自己的mac地址改成了目标MAC一模一样的地址,这样交换机的mac表会更新,所有到目标主机的数据都会到我这里。

增加一个mac地址并使用:

macchanger  --mac=00:00:00:00:00:00 eth0