Как отправить пакет RTS 802.11 с помощью Scapy (и получить ответ CTS) - PullRequest
0 голосов
/ 25 июня 2019

Я довольно новичок в Scapy, и я пытаюсь создать пакет RTS и отправить его в точку доступа, чтобы получить ответ CTS. Тем не менее, мне действительно трудно найти правильный способ сделать это (быть новичком в сети и пакеты 802.11 тоже не помогают).

Это код, который у меня есть сейчас:

bytes = struct.pack("<H", 123) # 123 microseconds
timeval = struct.unpack(">H", bytes)[0]
pkt = RadioTap()/Dot11(addr1 = target_addr, addr2 = my_addr, type = 1, subtype = 11, ID = timeval)

Я знаю, что type должно быть равно 1, поскольку это контрольный пакет, и что subtype должно быть равно 11, потому что это RTS-пакет. Однако, когда я отправляю пакет с sr() или srp() или sr1(), я либо не получаю ответ (Scapy ждет ответа, но ничего не возвращается, поэтому он просто продолжает ждать), либо я получаю точное сообщение, которое я отправил .

В этом вопросе упоминается добавление слоя Dot11Elt() в конце, однако это ничего не меняет в моем случае.

Это тип ответа, который я получаю: Scapy RTS result

И если я открою 0-й элемент кортежа ответа с помощью Wireshark, я получу: Wireshark analysis of response

Я спрятал MAC-адреса, но они такие же, как те, что я положил в пакет, который я отправил на точку доступа (target_addr и my_addr). Я ожидаю получить CTS с my_addr в качестве «адреса назначения».

Что я делаю не так?

...