文章目录
- 0x01 环境搭建
- 0x02 mac地址泛洪攻击
- 0x03 MAC泛洪攻击的防御
0x01 环境搭建
整个环境如图所示
设备及型号
路由器:AR1220
交换机:S3700
VMware虚拟机:kali2020
连线:auto
PC2
Cloud1
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条记录