使用python / scapy生成100%自定义layer2有效负载

时间:2019-03-27 20:55:07

标签: python-3.x wifi scapy 802.11

我想创建一个python3脚本,该脚本使用无线活动连接(当前接口已连接的bssid)发送100%自定义第2层有效负载(或换句话说,是100%自定义第3层或2.5协议)。

我已经尝试过很多使用scapy的方法,例如以下脚本:

from scapy.all import *
import os

interfaces = os.listdir('/sys/class/net')
interface = interfaces[1] # which is the wireless interface

send(Dot11(addr1 = 'aa:aa:aa:aa:aa:aa'), iface = str(interface)) # I pretend here to send an empty frame to addr1 destination, using the wireless card and the existing bssid on which i'm currently connected

我总是以广播的形式获取目标MAC地址。当然,我不了解做我想要的事情的正确方法。

欢迎任何建议或澄清。

谢谢。

1 个答案:

答案 0 :(得分:0)

答案,关键是使用sendp而不是send,例如IEEE1905以太网类型:

import os
from scapy.all import *

dest_MAC = aa:aa:aa:aa:aa:aa # the mac address you want to send it

interfaces = os.listdir('/sys/class/net') interface = interfaces[3] #select one interface from the array, it could be Ethernet or an existing Wireless STA connection

p = Ether(type=0x893a, dst = dest_MAC)/b"\x00\x00\x00" #we send just three "zero" bytes

sendp(p, iface=interface) #using sendp instead send, which is layer2 abstracted