Фильтр захвата wireshark для конкретной сети (bssid)
Я хотел бы знать, как захватывать пакеты определенной беспроводной сети, используя wireshark.
Я уже могу захватывать все пакеты разных сетей, устанавливая мою беспроводную карту в режиме мониторинга, но для конкретного анализа мне нужно отбросить все пакеты, не относящиеся к моей сети, во время процедуры захвата.
Я знаю, что существуют фильтры отображения, чтобы сделать это, но мне нужно отфильтровать их вперед (как с фильтрами захвата).
Если я перехожу к CAPTURE->OPTIONS, я могу установить фильтры захвата, но я не знаю точный фильтр, потому что они отличаются от фильтра отображения. Wlan.bssid==xx:xx:xx:xx:xx:xx не работает.
какие-либо предложения?
Спасибо
3 ответа
Вы можете использовать индекс с самого начала пакета WLAN. Он нуждается в некотором уговаривании, но поле BSSID находится в фиксированной, предсказуемой позиции. Используя скобки, вы должны иметь возможность ссылаться на правильные позиции в пакете.
BSSID находится в позиции 16, так что если вы хотите подражать что-то вроде:
wlan.bssid=12:34:56:78:9a:bc
Вы должны сделать что-то вроде этого:
wlan[16:4] == 0x12345678 and wlan[20:2] == 0x9abc
Вы должны преобразовать первые 4 октета в int32 и последние 2 в int16 и использовать 2 предложения, поскольку BPF не может выразить 6-байтовое число, но я использовал его, и он отлично работает. Это также может быть адаптировано для других целей (вам просто нужно смещение).
Отличный вопрос и кое-что, что я тоже пытался выяснить.
Краткий ответ: инструменты Wireshark не могут фильтровать по BSSID. Wireshark использует pcap, который использует ядро Linux Socker Filter (на основе BPF) через ioctl SO_ATTACH_FILTER. Для BSSID нет фильтра BPF.
Другой инструмент, airodump-ng, может захватывать по BSSID, потому что он передает все кадры 802.11 в пространство пользователя и декодирует / фильтрует кадры там. Он работает на удивление хорошо, учитывая всю обработку пространства пользователя.
Но даже небольшая сеть 80211 довольно шумная. Например, мой SOHO захватывает 11K кадров менее чем за две минуты; и я все еще сбрасываю кадры. Схватив все кадры 80211 для пяти видимых (но маленьких!) Ближайших ко мне BSSID, я получаю 141 тыс. Кадров (104 МБ) всего за три минуты.
Я собираюсь использовать встроенный сниффер / инжектор кадров, используя EMMC или SD-вспышку, поэтому мне нужно быть осторожным в расширении ограничений.
Поэтому я пытаюсь написать собственный фильтр BDF для фильтрации только локальных кадров BSSID. И я надеюсь расширить его, чтобы отбросить большое количество "шумных" кадров - большинство кадров контроля и управления могут быть отфильтрованы. Расположение адреса BSSID в кадре основано на битах управления ToDS и FromDS.
Во всяком случае, надеюсь, что я предоставил несколько крошек для решения. Это может быть просто решение для пользовательского пространства airodump - самое простое.
Пожалуйста, проверьте ссылку ниже для фильтров Wireshark для Wi-Fi
Фильтры Wi-Fi для Wireshark в режиме монитора
надеюсь это поможет