文章目录

  • 0x01 环境搭建
  • 0x02 mac地址泛洪攻击
  • 0x03 MAC泛洪攻击的防御


0x01 环境搭建

整个环境如图所示

wireshark链路层分析 wireshark数据链路层_mac地址


设备及型号

路由器:AR1220
交换机:S3700
VMware虚拟机:kali2020
连线:auto
PC2
Cloud
1

PC1和PC2都使用dhcp配置网络

wireshark链路层分析 wireshark数据链路层_VMware_02


交换机不需要配置云的配置

wireshark链路层分析 wireshark数据链路层_泛洪_03


这里我选择的VMware的nat模式对应的网卡

wireshark链路层分析 wireshark数据链路层_VMware_04

wireshark链路层分析 wireshark数据链路层_mac地址_05

wireshark链路层分析 wireshark数据链路层_mac地址_06

好了,现在虚拟的PC和VMware虚拟机都配置好了,看看网络能不能通

wireshark链路层分析 wireshark数据链路层_泛洪_07

wireshark链路层分析 wireshark数据链路层_mac地址_08

kal:192.168.43.245
PC1:192.168.43.145
PC2:192.168.43.146

三者之间PING通

wireshark链路层分析 wireshark数据链路层_wireshark链路层分析_09


wireshark链路层分析 wireshark数据链路层_泛洪_10

0x02 mac地址泛洪攻击

什么是mac地址泛洪攻击?

解释1:交换机中存在着一张记录着MAC地址的表,为了完成数据的快速转发,该表具有自动学习机制;泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机,充满整个MAC表,此时交换机只能进行数据广播,攻击者凭此获得信息。

解释2:通过填满MAC地址表 (桥接表) 导致同一网段内设备之间通讯无法单播,只能通过未知单播泛洪来进行通讯。从而达到窃听信息的目的。

攻击前

正常来说,我们在这个线路上是抓不到包的,PC1发送给PC2的数据包由交换机直接转发到PC2所在线路

wireshark链路层分析 wireshark数据链路层_wireshark链路层分析_11

wireshark链路层分析 wireshark数据链路层_wireshark链路层分析_12

现在让PC1往PC2发送icmp数据包,我们用wireshark在线路1(Ethernet 0/0/1)抓包看是否能够抓到

ping 192.168.43.146

wireshark链路层分析 wireshark数据链路层_VMware_13


可以发现没有抓到PC1发送给PC2的ICMP数据包,此时交换机功能正常,能正常进行转发

wireshark链路层分析 wireshark数据链路层_泛洪_14

现在我们用kali的macof进行mac泛洪攻击,让交换机的功能变为集线器,广播接收的数据包

macof

开了三个macof

wireshark链路层分析 wireshark数据链路层_泛洪_15

然后停止macof,再用PC1向PC2发送ICMP包

wireshark链路层分析 wireshark数据链路层_VMware_16

可以发现wireshark已经捕获到了PC1向PC2发送的ICMP包,此时因为mac泛洪攻击,交换机的功能变为了集线器,所有数据包进行广播,而不是分发

wireshark链路层分析 wireshark数据链路层_wireshark链路层分析_17


此时我们查看交换机的mac表会发现大量来自同一端口(Ethernet 0/0/1)的mac地址

wireshark链路层分析 wireshark数据链路层_wireshark链路层分析_18

0x03 MAC泛洪攻击的防御

对交换机进行设置即可,给交换机的的每个端口限制主机的数量,当一个端口学习的MAC数量超过这个限制的数量,则将超出的MAC地址舍弃。

不同厂商的交换机命令不同,我这里用的ensp,所以是华为的交换机。将ethernet0/0/1的最大mac数设置为4

sys
int ethernet0/0/1

进入相关接口

port-security enable

使能接口安全功能

port-security mac-address sticky

使能接口Sticky MAC功能。

port-security protect-action { protect | restrict | shutdown }

配置接口安全功能的保护动作。
protect 当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文。
restrict 当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文,同时发出trap告警。
shutdown 当学习到的MAC地址数达到接口限制数时,接口将执行shutdown操作。

port-security max-mac-num max-number

配置接口MAC地址学习限制数。

wireshark链路层分析 wireshark数据链路层_VMware_19


现在我们再使用macof进行mac泛洪攻击

wireshark链路层分析 wireshark数据链路层_mac地址_20

查看mac表

display mac-address

此时ethernet0/0/1线路最多只有4条记录

wireshark链路层分析 wireshark数据链路层_mac地址_21