Безопасность Wi-Fi остаётся одной из тех тем, где одновременно сосуществуют мифы, неоправданные ожидания и огромное количество недопонимания. Кто-то уверен, что WPA2 и тем более WPA3 взломать невозможно, потому что «это же криптография». Кто-то считает, что всё решается набором трёх команд в Kali. И на практике обе позиции оказываются одинаково далеки от реальности. Wi-Fi — это не магия, не «сеть, работающая на духах», и не «непробиваемая защита». Это обычный протокол уровня 802.11, который живёт в открытом эфире и подчиняется вполне конкретной структуре пакетов, таймингов и встроенных процедур. Понимание этих процедур моментально показывает, что подавляющее большинство атак — не взлом, а закономерное следствие того, как устроено взаимодействие клиент ↔ точка.

Основой WPA2-аутентификации является четырёхшаговый handshake. И именно он формирует ключ, но при этом “раздаёт” достаточно информации, чтобы злоумышленник мог оффлайн проверять догадки о пароле. Все пакеты handshake идут открыто — это EAPOL-кадры, которые может увидеть любое устройство в эфире. Точка отправляет ANonce, клиент — SNonce, обе стороны на основе PMK (который, в свою очередь, зависит от пароля и SSID) вычисляют PTK, и затем сравнивают MIC. В этот момент пароль нигде не передаётся, но комбинации значений ANonce+SNonce+MIC более чем достаточно для оффлайн-подбора.

Если открыть реальный handshake в Wireshark, второй пакет будет выглядеть примерно так:

Protocol: EAPOL
Key Information: Key MIC: 1, Secure: 0, Error: 0
Nonce (SNonce): 5f:6b:b1:9a:31:0c:ae:...
MIC: 53:ff:12:88:9c:7d:91:52:...


Эти данные можно использовать для проверки предполагаемого пароля: сначала PBKDF2 генерирует PMK, затем PMK превращается в PTK, затем создаётся MIC, и если этот MIC совпадает с MIC из пакета — пароль найден. Вся атака происходит оффлайн. Никаких запросов к точке, никаких попыток войти в сеть, никакого шанса «спалиться» в эфире.

Но чтобы подбор стал возможен, handshake нужно сначала получить. С passiv-перехватом проблем хватает: можно слушать эфир часами и так и не дождаться переподключения. Поэтому практически все реальные атаки начинают с деавторизации — искусственного разрыва связи между клиентом и точкой. Деавторизация — это не «аномальный» пакет. Это штатный кадр уровня MAC, который есть в стандарте. И если клиент его получает, он честно отключается, после чего автоматически инициирует повторный handshake.

Схема выглядит примерно так:

На практике такой handshake ловится за 1–2 секунды.

Для деавторизации используются обычные команды:

aireplay-ng --deauth 4 -a <bssid> -c <client> wlan0mon

Производители роутеров по-разному реагируют на такие пакеты. Например, TP-Link и Xiaomi почти всегда честно “выбрасывают” клиентов, даже если кадры приходят с поддельным MAC. У некоторых Asus и Zyxel в прошивках включены проверки, и деавторизация может пройти не с первого раза, но в 90% сетей этот механизм работает стабильно и предсказуемо.

После получения EAPOL-кадров начинается подбор. Он может длиться секунды, часы и даже недели — зависит только от пароля, а не от сложности протокола. Если пароль «89161234567» или «qwerty123456», словарь найдёт его практически мгновенно. Если пароль состоит из четырёх случайных слов или имеет энтропию хотя бы 60–70 бит, подобрать его становится нереально. Поэтому реальная безопасность Wi-Fi почти полностью определяется человеком, который установил пароль, а не стандартом WPA2.

Отдельного внимания заслуживает PMKID-атака, которая позволяет получать материал для подбора даже тогда, когда в сети нет ни одного активного клиента. Некоторые точки доступа передают PMKID на этапе ассоциации, и злоумышленнику достаточно отправить один корректный запрос, чтобы получить идентификатор. Эта особенность особенно часто встречалась на ранних прошивках Netgear, Ubiquiti, некоторых TP-Link, а также на ряде старых операторских роутеров. Отсутствие клиентов — не проблема, и deauth не нужен вовсе. Достаточно:

