0x01 环境搭建

整个环境如图所示
在这里插入图片描述
设备及型号

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

PC1和PC2都使用dhcp配置网络
在这里插入图片描述
交换机不需要配置

云的配置
在这里插入图片描述
这里我选择的VMware的nat模式对应的网卡
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

好了,现在虚拟的PC和VMware虚拟机都配置好了,看看网络能不能通
在这里插入图片描述在这里插入图片描述

kal:192.168.43.245
PC1:192.168.43.145
PC2:192.168.43.146

三者之间PING通
在这里插入图片描述
在这里插入图片描述

0x02 mac地址泛洪攻击

什么是mac地址泛洪攻击?

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

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

攻击前

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

在这里插入图片描述在这里插入图片描述

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

ping 192.168.43.146

在这里插入图片描述
可以发现没有抓到PC1发送给PC2的ICMP数据包,此时交换机功能正常,能正常进行转发
在这里插入图片描述

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

macof

开了三个macof
在这里插入图片描述

然后停止macof,再用PC1向PC2发送ICMP包
在这里插入图片描述

可以发现wireshark已经捕获到了PC1向PC2发送的ICMP包,此时因为mac泛洪攻击,交换机的功能变为了集线器,所有数据包进行广播,而不是分发
在这里插入图片描述
此时我们查看交换机的mac表会发现大量来自同一端口(Ethernet 0/0/1)的mac地址
在这里插入图片描述

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地址学习限制数。

在这里插入图片描述
现在我们再使用macof进行mac泛洪攻击
在这里插入图片描述

查看mac表

display mac-address

此时ethernet0/0/1线路最多只有4条记录
在这里插入图片描述

更多防御方法-交换机安全学习笔记 第二章 MAC地址泛洪攻击

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