Вы открываете Wireshark на ноутбуке, выбираете беспроводной адаптер и запускаете захват. На экране появляются десятки, затем сотни кадров. Какие-то устройства ищут точки доступа, маршрутизаторы объявляют о своём присутствии, телефоны подключаются к сетям и обмениваются служебными сообщениями. При этом ни одного пароля Wi-Fi вы не вводили.
Никакой магии здесь нет. Беспроводные сети устроены так, что часть информации должна оставаться доступной до подключения клиента. Иначе смартфон не смог бы найти роутер, узнать параметры безопасности и начать соединение.
Даже в защищённых WPA2 и WPA3 сетях можно наблюдать MAC-адреса, управляющие кадры, параметры радиоканала, попытки подключения и сообщения согласования ключей. А вот читать переписку, пароли и содержимое HTTPS-трафика простым перехватом не получится.
Разберём, где проходит граница между открытыми метаданными и зашифрованной информацией. Заодно проведём практический эксперимент в Linux с помощью Wireshark, tshark и tcpdump, посмотрим четырёхстороннее рукопожатие WPA2 и научимся отличать реальную сетевую активность от предположений анализатора.
Все практические примеры рассчитаны на собственную лабораторную Wi-Fi-сеть или инфраструктуру, на проверку которой получено разрешение. Перехваченные кадры могут содержать идентификаторы устройств и конфиденциальную информацию. Не собирайте и не распространяйте чужие данные без законных оснований. В статье используются только пассивный захват и штатное подключение собственных устройств, без подделки кадров, принудительных отключений и атак на пароли.
Перехватываем Wi-Fi-трафик в Linux. Первые результаты за несколько команд
Для начала понадобится Linux, желательно Debian или Ubuntu, и беспроводной адаптер с поддержкой режима мониторинга. Лучше использовать отдельный USB-адаптер, чтобы основной Wi-Fi продолжал обеспечивать доступ в интернет.
Второй необходимый компонент лаборатории представлен собственным маршрутизатором. Подключать к нему будем телефон или другой компьютер, а наблюдать за обменом с отдельного Linux-устройства.
Устанавливаем Wireshark, tshark и tcpdump
Откройте терминал и установите инструменты.
sudo apt update
sudo apt install wireshark tshark tcpdump iw
У каждой программы своя задача.
- tcpdump захватывает пакеты и записывает результаты в файл. Удобен для быстрого сбора трафика в терминале.
- tshark использует механизм анализа Wireshark без графического интерфейса. Позволяет фильтровать кадры, извлекать поля и формировать отчёты.
- Wireshark показывает структуру каждого кадра, расшифровывает протоколы и помогает исследовать сложный сетевой обмен.
- iw управляет беспроводными интерфейсами Linux, в том числе переключает поддерживаемые адаптеры в режим мониторинга.
Проверим, какие беспроводные интерфейсы обнаружила система.
iw dev
Допустим, Linux показывает следующий результат.
phy#1
Interface wlan1
ifindex 4
addr 02:11:22:33:44:55
type managed
channel 6 (2437 MHz), width: 20 MHz
В данном примере wlan1 работает в режиме managed, то есть как обычный клиент Wi-Fi. Интерфейс может подключаться к маршрутизатору, но не обязательно передаёт системе радиокадры других устройств.
Нам нужен monitor mode.
Зачем нужен режим мониторинга
В обычном режиме беспроводной адаптер обрабатывает кадры, необходимые для собственной работы. Драйвер зачастую отдаёт операционной системе уже подготовленные сетевые пакеты, иногда с заголовками Ethernet вместо исходных заголовков IEEE 802.11.
Режим мониторинга меняет характер приёма. Совместимый адаптер может передавать системе кадры, которые получает на выбранном радиоканале, включая сообщения точек доступа и других клиентов.
Не путайте мониторинг с promiscuous mode. Перевод Wi-Fi-интерфейса в неразборчивый режим приёма сам по себе не гарантирует доступ к управляющим кадрам, радиометаданным и трафику соседних беспроводных сетей.
Проверим, поддерживает ли адаптер мониторинг. В примере физическое устройство называется phy1.
iw phy phy1 info
Найдите раздел Supported interface modes. Среди доступных режимов должен присутствовать monitor.
Поддержка monitor mode не означает, что адаптер сможет идеально захватывать любые кадры. Реальные возможности зависят от чипа, прошивки, драйвера, диапазона частот и особенностей конкретной передачи.
Переключаем отдельный USB-адаптер в monitor mode
Предположим, что USB-адаптер называется wlan1 и не используется для интернет-подключения. Если соединениями управляет NetworkManager, сначала отключим управление данным интерфейсом.
sudo nmcli device set wlan1 managed no
sudo ip link set wlan1 down
sudo iw dev wlan1 set type monitor
sudo ip link set wlan1 up
Если NetworkManager не установлен, первая команда не требуется. Не выполняйте переключение на основном Wi-Fi-интерфейсе, через который подключены к удалённой машине по SSH. Смена режима может немедленно разорвать соединение.
Теперь зафиксируем радиоканал. Пусть лабораторный маршрутизатор работает на канале 6 в диапазоне 2,4 ГГц.
sudo iw dev wlan1 set channel 6
iw dev wlan1 info
В выводе должны присутствовать режим monitor и выбранный канал.
Для эксперимента с диапазоном 5 или 6 ГГц потребуется адаптер, поддерживающий соответствующие частоты, и правильно настроенный канал. У современных точек доступа ширина канала может составлять 40, 80, 160 МГц и более, поэтому параметры приёмника должны соответствовать исследуемому соединению.
Есть ограничение, из-за которого новички часто получают неполные результаты. Один радиоинтерфейс не способен одновременно полноценно захватывать трафик на всех каналах. Если приёмник настроен на канал 6, передачи на другом канале останутся за пределами захвата.
При поддержке драйвером виртуальных интерфейсов можно создать отдельный интерфейс мониторинга без переключения основного. Команды такого режима описаны в настройке интерфейсов Linux. Однако одновременная работа managed и monitor на одном физическом адаптере зависит от возможностей оборудования и может ограничивать выбор канала.
Первый захват через tcpdump
Проверим, действительно ли адаптер принимает радиокадры.
sudo tcpdump -i wlan1 -n -e -c 30
Параметр -i указывает интерфейс, -n отключает преобразование адресов в имена, -e добавляет данные канального уровня, а -c 30 останавливает захват после 30 пакетов.
Если всё работает, tcpdump может показать кадры Beacon, Probe Request, Data и другие сообщения. Набор кадров зависит от радиоканала и того, что происходило в эфире во время наблюдения.
Для последующего разбора сохраним трафик в файл.
sudo tcpdump -i wlan1 -s 0 -w wifi-lab.pcap
Ключ -s 0 отключает ограничение длины захватываемого пакета со стороны tcpdump. Формат файла позволяет позднее открыть результат в Wireshark.
Оставьте терминал работающим. На собственном телефоне отключите Wi-Fi, подождите несколько секунд и подключитесь к лабораторной точке доступа повторно. После подключения остановите захват сочетанием Ctrl+C.
Передадим файл текущему пользователю и ограничим доступ к нему.
sudo chown "$USER:$(id -gn)" wifi-lab.pcap
chmod 600 wifi-lab.pcap
Откроем результат.
wireshark wifi-lab.pcap
Wireshark не нужно запускать от root для чтения уже сохранённого файла.
Если вместо IEEE 802.11 видны только обычные Ethernet-пакеты, проверьте, действительно ли адаптер находится в режиме мониторинга. Посмотреть доступные форматы канального уровня можно командой.
sudo tcpdump -L -i wlan1
При поддержке Radiotap в списке может присутствовать IEEE802_11_RADIO. Такой формат сохраняет не только кадры IEEE 802.11, но и дополнительные сведения о радиопередаче.
Не пытайтесь принудительно выбрать неподдерживаемый формат захвата. Если драйвер не предоставляет радиозаголовки, переключение параметров tcpdump не создаст отсутствующие данные.
Фильтруем трафик в Wireshark
После открытия файла перед нами появится список кадров. Для знакомства с беспроводным эфиром удобнее не читать весь поток подряд, а выделять отдельные типы сообщений.
Введите в верхнюю строку Wireshark следующие фильтры отображения.
| Фильтр Wireshark | Что показывает |
|---|---|
| wlan | Кадры IEEE 802.11 |
| wlan.fc.type == 0 | Управляющие кадры Management |
| wlan.fc.type == 1 | Контрольные кадры Control |
| wlan.fc.type == 2 | Кадры Data |
| wlan.fc.type_subtype == 0x08 | Beacon |
| wlan.fc.type_subtype == 0x04 | Probe Request |
| wlan.fc.type_subtype == 0x05 | Probe Response |
| wlan.fc.type_subtype == 0x0b | Authentication |
| wlan.fc.type_subtype == 0x00 | Association Request |
| wlan.fc.type_subtype == 0x01 | Association Response |
| wlan.fc.type_subtype == 0x0c | Deauthentication |
| wlan.fc.retry == 1 | Кадры с установленным флагом повторной передачи |
| wlan.fc.protected == 1 | Кадры с установленным битом Protected |
| eapol | Сообщения протокола EAPOL |
Сначала выберите фильтр Beacon. В большинстве сетей именно такие кадры регулярно передаёт точка доступа, объявляя о своём присутствии.
Откройте любой Beacon и разверните раздел IEEE 802.11 wireless LAN. Найдите BSSID, SSID и информационные элементы с параметрами сети.
Чтобы оставить кадры конкретной точки доступа, используйте её BSSID.
wlan.bssid == 02:11:22:33:44:55
Адрес приведён для примера. Подставьте BSSID собственной лабораторной сети.
Фильтры отображения не удаляют кадры из файла, а только скрывают неподходящие строки в интерфейсе. Не путайте их с фильтрами захвата, которые применяются при записи и используют другой синтаксис.
Получаем результаты через tshark
Когда нужно обработать большой файл без графического интерфейса, используйте tshark.
Посмотрим все Beacon.
tshark -r wifi-lab.pcap
-Y 'wlan.fc.type_subtype == 0x08'
Теперь извлечём отдельные поля управляющих кадров.
tshark -r wifi-lab.pcap
-Y 'wlan.fc.type == 0'
-T fields
-E header=y
-e frame.time_relative
-e wlan.fc.type_subtype
-e wlan.bssid
-e wlan.sa
-e wlan.da
-e wlan.ssid
Команда выводит время относительно начала захвата, тип кадра, BSSID, адреса отправителя и назначения, а также поле SSID там, где соответствующие данные присутствуют.
Не удивляйтесь пустым значениям. Не каждый управляющий кадр содержит SSID или BSSID в том виде, который ожидает анализатор. Поле SSID также может выводиться в байтовом представлении.
Отдельно проверим уровень принятого сигнала.
tshark -r wifi-lab.pcap
-Y 'radiotap.dbm_antsignal'
-T fields
-e frame.time_relative
-e wlan.sa
-e radiotap.dbm_antsignal
В результате могут появиться значения вроде -45, -62 или -79 дБм. Чем ближе отрицательное число к нулю, тем сильнее принятый сигнал.
Но уровень сигнала не превращает Wireshark в точный измеритель расстояния. На результат влияют антенны, мощность передатчика, стены, отражения, расположение устройств и характеристики самого приёмника.
Если поле Radiotap отсутствует, команда ничего не покажет. Такое поведение не доказывает, что устройство не передавало кадры.
Какие данные остаются открытыми в IEEE 802.11
Чтобы правильно интерпретировать захват, нужно разобраться в устройстве беспроводного кадра.
В Ethernet обычно достаточно различать MAC-адрес источника, адрес назначения и полезную нагрузку. В IEEE 802.11 структура сложнее, поскольку кадры передаются между радиоустройствами, точками доступа и конечными адресатами.
Три основных типа кадров
IEEE 802.11 разделяет кадры на три основные категории.
| Категория | Для чего используется | Что интересного видно |
|---|---|---|
| Management | Обнаружение сети, аутентификация, ассоциация и управление соединением | SSID, BSSID, параметры защиты, запросы подключения и служебные события |
| Control | Подтверждение приёма и управление доступом к радиосреде | ACK, Block Ack и другие признаки работы радиоканала |
| Data | Передача пользовательских данных и некоторых служебных протоколов | MAC-адреса, объёмы передачи, время, флаги и защищённую полезную нагрузку |
Не все контрольные кадры гарантированно доходят до Wireshark. Некоторые драйверы отбрасывают их ещё до передачи данных операционной системе.
Есть и менее очевидный нюанс. Сообщения EAPOL, через которые WPA2 согласовывает ключи, передаются в кадрах категории Data. Поэтому наличие слова Data не означает, что внутри обязательно находится пользовательский IP-трафик.
Что находится внутри кадра
Упрощённая структура обычного кадра IEEE 802.11 выглядит следующим образом.
+---------------------------+
| Frame Control |
| Duration / ID |
| Address 1 |
| Address 2 |
| Address 3 |
| Sequence Control |
| Optional fields |
+---------------------------+
| Frame Body |
| Данные или служебные поля |
+---------------------------+
| FCS |
+---------------------------+
Конкретный формат зависит от типа и подтипа кадра. Некоторые поля отсутствуют, а отдельные контрольные кадры имеют укороченные заголовки.
Frame Control содержит тип кадра, подтип и служебные флаги. Среди них встречаются признаки повторной передачи, направления обмена и защиты полезной нагрузки.
Поля Address 1–4 содержат MAC-адреса с различными ролями. В беспроводной сети нужно различать фактического радиополучателя, радиопередатчика, исходный адрес и конечное назначение. Поэтому первый адрес в заголовке не всегда соответствует конечному получателю пользовательских данных.
Sequence Control помогает учитывать последовательность и повторную передачу кадров.
Frame Body содержит параметры управления либо пользовательские данные. Для защищённых Data-кадров полезная нагрузка обычно зашифрована.
FCS представляет собой контрольную сумму для обнаружения ошибок. Некоторые адаптеры удаляют её перед передачей кадра в Linux, поэтому отсутствие FCS в файле захвата не является признаком неисправности сети.
Кроме заголовка IEEE 802.11 в файле может присутствовать Radiotap. Radiotap не передаётся как часть обычного Wi-Fi-кадра между клиентом и точкой доступа. Такой заголовок формирует сторона захвата, чтобы передать анализатору сведения о радиоприёме.
Beacon. Что маршрутизатор сообщает окружающим
Рассмотрим самый распространённый управляющий кадр.
Точка доступа периодически передаёт Beacon, чтобы клиенты могли обнаружить сеть и узнать параметры работы. В зависимости от оборудования и режима кадр может содержать.
- SSID беспроводной сети;
- BSSID конкретной точки доступа;
- интервал передачи Beacon;
- поддерживаемые скорости и возможности радиоинтерфейса;
- параметры канала и ширины полосы;
- информацию о поддерживаемых механизмах защиты;
- возможности и требования к защите управляющих кадров.
Особенно полезен информационный элемент RSN, или Robust Security Network. Через него точка доступа объявляет поддерживаемые алгоритмы шифрования и способы управления ключами.
Например, сеть может объявлять поддержку PSK для WPA2-Personal и SAE для WPA3-Personal.
Чтобы проверить параметры, откройте Beacon в Wireshark, найдите RSN Information и разверните список AKM Suites.
Для поиска кадров, объявляющих определённый тип управления ключами, можно использовать поле.
wlan.rsn.akms.type
В частности, тип 2 в стандартном пространстве RSN AKM соответствует PSK, а тип 8 соответствует SAE. При разборе учитывайте и идентификатор организации (OUI), поскольку одинаковые числовые значения не обязаны иметь одинаковый смысл в разных пространствах идентификаторов.
Наиболее интересен смешанный режим WPA2/WPA3. В Beacon могут присутствовать сразу несколько AKM. Но список объявленных возможностей не доказывает, какой механизм использовал конкретный клиент. Чтобы выяснить фактический способ подключения, нужно изучить кадры самого соединения.
Probe Request. Почему устройство может сообщать о себе до подключения
Беспроводной клиент обнаруживает сети с помощью пассивного и активного сканирования.
При пассивном поиске устройство слушает Beacon. При активном отправляет Probe Request и получает ответы от подходящих точек доступа.
В общем запросе клиент не обязан указывать конкретное имя сети. Но в некоторых условиях устройство отправляет направленный запрос, содержащий определённый SSID.
Поэтому заявления, будто скрытое имя сети делает точку доступа невидимой, не выдерживают проверки. Маршрутизатор продолжает передавать служебные кадры, а название сети иногда появляется в сообщениях подключения или поиска.
Впрочем, современный смартфон не обязательно раскрывает список сохранённых Wi-Fi-сетей. Операционные системы ограничивают направленные запросы и применяют случайные MAC-адреса, чтобы затруднить слежение за устройствами.
Например, Android использует случайные MAC-адреса при поиске сетей и может назначать отдельные случайные адреса для подключений. Конкретное поведение зависит от версии системы, оборудования и настроек.
Поэтому MAC-адрес из радиозахвата нельзя автоматически считать постоянным идентификатором телефона или его владельца.
Четырёхстороннее рукопожатие WPA2. Что происходит при подключении
Самая интересная часть лабораторного захвата начинается, когда собственный телефон подключается к сети WPA2-Personal.
Пользователь выбирает SSID, вводит пароль, а через несколько секунд устройство получает доступ к сети. За простым действием скрывается несколько этапов.
Сначала клиент обнаруживает точку доступа и проходит начальную аутентификацию IEEE 802.11. Затем стороны согласовывают ассоциацию. После этого начинается криптографическая процедура подтверждения и установки ключей.
В типичном WPA2-Personal подключении последовательность выглядит так.
КЛИЕНТ ТОЧКА ДОСТУПА
| |
| Поиск сети |
| <--------------------------------> |
| |
| Authentication |
| --------------------------------> |
| <-------------------------------- |
| |
| Association Request |
| --------------------------------> |
| |
| Association Response |
| <-------------------------------- |
| |
| EAPOL-Key 1 |
| <-------------------------------- |
| |
| EAPOL-Key 2 |
| --------------------------------> |
| |
| EAPOL-Key 3 |
| <-------------------------------- |
| |
| EAPOL-Key 4 |
| --------------------------------> |
| |
| Защищённый обмен данными |
| <================================> |
Четыре сообщения EAPOL-Key образуют 4-Way Handshake, или четырёхстороннее рукопожатие.
При WPA2-Personal пароль Wi-Fi не отправляется точке доступа в открытом виде для проверки при каждом подключении. Вместо этого стороны используют общий ключевой материал и обмениваются криптографическими значениями.
Как появляются ключи шифрования
Для понимания процедуры достаточно разобраться в нескольких терминах.
PMK (Pairwise Master Key) представляет собой основной ключевой материал. В обычном WPA2-Personal с парольной фразой PMK получают из пароля и SSID.
ANonce и SNonce представляют собой случайные значения, создаваемые соответственно точкой доступа и клиентом.
PTK (Pairwise Transient Key) формируется с использованием PMK, случайных значений и MAC-адресов участников. PTK включает материал, необходимый для защиты конкретного соединения и сообщений согласования ключей.
GTK (Group Temporal Key) используется для защиты группового трафика, который точка доступа передаёт нескольким клиентам.
MIC (Message Integrity Code) позволяет проверять целостность и подлинность определённых сообщений с использованием криптографического ключа.
Четырёхсторонний обмен нужен не для отправки пароля, а для подтверждения наличия согласованного ключевого материала и безопасной установки рабочих ключей.
Четыре сообщения EAPOL-Key
Сообщение 1. Точка доступа отправляет клиенту ANonce. Клиент получает данные, необходимые для вычисления PTK.
Сообщение 2. Клиент передаёт SNonce и MIC. Точка доступа может вычислить PTK и проверить сообщение клиента.
Сообщение 3. Точка доступа передаёт подтверждение, необходимые служебные параметры и защищённый материал группового ключа. Сообщение также содержит криптографическую защиту целостности.
Сообщение 4. Клиент подтверждает соответствующий этап установки ключей. После успешного завершения процедуры стороны переходят к защищённому обмену данными.
В реальном захвате сообщения могут повторяться. Кроме того, после подключения возможны обновления ключей, а при переходах между точками доступа используются дополнительные механизмы ускоренного соединения.
Поэтому не стоит считать любые четыре последовательных EAPOL-кадра одним успешным рукопожатием.
Ищем EAPOL в Wireshark
Вернёмся к нашему лабораторному файлу.
Введите фильтр.
eapol
Если захват начался до подключения телефона и адаптер принял соответствующие кадры, появятся сообщения EAPOL.
Для выделения именно сообщений EAPOL-Key в типичном WPA2-обмене используйте.
eapol.type == 3
Откройте одно из сообщений. В дереве протоколов найдите EAPOL и поля описателя ключа.
Смотрите на направление передачи, Key Information, Key Nonce, Key MIC и Replay Counter. Совокупность признаков помогает различать сообщения рукопожатия и повторные передачи.
Не пытайтесь определить этап обмена по одному полю или только по порядку строк. Если адаптер пропустил кадр, Wireshark может показать неполную последовательность.
В терминале тот же обмен можно просмотреть через tshark.
tshark -r wifi-lab.pcap
-Y 'eapol.type == 3'
-T fields
-e frame.number
-e frame.time_relative
-e wlan.sa
-e wlan.da
-e eapol.keydes.replay_counter
Команда покажет номера кадров, относительное время, MAC-адреса участников и счётчик Replay Counter.
Обратите внимание на принципиальное различие. Получить EAPOL-Key не означает получить пароль Wi-Fi. В сообщениях содержатся значения, используемые для согласования ключей, но не сама парольная фраза в читаемом виде.
Почему WPA2 всё-таки опасен при слабом пароле
Хотя пароль не передаётся по радио, WPA2-Personal допускает проверку предполагаемых паролей по определённым сведениям захваченного обмена без повторного обращения к точке доступа.
В результате слабые пароли, словарные выражения и предсказуемые комбинации остаются проблемой. Достаточно надёжная случайная парольная фраза делает подобные попытки значительно дороже.
Разница между защищённой передачей пароля и безопасностью самого пароля принципиальна. Отсутствие пароля в EAPOL не гарантирует стойкости WPA2-Personal к офлайн-подбору.
Существует и другая интересная особенность WPA2-Personal. В сети с одним общим паролем знание парольной фразы и достаточного материала рукопожатия конкретного клиента может позволить вычислить ключи соответствующего соединения и расшифровать его радиотрафик.
Поэтому пароль WPA2, напечатанный на стене кафе, не стоит воспринимать как полноценную защиту конфиденциальности от остальных посетителей, знающих тот же пароль. Шифрование приложений, прежде всего TLS, сохраняет самостоятельное значение.
В WPA3-Personal используется другой механизм аутентификации, SAE (Simultaneous Authentication of Equals). SAE создаёт ключевой материал с помощью интерактивного криптографического обмена и защищает от пассивного офлайн-подбора, характерного для WPA2-Personal.
Однако WPA3 не означает абсолютной неуязвимости. Ошибки реализации, побочные каналы, устаревшие прошивки и смешанные режимы совместимости способны ослабить защиту. Такие проблемы, включая атаки на Wi-Fi и переход между WPA3 и WPA2, заслуживают отдельной проверки.
Как выглядит подключение WPA3
В WPA3-Personal меняется не только алгоритм получения ключей, но и начальная процедура аутентификации.
Клиент и точка доступа обмениваются сообщениями SAE в рамках IEEE 802.11 Authentication. После успешного SAE и ассоциации стороны используют четырёхсторонний обмен EAPOL-Key.
Поэтому при анализе WPA3 полезно посмотреть не только EAPOL, но и кадры Authentication.
wlan.fc.type_subtype == 0x0b
Внутри соответствующих кадров Wireshark может показать алгоритм аутентификации SAE и связанные с ним параметры.
Не путайте сообщения SAE с четырьмя сообщениями EAPOL-Key. Первый механизм устанавливает общий криптографический материал с проверкой знания пароля, второй участвует в согласовании и установке ключей для защищённого обмена.
Наличие SAE в фактическом подключении гораздо информативнее простого значка WPA3 в интерфейсе маршрутизатора.
Что можно узнать без пароля, а что скрывает шифрование
Теперь объединим результаты лабораторного эксперимента.
Wireshark может получать довольно подробную информацию о работе беспроводной сети, но большую часть пользовательских данных WPA2 и WPA3 скрывают.
| Какие сведения интересуют | Можно ли узнать без пароля |
|---|---|
| SSID обычной точки доступа | Обычно да, из управляющих кадров |
| BSSID | Обычно да |
| Канал и частота | Да, если адаптер предоставляет необходимые сведения |
| Заявленные WPA2/WPA3 и алгоритмы защиты | Да, из доступных информационных элементов |
| MAC-адрес активного клиента | Может быть виден, в том числе случайный адрес |
| Момент подключения клиента | Можно определить при захвате соответствующих сообщений |
| Сообщения WPA2 EAPOL-Key | Да, при успешном захвате обмена |
| Размеры кадров и временные интервалы | Да, в пределах полноты захвата |
| Уровень принятого сигнала | Иногда, если драйвер передаёт радиометаданные |
| IP-адреса внутри зашифрованных Data-кадров | Нет, без соответствующего ключевого материала |
| DNS-запросы внутри защищённого WPA2/WPA3-трафика | Нет, без расшифровки радиоданных |
| Посещаемые страницы HTTPS | Нет, содержимое HTTPS защищено отдельно |
| Пароли и содержимое переписки | Нельзя получить простым пассивным захватом защищённого трафика |
Количество полученных пакетов тоже может вводить в заблуждение. Несколько тысяч кадров не обязательно означают интенсивную передачу пользовательских данных. В захвате встречаются Beacon, подтверждения, повторные передачи и другие служебные сообщения.
Открытая сеть не всегда означает открытый трафик
Обычная публичная Wi-Fi-сеть без пароля может не применять шифрование на уровне IEEE 802.11. В таком случае пассивный приёмник потенциально способен увидеть незашифрованные сетевые протоколы.
Но современные приложения часто используют TLS. Поэтому отсутствие пароля Wi-Fi ещё не означает, что содержимое веб-страниц, сообщений или передаваемых файлов окажется доступно наблюдателю.
Есть и более интересная ситуация. Сеть может не запрашивать пароль, но всё равно шифровать радиотрафик.
Так работает OWE (Opportunistic Wireless Encryption), применяемый в Wi-Fi Enhanced Open. Клиент и точка доступа согласовывают индивидуальный ключевой материал без общего пароля.
OWE защищает от обычного пассивного прослушивания радиоканала, но не обеспечивает полноценную аутентификацию самой точки доступа. Поэтому возможны атаки с поддельной точкой доступа, а приложения по-прежнему должны использовать собственные механизмы проверки подлинности и шифрования.
Следовательно, значок сети без замка не всегда позволяет определить, шифруется ли радиотрафик. Проверять нужно фактический механизм безопасности.
Можно ли расшифровать собственный WPA2-трафик в Wireshark
Да, при выполнении необходимых условий.
Если известны пароль WPA2-Personal и SSID, а захват содержит необходимые сообщения рукопожатия конкретного клиента, Wireshark способен вычислить ключи соединения и расшифровать соответствующие радиокадры.
Для лабораторной проверки откройте Edit → Preferences → Protocols → IEEE 802.11, включите расшифровку и добавьте ключ типа wpa-pwd.
Формат значения выглядит следующим образом.
ПарольВашейСети:ИмяВашейСети
Используйте только данные собственной лабораторной сети.
После успешной расшифровки Wireshark сможет разобрать IP, TCP, UDP и другие протоколы, которые раньше находились внутри защищённых кадров. Однако содержимое HTTPS и других соединений, защищённых TLS, по-прежнему останется зашифрованным без отдельных сеансовых секретов.
Для WPA3-Personal одного пароля и EAPOL-рукопожатия недостаточно. SAE создаёт индивидуальный ключевой материал соединения. Для расшифровки требуется соответствующий PMK или другой пригодный ключевой материал, полученный от участника соединения. Поддерживаемые способы ввода ключей и условия расшифровки зависят от режима безопасности.
Получение ключей на собственной точке доступа возможно средствами диагностики, но настройки, раскрывающие ключевой материал, следует использовать только в изолированной лаборатории. Такие журналы сами становятся чувствительными данными.
Что происходит с управляющими кадрами при PMF
WPA2 и WPA3 защищают пользовательские данные, но безопасность Wi-Fi не ограничивается шифрованием полезной нагрузки.
Отдельную роль играет PMF (Protected Management Frames), механизм защиты определённых управляющих кадров IEEE 802.11.
PMF помогает противодействовать подделке ряда сообщений, связанных с отключением клиентов и управлением уже установленным соединением.
Однако PMF не скрывает все управляющие кадры от наблюдателя. Точки доступа продолжают передавать информацию, необходимую для обнаружения сети. Даже при включённом PMF можно видеть BSSID, множество служебных параметров и активность устройств.
В WPA3 применение PMF обязательно для соответствующего защищённого соединения. В WPA2 поддержка и требования к PMF зависят от конфигурации.
Наличие PMF можно проверить в информационном элементе RSN. В Wireshark доступны признаки Management Frame Protection Capable и Management Frame Protection Required.
Для поиска кадров с объявленной поддержкой PMF используйте.
wlan.rsn.capabilities.mfpc == 1
А для поиска кадров, где объявлено обязательное применение PMF.
wlan.rsn.capabilities.mfpr == 1
Есть тонкость. В смешанном режиме WPA2/WPA3 точка доступа может объявлять PMF как поддерживаемый, но не обязательный для всех вариантов подключения. Клиент WPA3 при этом должен использовать PMF.
Поэтому один Beacon не всегда позволяет установить реальное состояние защиты конкретного соединения. Нужно дополнительно анализировать согласованные параметры и фактический обмен.
PMF также не препятствует физическому подавлению радиосигнала и не скрывает интенсивность работы сети. У современных стандартов существуют дополнительные механизмы защиты отдельных служебных сообщений, включая Beacon Protection, но защита целостности Beacon не равнозначна сокрытию его содержимого.
Почему повторные передачи не всегда означают атаку
Одна из самых полезных возможностей радиозахвата связана с диагностикой качества Wi-Fi.
Если устройство передало кадр, но не получило ожидаемого подтверждения, оно может повторить передачу. В заголовке соответствующего кадра установлен флаг Retry.
Посмотреть такие кадры можно фильтром.
wlan.fc.retry == 1
Большое количество повторов иногда указывает на проблемы радиоканала.
Возможные причины включают слабый сигнал, помехи, конкуренцию нескольких устройств за эфир, перегрузку и неблагоприятное расположение оборудования.
Но здесь легко ошибиться. Высокая доля кадров с Retry в одном файле не является доказательством атаки и даже не всегда отражает реальную долю повторных передач во всей сети.
Пассивный приёмник получает только часть радиопередач. Некоторые исходные кадры могут не попасть в захват, а повторные, наоборот, оказаться видимыми. Кроме того, существуют механизмы агрегации кадров и блочных подтверждений, которые усложняют интерпретацию статистики.
Для диагностики полезнее сравнивать одинаковые условия. Например, выполнить два захвата в одной лаборатории, сначала рядом с точкой доступа, затем за несколькими стенами, и сопоставить уровень сигнала, количество полученных кадров и признаки повторных передач.
Полученные значения помогут оценить изменения условий радиоприёма, но не заменят полноценные измерения качества канала.
Почему скрытый SSID не защищает Wi-Fi
Функция скрытия имени сети часто воспринимается как дополнительная мера безопасности. Пользователь отключает объявление SSID и рассчитывает, что посторонние перестанут обнаруживать точку доступа.
На практике маршрутизатор продолжает передавать служебные кадры. BSSID и часть параметров сети остаются доступными.
Имя сети также может появляться при подключении клиента, хотя поведение зависит от операционной системы и особенностей реализации.
Поэтому скрытие SSID не заменяет шифрование, надёжный пароль или правильную настройку WPA3.
Более того, некоторые клиентские устройства при работе со скрытыми сетями могут отправлять дополнительные направленные запросы. В отдельных условиях такая настройка создаёт дополнительные возможности для наблюдения, а не повышает конфиденциальность.
Почему MAC-адрес больше не равен конкретному телефону
Раньше по MAC-адресу нередко пытались определять производителя оборудования и отслеживать появление одного устройства в разных местах.
Современные операционные системы существенно усложнили такую задачу.
Случайные MAC-адреса могут применяться при сканировании и при подключении к сети. Например, один телефон способен использовать разные адреса в разных Wi-Fi-сетях.
Также возможны периодические изменения адреса в рамках определённых режимов приватности.
Поэтому совпадение MAC-адреса ещё требует проверки контекста, а изменение адреса не обязательно означает появление нового устройства.
Даже если первые байты адреса соответствуют зарегистрированному производителю сетевого интерфейса, результат не гарантирует точного определения модели гаджета. Для локально назначенных случайных адресов обычный поиск производителя по OUI часто вообще теряет смысл.
Почему Wireshark не показывает всю сеть целиком
Режим мониторинга расширяет возможности адаптера, но не отменяет физических ограничений радиосвязи.
Приёмник может пропустить кадры из-за расстояния, помех, несовпадения канала, неподдерживаемой ширины полосы или ограничений драйвера.
Особенно внимательно стоит работать с Wi-Fi 6E и Wi-Fi 7. Современные устройства могут использовать диапазон 6 ГГц, широкие каналы и несколько радиолиний. В Wi-Fi 7 механизм Multi-Link Operation позволяет совместимым устройствам работать через несколько связей.
Один обычный USB-адаптер, наблюдающий за единственным каналом, не обеспечивает полного представления о таком обмене.
Не менее существенна ошибка с моментом начала захвата. Если телефон подключился до запуска tcpdump, четырёхстороннее рукопожатие уже могло завершиться.
Отсутствие EAPOL в файле не означает, что сеть не использует WPA2 или WPA3. А отсутствие MAC-адреса не доказывает, что соответствующее устройство не находится рядом.
Практический эксперимент. Что действительно узнаём без пароля
Для заключительной проверки достаточно провести три коротких наблюдения на собственном оборудовании.
Эксперимент 1. Точка доступа без подключённых клиентов.
Запустите мониторинг канала лабораторного маршрутизатора и откройте Beacon. Найдите BSSID, SSID, параметры RSN и объявленные возможности PMF.
Результат покажет, сколько сведений точка доступа может сообщать ещё до подключения клиента.
Эксперимент 2. Подключение телефона к WPA2-Personal.
Начните захват до подключения смартфона. Затем подключите собственный телефон штатным способом.
Найдите кадры Authentication, Association Request, Association Response и EAPOL-Key. Сравните адреса участников и временную последовательность сообщений.
Теперь выберите защищённый Data-кадр и найдите признак Protected. Попытайтесь определить IP-адрес назначения без расшифровки.
Для обычного WPA2-соединения IP-заголовок внутри защищённой полезной нагрузки останется недоступным. При этом MAC-адреса участников беспроводного обмена и ряд других полей по-прежнему видны.
Эксперимент 3. Сравнение WPA2 и WPA3.
Если маршрутизатор поддерживает WPA3-Personal, переключите лабораторную сеть в соответствующий режим и повторите подключение телефона.
В Wireshark изучите Authentication и найдите сообщения SAE. Затем посмотрите EAPOL-Key.
Сравните последовательность с WPA2. Главная разница заключается в способе аутентификации и получения основного ключевого материала, а не в полном исчезновении служебного радиообмена.
После экспериментов верните USB-адаптер в обычный режим.
sudo ip link set wlan1 down
sudo iw dev wlan1 set type managed
sudo ip link set wlan1 up
sudo nmcli device set wlan1 managed yes
Последняя команда нужна, если ранее отключали управление интерфейсом через NetworkManager.
Не храните лабораторные файлы бесконечно. Захват может содержать MAC-адреса, служебные сведения о сети, а при наблюдении за открытым Wi-Fi также незашифрованные данные приложений. Перед передачей PCAP другому человеку удаляйте чувствительное содержимое либо используйте специально подготовленные демонстрационные файлы.
Частые вопросы о перехвате Wi-Fi
Можно ли увидеть все устройства вокруг с помощью Wireshark?
Нет. Wireshark показывает кадры, которые принял адаптер. Устройства могут не передавать ничего в момент наблюдения, работать на другом канале, находиться вне зоны уверенного приёма или использовать случайные MAC-адреса. Полный список устройств в помещении получить таким способом нельзя.
Нужен ли пароль Wi-Fi для перехвата WPA2-рукопожатия?
Для пассивного получения сообщений EAPOL-Key пароль не требуется. Совместимый адаптер может захватить обмен при подключении клиента на нужном радиоканале. Но само рукопожатие не содержит пароль в открытом виде и не предоставляет автоматического доступа к зашифрованным пользовательским данным.
Можно ли определить посещаемые сайты по зашифрованному Wi-Fi-трафику?
По одним только зашифрованным радиокадрам нельзя непосредственно прочитать DNS-запросы, IP-адреса и содержимое HTTPS. Анализ размеров, направлений и времени передачи иногда позволяет предполагать характер активности, но такие выводы не равнозначны достоверному определению сайтов. После расшифровки собственного радиотрафика часть сетевых метаданных может стать видимой, однако современные протоколы шифрования сохраняют дополнительные ограничения.
Почему Wireshark видит WPA2, но не показывает EAPOL?
Скорее всего, соединение установилось раньше начала захвата, приёмник слушает неправильный канал или пропустил соответствующие кадры. Возможны также ускоренные способы повторного подключения. Для лабораторной проверки начните запись до подключения собственного телефона и убедитесь, что адаптер работает на нужном канале.
Почему в сети WPA3 по-прежнему видны сообщения EAPOL?
WPA3-Personal использует SAE для аутентификации и получения основного ключевого материала, но после соответствующих этапов также применяет четырёхстороннее согласование ключей. Поэтому присутствие EAPOL-Key не означает, что клиент подключился по WPA2. Для определения механизма безопасности нужно исследовать SAE и согласованные параметры соединения.
Защищает ли PMF от перехвата управляющих кадров?
PMF защищает определённые управляющие кадры от подделки и повторного воспроизведения, а для некоторых сообщений обеспечивает конфиденциальность. Но PMF не скрывает весь служебный обмен. Beacon, параметры обнаружения сети и многие радиометаданные остаются наблюдаемыми. PMF также не предотвращает физические помехи и подавление радиосигнала.
Можно ли анализировать Wi-Fi без отдельного USB-адаптера?
Да, если встроенный адаптер и драйвер поддерживают режим мониторинга. Однако перевод единственного Wi-Fi-интерфейса в monitor mode часто разрывает обычное подключение. Отдельный адаптер удобнее для лаборатории и позволяет не затрагивать основное соединение компьютера.
Можно ли прослушать весь Wi-Fi 7 через один адаптер?
Обычно нет. Wi-Fi 7 может использовать несколько радиолиний и различные диапазоны частот. Приёмник, работающий на одном канале, увидит только доступную ему часть передач. Для более полного анализа потребуется подходящее оборудование, поддержка современных форматов кадров и иногда несколько синхронизированных приёмников.
Чем отличается захват через monitor mode от обычного tcpdump на подключённом ноутбуке?
При обычном захвате на подключённом интерфейсе Linux получает сетевые пакеты, которые драйвер уже обработал, включая расшифрованный трафик собственного соединения. Режим мониторинга позволяет анализировать исходные радиокадры IEEE 802.11, сообщения управления, метаданные канала и защищённые передачи других устройств, если приёмник способен их получить. Но радиозахват не предоставляет автоматически ключи расшифровки.
Вывод. Wi-Fi нельзя назвать полностью закрытым радиообменом даже при использовании WPA2 и WPA3. Устройства должны находить точки доступа, обмениваться служебными сообщениями и согласовывать параметры соединения. Поэтому значительная часть метаданных остаётся доступной пассивному наблюдателю.
Но наличие радиокадра в Wireshark не означает доступ к содержимому передачи. Шифрование WPA2 и WPA3 защищает полезную нагрузку, а TLS добавляет самостоятельную защиту приложений. По MAC-адресам и размерам кадров можно исследовать поведение сети, но нельзя автоматически установить личность пользователя или узнать содержание его действий.
Для первой проверки достаточно отдельного Wi-Fi-адаптера, tcpdump и Wireshark. Начните с Beacon, найдите BSSID и параметры RSN, затем подключите собственный телефон и проследите за Association и EAPOL-Key. Сравнение служебных сообщений с зашифрованными Data-кадрами наглядно показывает, что именно доступно без пароля, а где начинается настоящая криптографическая защита.