hcxdumptool -i wlan0mon --enable_status=15 -o dump.pcapng

Если точка уязвима, в дампе будет строка вида:

PMKID: a1b2c3d4e5f6...

И далее используется Hashcat:

hashcat -m 16800 pmkid.txt wordlist.txt

На многих старых устройствах это работает до сих пор.

Теперь о WPA3. ��а бумаге WPA3 решает ключевую проблему — ликвидирует оффлайн-подбор. Новый механизм SAE (Simultaneous Authentication of Equals) использует криптографию, основанную на Password-Authenticated Key Exchange, и каждая попытка проверки пароля требует полноценного участия точки. То есть «поймал пакет → ушёл домой → брутил» уже не работает. Но реальность экосистемы — это всегда «смесь теории и хаоса». Большинство роутеров работают в смешанном режиме WPA2/WPA3, потому что старые устройства иначе просто не смогут подключиться. Многие клиенты (в том числе Android до определённых версий и куча IoT-устройств) предпочитают WPA2 даже при наличии WPA3. В результате сеть часто остаётся уязвимой именно из-за этого fallback-режима. Плюс были обнаружены уязвимости типа Dragonblood, которые снизили стойкость некоторых реализаций SAE.

Именно в таких деталях видна реальность: протокол может быть идеальным, но окружающая его экосистема — нет.

И самое интересное: реальная атака — это всегда очень будничный процесс. Берётся обычная сеть где-нибудь в квартире или офисе. Смотрится список клиентов. Выполняется деавторизация. Ловится handshake. Запускается словарь. И чаще всего пароль перед глазами: «Alex2005», «pass12345», «1234567890», «дом2008wifi» или что-нибудь столь же предсказуемое.

Вот пример живого лога Hashcat:

[52.47%] WPA*02 SSID: Home_WiFi
Recovered: 1/1 Digests
Password: qwerty12345


Именно так выглядит подавляющее большинство “взломов Wi-Fi” в реальной жизни: не потому что протокол слаб, а потому что человек выбрал слабый пароль.

Ещё один важный слой — то, что происходит на уровне радио. Разные чипсеты по-разному формируют кадры. Некоторые Realtek-адаптеры “роняют” EAPOL-пакеты при высокой нагрузке на канал, поэтому иногда требуется снижать частоту или применять фильтры захвата. Старые Atheros-чипы могут повторно отправлять EAPOL-пакеты с другой временной меткой, и Wireshark показывает несколько потенциальных вариантов. У мобильных устройств тоже есть свои паттерны: iPhone отправляет EAPOL последовательнее, Xiaomi иногда делает двойной handshake, а некоторым IoT-отдельным устройствам требуется 2–3 деавторизации, прежде чем они наконец переподключатся.

Прошивки роутеров добавляют ещё один слой хаоса. У бюджетных TP-Link и Keenetic handshake почти всегда стабильный и легко перехватывается. У некоторых Asus прошивки вводят задержки при повторных аутентификациях. Ubiquiti периодически ограничивает частоту попыток ассоциации, и нужно ловить момент между ограничениями. Старые ZTE, которые массово выдавались операторами, вообще могли отправлять PMKID независимо от статуса клиентов — избыточная “любезность”, ставшая уязвимостью.

Когда рассматриваешь всё это вместе, становится ясно, что атаки на Wi-Fi не исчезнут, пока экосистема устроена так же, как сейчас: огромный зоопарк устройств, непредсказуемые прошивки, старые протоколы, слабые пароли и отсутствие единой политики.

Wi-Fi не слаб сам по себе. Но он живёт в реальном мире, где есть люди, Wi‑Fi операторы, дешёвые роутеры, странные настройки и тянущийся двадцать лет багаж обратной совместимости. И в этом реальном мире “криптографическая стойкость WPA2” перестаёт быть определяющим фактором. Всё решает то, что происходит в эфире и что выбирает пользователь.

Ещё лучше особенности поведения Wi‑Fi устройств становятся заметны, если посмотреть на ситуацию не только в терминах протокола, но и визуально — так, как это видит анализатор эфира. В нормальной сети весь процесс подключения выглядит как плотный, но логичный набор пакетов. На спектрограмме это выглядит примерно так:

