Создание 100% пользовательской полезной нагрузки layer2 с python / scapy - PullRequest
0 голосов
/ 27 марта 2019

Я хочу создать скрипт 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 голосов
/ 01 июля 2019

Ответ, ключом является использование sendp вместо send, например, IEEE1905 Ethertype:

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
...