1.交换机的工作原理
1.交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。
2.交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发。
3.如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)。
总结来说:交换机在工作时根据一个表(MAC地址表)转发数据,交换机的自学习机制,会将所有未知的Mac地址存入地址表中,且交换机的地址表 有上限。
2.攻击原理
攻击者向交换机发送大量不同Mac地址的无用的数据包,占满该交换机的MAC地址表,从而使得正常通信的设备向交换机发送的数据包找不到对应的Mac地址,向所有端口转发(泛洪),从而截取数据包
3.实验环境
ENSP+Kali Linux
ENSP实验拓扑:
交换机S5700
终端Client1 设置ip为:192.168.1.1
终端服务器 设置ip为:192.168.1.2
服务器信息配置
文件根目录随意选 ,记得启动
其他设备Cloud
添加UDP、VMnet1
入端口1 出端口2 双向通道 增加
其中两台终端设备模拟环境中正常的通信设备,Cloud用来连接Kali
测试链接
服务器ping 192.168.1.1 五次 成功5
内部已经连通啦,接下来链接kali
kali需要装macof工具(这里就不赘述啦)
kali配置:
还记得刚才在云那里设置的吗VMnet1,所以kali里也链接到VMnet1
kali里右键右边的小方块
编辑连接
手动连接——添加地址(192.168.1.3)子网掩码24 保存!
保存完之后左键这个小方块先断开再重新连接
kali中尝试ping刚才的服务器和终端
都ping通啦,接下来可以开始实验啦
回到ENSP中查看交换机的MAC地址表 display mac-address
还记的一开始的攻击原理吗,地址表中已经存在了终端服务器的MAC地址,此时进行攻击肯定是不成功的,所以要先 手动清空这个表,这也是MAC泛洪攻击的局限性。
ps:这个表不是永远存储,300s后会遗忘,好像叫老化还是啥,我忘了,反正意思就是300s不用地址就会被从地址表中删掉
书归正传,undo mac-address如果报错,就输入sy再输入undo mac-address
删除完了再查看一下
接下来最后一步!开始攻击!
先打开 wireshark选择eth0
然后再kali中输入macof开始攻击
接下来就是快速的弹出一堆代码啦
大约等10s的时间
我们可以在交换机中看一看我们攻击的效果
继续display
可以看到很多很多个Mac地址,都是kali发送的无用的地址
这个时候我们尝试登陆一下
呕吼,连接不上了
这个时候可以停止攻击了,毕竟一直在跑cpu,当然攻击时间一定要够,再尝试登陆,要是表没沾满就登陆就难受了哦
Ctrl+c 停止攻击
停止之后我们再登陆
登陆成功啦
为啥会登陆成功呢,因为交换机把登陆这个数据包复制发给了每一个地址,然后服务器接收到了,但我们的抓包软件也接收到啦,接下来打开抓包
右键TCP直接追踪TCP
姜姜!用户名密码被截取出来啦1和1
至此攻击就结束啦!