Я пытаюсь передать фрейм данных (используя scapy в Ubuntu 18.04) между моим рабочим столом и ноутбуком.Я хотел бы, чтобы MSDU был просто необработанными данными, а не кадром верхнего уровня.По какой-то причине я не могу обнаружить передаваемые пакеты между устройствами.
Оба устройства установлены в режиме мониторинга и подключены к одной частоте / каналу.Например, мой рабочий стол имеет беспроводной интерфейс wlp4s0 , который я настроил следующим образом:
sudo ifconfig wlp4s0 down
sudo iwconfig wlp4s0 mode monitor
sudo ifconfig wlp4s0 up
sudo iwconfig wlp4s0 channel n
Когда я проверяю iw dev
или iwconfig
, я вижу, что оба беспроводных интерфейса находятся врежим монитора и на той же частоте с ненулевой мощностью передачи.
У меня нет проблем с прослушиванием канала с помощью scapy со следующим кодом:
sniff(iface = "wlp4s0", prn = output)
Где prn просто печатаеткраткое изложение любого пакета.
Когда я пытаюсь передать, я использую следующий код на одном устройстве:
header = Dot11(
addr1 = "00:16:ea:12:34:56",
addr2 = "00:16:ea:12:34:56",
addr3 = "ff:ff:ff:ff:ff:ff",
type = 2,
subtype = 0,
FCfield = 0)
data = "testtesttesttest"
packet = header / data
sendp(data, iface= "wlp4s0", loop = 1, inter = 0.100)
Несмотря на то, что передающее устройство сообщает, что пакет был передан, другие устройства не могутувидеть любой из пакетов во время прослушивания канала.Точно так же, при использовании 'ifconfig' tx_count для интерфейса не увеличивается.
Я пытался поменяться ролями на обоих устройствах, но тоже не повезло.
Любая помощь будет принята с благодарностью, спасибо!