【Wireshark 系列】MAC 地址泛洪攻击分析

接下来我会开一个 Wireshark 网络分析的博文系列,主要借助华为的网络模拟工具 eNSP ,它可以接入真实的主机,为我们进行网络攻击提供了非常友好、非常纯洁的环境。
具体怎么连接可以自行查阅,或者可以在评论区留言,我可以单独再写一篇~ 😁


Wireshark

下面从数据链路层对交换机的攻击说起:

  1. 目前网络安全的问题有 80%来自于“内部网络”
  2. 链路层是内部网络通信最为重要的协议,而交换机正是这一层的典型设备
  3. 但是相比起其他网络设备来说,交换机的防护措施往往也是最差的,因此也经常成为黑客攻击的目标。

实验环境介绍

数据链路层的攻击

  • MAC 地址欺骗攻击(放到下期中间人攻击部分讲解)
  • MAC 地址泛洪攻击(本次讲解内容)⭐️
  • STP 操纵攻击
  • 广播风暴攻击

MAC 地址泛洪可能导致的情景

网络在之前一直可以正常运行,但是在前些天很多用户突然发现网络速度变得十分缓慢,经过我们的检查没有发现线路方面的问题。
但是我们发现每次重启交换机之后网络速度就会恢复。
而经过一段时间之后网络速度就会再次变得缓慢。

eNSP 交换机介绍

命令:查看 MAC 表

1
display mac-address

交换机 UDP 伪造源 MAC

(交换机不认 ip:port,目的和源 IP, port 可以随便写)
image-20200628230527919

eNSP 实现的功能比较简单,但是告诉了我们伪造不是一件难事;
而大批量地进行伪造是需要专门的工具的,所以我们后面会接入 kali,做攻击的模拟。

网络拓扑

网络拓扑 SwitchAttack:

image-20200628231643896

MAC 地址泛洪攻击

网络拓扑中,PC1, PC2 都用 DHCP 配置;ping 通之后,查看交换机的 mac table :
image-20200628230733652

Kali 执行 macof 进行 MAC 地址泛洪(可以多开几个终端执行泛洪),同时抓取交换机连接 kali 的端口的数据包。
image-20200628230750772

获取到泛洪攻击的数据包:SwitchAttack_attack.pcapng

接下来再看下交换机的 mac-address 表:
image-20200628230803774

可以看到交换机已经完全被 Eth0/0/3 的端口映射关系淹没,甚至已经没有 Eth0/0/1 和 Eth0/0/2 了,这将导致,PC1 和 PC2 基本不能进行正常的网络通信。

攻击分析

现实场景下是不了解自己的网络问题是否由 MAC 泛洪导致的,接下来我们将通过分析刚刚抓到的包,讲解 MAC 泛洪攻击的特点,以便我们自己在其他场景下判断、分辨 MAC 泛洪攻击。

初看

选项 - 统计 - 捕捉文件属性

image-20200628230822539

这个数据包很大,但是乍一眼可以看出来源 IP 和目的 IP 意外地多,且不属于用户主机的数据包:

另外,数据包长度还一样——很可能是软件生成的。
很容易想到,这些数据包是大量伪造的。

但是以上只是基本猜测,需要进一步分析。

Wireshark 统计分析

现在我们发现网络中出现了大量来历不明的数据包,可是到底出现了多少个数据包呢,这些数据包是否来自同一个源地址,或者发向同一个目的地址呢?如果手动地逐个计算的话,那么显然这是一个十分繁重的重复劳动。好在 Wireshark 中提供了极为强大的网络统计功能,利用这些功能我们可以对网络活动有一个宏观的了解。
选项 - 统计 - 会话:
image-20200628230934444

可以看到这里有基本上所有 IP 之间的报文只发了一次,这个是非常不正常的!至少一个以上,比如TCP 三次握手都需要一次通信。所以基本可以咬定,源 IP 和目的 IP 都是伪造的。
选项 - 统计 - 协议分析:

这个统计图是从 Frame 展开,到 Ethernet,再到 IP,再到传输层到应用层。
这里可以看出,大部分的集中在了 IPv4 协议。
但是正常情况下,TCP 和 UDP 应该是最多的,这里链路层协议占比很多,很可能是伪造的。
我们不妨看一下我随便捕捉的正常的数据包的情况:

UDP 报文和 TCP 报文占比比较重,这个是比较正常的情况。
现在,很肯定这是来自数据链路层的 MAC 泛洪。

找到攻击的源头

其实刚刚已经提到了,我们用 kali 进行 MAC 泛洪的时候,查看了交换机的 mac-address 表,发现 Eth0/0/3 对应了大量的 MAC 地址。也就是说如果我们有交换机控制权,就能查到 MAC 泛洪攻击的始作俑者。(连的接口是不能伪造的)

如何防御 MAC 地址泛洪攻击

非常简单,让一个端口只能对应特定个数 MAC,在华为交换机里的配置是这样的:

1
2
3
4
5
6
int eth0/0/3
port-security enable
port-security mac-address sticky
port-security protect-action protect
port-security mac-mac-num 8
disaplay mac-address
------ The end ------

本文标题:【Wireshark 系列】MAC 地址泛洪攻击分析

文章作者:Andy Wu

发布时间:2020年06月28日 - 23:06

最后更新:2020年12月18日 - 21:12

原始链接:https://zer0-nu1l.github.io/2020/06/28/%E3%80%90Wireshark%20%E7%B3%BB%E5%88%97%E3%80%91MAC%20%E5%9C%B0%E5%9D%80%E6%B3%9B%E6%B4%AA%E6%94%BB%E5%87%BB%E5%88%86%E6%9E%90/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。