I обнаружил , что заголовки RadioTab не являются частью какого-либо протокола Dot11, а просто добавляются сетевым интерфейсом. И причина, по которой я получил заголовки RadioTab для примеров пакетов от Wireshark.org , а не от моего живого захвата wireshark, заключается в том, что некоторые сетевые адаптеры не добавляют RadioTap, в то время как другие делают, а сетевой адаптер моего ноутбука не добавляет RadioTab заголовки. Я проверил это с помощью нового внешнего адаптера WiFi, и он добавил заголовки RadioTap.
Если адаптер не вводит дополнительную информацию, поскольку он захватывает кадры, то заголовки радиоленты не будут добавлены.
Итак, на мой главный вопрос, как получить / установить частоту пакета. Я ожидал, что у Scapy будет эта опция, но ее нет и не должно быть. Причина в том, что частота зависит от того, что установлено на сетевом адаптере. Поэтому я настроил другую частоту / канал моего адаптера WiFi. Мой внешний WiFi-адаптер может работать на разных каналах, поэтому я изменил каждый и подтвердил заголовок RadioTap. Есть простые linux команды / инструменты , которые помогли мне проверить поддерживаемые каналы моего интерфейса WiFi и переключиться на определенный канал.
Для захвата / отправки пакетов на определенной частоты или канала, вам нужно изменить рабочий канал вашего интерфейса и настроить интерфейс анализатора / отправителя в scapy на этот интерфейс.
РЕДАКТИРОВАТЬ - другие проблемы, с которыми я столкнулся и решения:
Если вы используете linux и хотите изменить рабочий канал вашего интерфейса, вам нужно отключить сетевой менеджер для этого интерфейса и сделать это. Сначала добавьте следующий фрагмент к /etc/network/interfaces
auto $iface
iface $iface inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
замените $iface
на имя вашего интерфейса. Это позволит вам контролировать интерфейс самостоятельно. А затем добавьте следующие строки в /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="Your_AP_SSID"
psk="Your_Passphrase"
freq_list=2412 2437 2462
}
Обратите внимание, что 2412 2437 2462
- это частоты (в данном случае каналы 1, 6, 11) для вашего интерфейса на выбор. Вы можете редактировать их на нужную частоту. Источник . Но сначала вы должны убедиться, что ваш интерфейс поддерживает эти частоты. Чтобы проверить это
iwlist channel
Наконец, после того, как все сделано.
sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="wlp3s0")
Это будет отправлять вам пакеты с частотой, установленной wlp3s0
.