Если же в этот момент присутствует атакующий, картина меняется: в эфире появляется серия коротких, чётко различимых deauth‑кадров, и они визуально создают характерные «пробелы» в трафике клиента. Это можно увидеть даже на самых простых SDR‑осциллограммах как небольшие выбросы плотности. На плотной временной диаграмме это выглядит так:

Client traffic: ▓▓▓▓▓▓▓▓▓▓▓▓▓▓
Deauth spam: ░ ░ ░ ░ ░
Disconnection: [gap]
Reconnection: [Auth][Assoc][EAPOL...]


Тот же эффект можно заметить и в Wireshark: последовательность пакетов выглядит абсолютно однородной до момента появления deauth, после чего лог появляется разрыв, а затем новый цикл handshake. Фрагмент лога может выглядеть так:

Frame 231 Deauthentication, Reason: Class 3 frame received from nonassociated STA
Frame 232 Deauthentication, Reason: Class 3 frame received from nonassociated STA
Frame 233 QoS Null Function
Frame 234 --- GAP 728 ms ---
Frame 235 Authentication
Frame 236 Association Request
Frame 237 EAPOL Message 1/4
Frame 238 EAPOL Message 2/4


Отдельно интересны и PMKID‑сценарии. В тех случаях, когда точка отправляет PMKID “автоматом”, в эфире появляется короткий, почти незаметный фрагмент, который при фильтрации выглядит так:

EAPOL Key (PMKID included)
PMKID: 5a:a1:47:92:14:f3:9e:7c:2c:3d:...


На визуальной временной диаграмме этот фрагмент проявляется как одиночный EAPOL‑пакет, не связанный с handshake. Поэтому инструменты для пассивного сканирования таких ситуаций (например, hcxdumptool) создают плотную ленту запросов, чтобы «выцепить» этот пакет. Принцип можно изобразить так:


В ситуациях, когда в эфире большое количество устройств, визуализация помогает понять и другое явление — миграцию клиентов между 2.4 и 5 ГГц. На анализаторе спектра это выглядит как перемещение активности с одного канала на другой, обычно в момент резкого изменения уровня сигнала. Пример временной карты:

2.4 GHz channel 6: ▓▓▓▓▓▓▓—gap—░░░░░░░
5 GHz channel 36: ░░░░░░░—burst—▓▓▓▓▓▓


Этот “burst” — как раз момент переключения диапазона, сопровождаемый повторным handshake. И именно в этот момент атакующий может поймать ключевые пакеты вообще без active‑действий.

Иногда визуализация помогает заметить и побочные эффекты реализации протокола. Например, на некоторых роутерах beacon‑кадры становятся «неровными» при высокой нагрузке, что визуально выглядит как колебания интервала отправки:

Normal beacons: 102ms 102ms 102ms 102ms
Under load: 102ms 154ms 89ms 112ms

Эта особенность может указывать на перегрузку устройства, и в некоторых случаях именно во время таких расхождений точка начинает отправлять дополнительные EAPOL‑пакеты или PMKID, что снова создаёт шанс для атакующего.

Для полноты картины можно привести и пример реального «облака трафика», снятого с многопользовательской сети. В визуализаторе Wi‑Fi Explorer или Kismet это выглядит как плотная структура:

| Beacon: ██████████████████████████████████████████
| Probe Requests: ███ ███ █ ███
| Assoc/Auth: ██ ██ ███ ███ ██
| EAPOL: █ █ ███ █
| Data frames: ███████████████████████████████████


Этот рисунок показывает, что атака часто происходит не «по одиночке», а на фоне большого количества фонового трафика. В таких условиях захват handshake становится ещё проще: чем выше плотность эфира, тем выше количество повторов аутентификация/ассоциация, а значит больше шансов поймать релевантные кадры.

Эти визуализации подчёркивают ключевую мысль: поведение Wi‑Fi в реальном эфире — это не идеальная последовательность шагов из стандарта, а постоянно меняющееся динамическое состояние. И если понимать, как оно выглядит на практике, можно не только лучше защищать сеть, но и заранее предсказывать слабые места её конфигурации.

Комментарии (1)


  1. shadrap
    05.12.2025 12:13

    м-да... еще наверное стоит рассмотреть wps pin атаку... для полноты так сказать... или создание левой точки доступа имитирующей атакуемую ?