我想创建一个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地址。当然,我不了解做我想要的事情的正确方法。
欢迎任何建议或澄清。
谢谢。
答案 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