Источник https://xss.pro
Автор evdo
Рисунок 1 – Структура Beacon кадра
Рисунок 2 – Структура кадра Probe Request
Рисунок 3 – Структура кадра Probe Response
Рисунок 4 – Уязвимые типы сетей и методы аутентификации
Рисунок 5 – Этапы подключения клиента и точки доступа друг к другу по протоколу WPA3
Рисунок 6 – Этапы подключения клиента к точке доступа через сервер аутентификации по протоколу 802.1X
Рисунок 7 – Этапы выполнения атаки «The SSID Confusion Attack»
В этом положении злоумышленник пересылает все кадры между жертвой (Client) и точкой доступа (WrongAP).
На рисунке 8 показана схема MC‑MitM [15].
Рисунок 8 – Схема MC‑MitM
На первом этапе атаки происходит переадресация всех кадров типа Probe Request от клиента в адрес WrongAP. Если запросы содержат SSID, равный «TrustedNet», то производится замена этого SSID на «WrongNet», с последующей переадресацией кадра. Аналогичным образом любые кадры Probe Response и кадры Beacon, отправленные точкой доступа (WrongAP), модифицируются с целью замены SSID «WrongNet» на «TrustedNet». В результате жертва будет думать, что сеть «TrustedNet» находится поблизости.
На этапе 2 атаки жертва инициирует подключение к «TrustedNet». Процесс подключения начинается с отправки и получения кадра аутентификации (Authentication frame), который пересылается в WrongAP и обратно без изменений, так как не содержит SSID. На рисунке 9 показаны основные поля кадра Authentication [2, таблица 9.3.3.11].
Рисунок 9 – Структура кадра Authentication
Рисунок 10 – Структура кадра Association request
Рисунок 11 – Структура кадра Association response
Рисунок 12 – Подробная схема четырехстороннего рукопожатия
СПОСОБЫ ПРИМЕНЕНИЯ
Также уязвимость «The SSID Confusion Attack» применима для образовательных учреждений и крупных организаций и зданий, где могут существовать несколько сетей с различными SSID, но одним и тем же паролем для всех точек доступа. Это значительно упрощает доступ для сотрудников и студентов, позволяя им без труда подключаться к различным сетям, не запоминая множество паролей. При таком сценарии возможно организовать атаку «злой двойник» и переключать устройства на вредоносную сеть не только используя более высокий уровень сигнала поддельной точки доступа, но и применяя уязвимость с подменой SSID.
VPN-сервисы, таких как WARP от CloudFlare, hide.me и Windscribe можно настроить на отключение VPN при подключении к надежной/домашней сети. Эта функция позволяет пользователям добавить любой доверенный, по их мнению, SSID. VPN автоматически отключается, когда приложение обнаруживает, что устройство пользователя подключено к сети с этим надежным SSID.
Для экспериментальной проверки уязвимости CVE‑2023‑52424 используем модифицированную версию фреймворка MC-MitM [10], который представляет собой реализацию атаки Multi-Channel Machine-in-the-Middle (MC-MitM) на языке Python.
Используя MC-MitM, становится возможным манипулировать Wi-Fi трафиком в целях блокирования, изменения или задержки Wi-Fi кадров путем клонирования целевой AP на другом частотном канале, обмана клиентов-жертв, чтобы они подключились к AP на этом поддельном канале и последующей трансляции кадров к реальной AP и обратно. Другими словами, цель атаки MC-MitM заключается в том, чтобы клиент считал, что он общается с реальной AP напрямую, но на самом деле его трафик проходил через контролируемую поддельную AP.
Для работы фреймворка со стороны атакующего требуется ОС Linux (протестирован на Kali Linux 2025.1) и две сетевых Wi-Fi карты, которые поддерживают работу в режиме мониторинга («monitor mode») на базе чипсета Atheros AR9271.
Перед выполнением тестов необходимо проверить, установлены ли следующие пакеты:
Затем следует установить пакеты и настроить и активировать виртуальное окружение Python:
Для экспериментальной проверки уязвимости CVE‑2023‑52424 используем тестовый стенд, состоящий из следующего оборудования:
– точка доступа Huawei WS7200 (версия прошивки 10.0.5.15), на которой установлен SSID «testnetwork» в режиме работы сети OPN;
– клиентские устройства iPhone 11, Samsung Galaxy S20;
– Wi-Fi адаптеры для инъекции пакетов CtrlFox Atheros AR9271.
Команда для запуска атаки:
В качестве аргумента «Guest» указывается SSID целевой AP, которую хотим атаковать, в качестве аргумента «target» - mac-адрес клиента этой сети. Ключ «--continuous-csa» предписывает непрерывно отправлять поддельные кадры Beacon с полем CSA (Channel Switch Announcement) от имени AP, чтобы заставить клиента подключиться к поддельной AP на другом частотном канале.
Для понимания реализации атаки рассмотрим содержимое скрипта mc-mitm.py, определим основную логику его работы:
1a. «Клиент ищет сеть». Клиент отправляет широковещательные запросы Probe Request, или запросы, содержащие SSID «Guest» для подключения к одноименной сети;
1b. «Клиент уже подключен к сети «Guest». Скрипт отправляет поддельные кадры Beacon с полем CSA от имени AP «Guest» на канале ее вещания, заставляя клиента сканировать частотный канал поддельной AP (см. Рисунок 13).
Рисунок 13 – Поддельные кадры Beacon с полем CSA от имени AP «Guest»
Рисунок 14 – Успешная реализация позиции MC-MitM в отношении клиентского устройства
Рисунок 15 – Трансляция трафика клиентского устройства в позиции MC-MitM
ЗАКЛЮЧЕНИЕ
[1] SSID Confusion: Making Wi-Fi Clients Connect to the Wrong Network.
URL: https://www.top10vpn.com/assets/2024/05/Top10VPN-x-Vanhoef-SSID-Confusion.pdf.
[2] IEEE Standard 802.11.
[3] Mathy Vanhoef. FragAttacks: Forging Frames in Protected Wi-Fi Networks.
URL: https://i.blackhat.com/USA21/Wednes...-Through-Fragmentation-And-Aggregation-wp.pdf.
[4] WEP: A Weak Link in Wireless Security" (PDF). Computer Security Institute. 2002.
[5] Dragonfly Key Exchange.
URL: https://datatracker.ietf.org/doc/html/rfc76646.
[6] A Practical Message Falsification Attack on WPA.
URL: https://archiv.infsec.ethz.ch/education/as09/secsem/papers/WPA.pdf.
[7] FragAttacks: Security flaws in all Wi-Fi devices.
URL: https://www.fragattacks.com.
[8] Kr00k | ESET
URL: https://www.eset.com/int/kr00k/.
[9] Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues.
URL: https://www.usenix.org/conference/usenixsecurity23/presentation/schepers.
[10] MC-MitM Framework.
URL: https://github.com/vanhoefm/ssid-confusion-hostap/tree/main/mc-mitm-ssid
Автор evdo
Уязвимость «SSID Confusion: Making Wi-Fi Clients Connect to the Wrong Network» (CVE‑2023‑52424).
Описание самой уязвимости и её эксплуатации приведены в отчете «SSID Confusion: Making Wi-Fi Clients Connect to the Wrong Network» [1].
Суть уязвимости (присвоенный идентификатор CVE‑2023‑52424) заключается в отсутствии проверки подлинности имени сети Wi-Fi несмотря на то, что при подключении к защищенной сети проверяются пароль и другие учетные данные. Это связано с конструктивным недостатком стандарта IEEE 802.11, лежащего в основе Wi-Fi [2]. Среди прочего, эксплуатация данной уязвимости может привести к автоматическому отключению используемого клиентом сервиса VPN (поверх Wi-Fi), что создает возможность для перехвата трафика жертвы.
При подключении к защищенной сети Wi-Fi предполагается, что все передаваемые данные шифруются и аутентифицируются. Клиент ожидает, что сеть с SSID, отображаемым в пользовательском интерфейсе, является надежной. Однако, когда жертва пытается подключиться к сети с SSID «TrustedNet», злоумышленник может заставить ее подключиться к сети с SSID «WrongNet», использующей аналогичные учетные данные (пароль для точки доступа). В результате клиент будет считать, что он подключен к правильной сети транслируемой точкой доступа с SSID «TrustedNet», в то время как на самом деле его обманом могли подключить к менее защищенной точке доступа с SSID «WrongNet».
Процесс подключения к сети начинается с обнаружения доступных сетей.
Каждая точка доступа (AP) периодически транслирует кадры Beacon, содержащие информацию о сети, включая ее SSID. Благодаря этому клиенты могут находить окружающие сети, получая эти кадры.
На рисунке 1 приведена структура Beacon кадра [2, таблица 9-32].
Суть уязвимости (присвоенный идентификатор CVE‑2023‑52424) заключается в отсутствии проверки подлинности имени сети Wi-Fi несмотря на то, что при подключении к защищенной сети проверяются пароль и другие учетные данные. Это связано с конструктивным недостатком стандарта IEEE 802.11, лежащего в основе Wi-Fi [2]. Среди прочего, эксплуатация данной уязвимости может привести к автоматическому отключению используемого клиентом сервиса VPN (поверх Wi-Fi), что создает возможность для перехвата трафика жертвы.
При подключении к защищенной сети Wi-Fi предполагается, что все передаваемые данные шифруются и аутентифицируются. Клиент ожидает, что сеть с SSID, отображаемым в пользовательском интерфейсе, является надежной. Однако, когда жертва пытается подключиться к сети с SSID «TrustedNet», злоумышленник может заставить ее подключиться к сети с SSID «WrongNet», использующей аналогичные учетные данные (пароль для точки доступа). В результате клиент будет считать, что он подключен к правильной сети транслируемой точкой доступа с SSID «TrustedNet», в то время как на самом деле его обманом могли подключить к менее защищенной точке доступа с SSID «WrongNet».
Процесс подключения к сети начинается с обнаружения доступных сетей.
Каждая точка доступа (AP) периодически транслирует кадры Beacon, содержащие информацию о сети, включая ее SSID. Благодаря этому клиенты могут находить окружающие сети, получая эти кадры.
На рисунке 1 приведена структура Beacon кадра [2, таблица 9-32].
Рисунок 1 – Структура Beacon кадра
Так же клиент может осуществлять активный поиск сети, отправляя запросы проверки (Probe Request), содержащие информацию о клиенте и конкретный идентификатор сети (SSID), к которой клиент хочет подключиться. На рисунке 2 представлены основные поля кадра Probe Request [2, таблица 9-38, раздел 9.3.3.9].
Рисунок 2 – Структура кадра Probe Request
Сеть, получившая Probe Request, в ответе (Probe Response) на запрос обязана отправить информацию о своих параметрах. Все точки доступа должны отвечать на запросы, не содержащие определенного SSID. На рисунке 3 показаны основные поля кадра Probe Response [2, таблица 9-39, 9.3.3.10].
Рисунок 3 – Структура кадра Probe Response
Кадры Probe Request и Probe Response не подлежат проверке подлинности.
Уязвимость «The SSID Confusion Attack» актуальна для тех протоколов безопасности, которые не включают SSID в процесс выработки парного мастер ключа (PMK) или сеансовых ключей. На рисунке 4 показано, какие протоколы уязвимы. Несмотря на то, что протокол WPA3 является более новым по сравнению со своими предшественниками WPA и WPA2, он имеет недостатки, которые могут быть использованы для эксплуатации уязвимости. В следующих разделах рассмотрен каждый из методов аутентификации, включая отличия между WPA3 SAE-loop и WPA3 SAE-const.
Уязвимость «The SSID Confusion Attack» актуальна для тех протоколов безопасности, которые не включают SSID в процесс выработки парного мастер ключа (PMK) или сеансовых ключей. На рисунке 4 показано, какие протоколы уязвимы. Несмотря на то, что протокол WPA3 является более новым по сравнению со своими предшественниками WPA и WPA2, он имеет недостатки, которые могут быть использованы для эксплуатации уязвимости. В следующих разделах рассмотрен каждый из методов аутентификации, включая отличия между WPA3 SAE-loop и WPA3 SAE-const.
Рисунок 4 – Уязвимые типы сетей и методы аутентификации
Протокол WEP (Wired Equivalent Privacy) является устаревшим протоколом безопасности, используемым в беспроводных сетях Wi-Fi.
Одной из основных уязвимостей WEP является то, что ключ шифрования передается клиентам и доступен для всех устройств в сети. Нет необходимости в вычислении ключей PMK или сеансовых ключей, поскольку WEP использует статический ключ и весь трафик, независимо от устройства, шифруется с помощью одного ключа. Если два устройства используют один и тот же ключ, атакующий может перехватить его и использовать для получения доступа к зашифрованному трафику [4]. Атака с использованием уязвимости «The SSID Confusion Attack» срабатывает, если наблюдаемые Wi-Fi сети «TrustedNet» и «WrongNet» используют один и тот же ключ шифрования.
Протоколы WPA (Wi-Fi Protected Access) и WPA2 представляют собой более современные и безопасные методы защиты беспроводных сетей по сравнению с устаревшим WEP.
Основным улучшением, реализованным в WPA и WPA2, является использование динамического управления ключами и более сложных механизмов аутентификации, что значительно повышает уровень безопасности. В настоящее время современные протоколы безопасности сети Wi-Fi применяют четырехстороннее рукопожатие (4-way handshake) для аутентификации клиентов и точек доступа, а также для согласования ключей шифрования соединения. Для четырехстороннего рукопожатия используется общий парный мастер ключ (PMK), который может быть получен различными способами в зависимости от версии Wi-Fi и конкретного протокола аутентификации. В протоколах WPA и WPA2 процесс генерации парного мастер ключа (PMK) осуществляется на основе предварительно разделенного ключа (PSK) и SSID. Это означает, что для каждой сети создается уникальный PMK, который используется для шифрования данных. Если клиент обманным путем подключится к сети с другим SSID по сценарию атаки (см. далее), он будет использовать другой PMK, и, следовательно, четырехстороннее рукопожатие завершится неудачей.
Протокол WPA3 является самым современным методом защиты беспроводных сетей.
Домашние сети работают в режиме WPA3-SAE (WPA3-Personal) и защищены заранее установленным паролем, который известен всем доверенным пользователям.
В рукопожатии SAE (Simultaneous Authentication of Equals) нет понятий «Инициатор» и «Ответчик». Участники обмена равны, и каждая сторона может инициировать протокол одновременно, так что каждая сторона рассматривает себя в качестве «инициатора» для конкретного запуска протокола. На рисунке 5 изображены этапы подключения клиента и точки доступа друг к другу по протоколу WPA3.
Одной из основных уязвимостей WEP является то, что ключ шифрования передается клиентам и доступен для всех устройств в сети. Нет необходимости в вычислении ключей PMK или сеансовых ключей, поскольку WEP использует статический ключ и весь трафик, независимо от устройства, шифруется с помощью одного ключа. Если два устройства используют один и тот же ключ, атакующий может перехватить его и использовать для получения доступа к зашифрованному трафику [4]. Атака с использованием уязвимости «The SSID Confusion Attack» срабатывает, если наблюдаемые Wi-Fi сети «TrustedNet» и «WrongNet» используют один и тот же ключ шифрования.
Протоколы WPA (Wi-Fi Protected Access) и WPA2 представляют собой более современные и безопасные методы защиты беспроводных сетей по сравнению с устаревшим WEP.
Основным улучшением, реализованным в WPA и WPA2, является использование динамического управления ключами и более сложных механизмов аутентификации, что значительно повышает уровень безопасности. В настоящее время современные протоколы безопасности сети Wi-Fi применяют четырехстороннее рукопожатие (4-way handshake) для аутентификации клиентов и точек доступа, а также для согласования ключей шифрования соединения. Для четырехстороннего рукопожатия используется общий парный мастер ключ (PMK), который может быть получен различными способами в зависимости от версии Wi-Fi и конкретного протокола аутентификации. В протоколах WPA и WPA2 процесс генерации парного мастер ключа (PMK) осуществляется на основе предварительно разделенного ключа (PSK) и SSID. Это означает, что для каждой сети создается уникальный PMK, который используется для шифрования данных. Если клиент обманным путем подключится к сети с другим SSID по сценарию атаки (см. далее), он будет использовать другой PMK, и, следовательно, четырехстороннее рукопожатие завершится неудачей.
Протокол WPA3 является самым современным методом защиты беспроводных сетей.
Домашние сети работают в режиме WPA3-SAE (WPA3-Personal) и защищены заранее установленным паролем, который известен всем доверенным пользователям.
В рукопожатии SAE (Simultaneous Authentication of Equals) нет понятий «Инициатор» и «Ответчик». Участники обмена равны, и каждая сторона может инициировать протокол одновременно, так что каждая сторона рассматривает себя в качестве «инициатора» для конкретного запуска протокола. На рисунке 5 изображены этапы подключения клиента и точки доступа друг к другу по протоколу WPA3.
Рисунок 5 – Этапы подключения клиента и точки доступа друг к другу по протоколу WPA3
Аутентификация SAE использует криптографию на основе дискретного логарифмирования для аутентификации и согласования ключей. Каждая сторона обмена получает эфемерные открытые и закрытые ключи, которые определяют конечную группу. Группа может быть основана либо на криптографии с конечным полем (FFC), либо на криптографии с эллиптическими кривыми (ECC). От способа, которым вырабатывается элемент группы P, зависит применима ли уязвимость «The SSID Confusion Attack».
При использовании ECC элемент группы определяется с использованием предварительно разделенного ключа (PSK) и MAC-адресов клиента (MAC‑STA‑A) и точки доступа (MAC-STA-B), цикл продолжается до нахождения допустимой точки P на эллиптической кривой. В данном способе SSID не участвует в генерации PMK, что делает атаку возможной, если наблюдаемые сети «TrustedNet» и «WrongNet» используют один и тот же пароль.
При использовании FFC элемент группы вычисляется за постоянное время, что является более безопасным подходом. Этот метод использует SSID, предварительно разделенный ключ (PSK) и MAC-адреса клиента (MAC‑STA‑A) и точки доступа (MAC-STA-B) в качестве входных данных. Так как SSID используется для получения PMK, следовательно, атака завершается неудачей.
Более подробно процесс аутентификации и согласование ключей изложен в «IEEE Standard for Information Technology-Telecommunications and Information Exchange between Systems Local and Metropolitan Area Networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications» [2] и в RFC 7664 [5].
Корпоративные сети используют протокол 802.1X для аутентификации, что позволяет использовать расширяемый протокол аутентификации (EAP). Аутентификация может осуществляться на основе имени пользователя и пароля, с использованием сертификатов, одноразовых паролей и других методов.
Получение PMK определяется каждым из методов EAP, такими как EAP-MSCHAPv2, EAP-TLS или EAP-PWD. Для каждого из методов EAP процесс генерации PMK не зависит от SSID. Это делает корпоративные сети уязвимыми. На рисунке 6 показан алгоритм подключения к сети с использованием EAP клиента к точке доступа через север аутентификации.
При использовании ECC элемент группы определяется с использованием предварительно разделенного ключа (PSK) и MAC-адресов клиента (MAC‑STA‑A) и точки доступа (MAC-STA-B), цикл продолжается до нахождения допустимой точки P на эллиптической кривой. В данном способе SSID не участвует в генерации PMK, что делает атаку возможной, если наблюдаемые сети «TrustedNet» и «WrongNet» используют один и тот же пароль.
При использовании FFC элемент группы вычисляется за постоянное время, что является более безопасным подходом. Этот метод использует SSID, предварительно разделенный ключ (PSK) и MAC-адреса клиента (MAC‑STA‑A) и точки доступа (MAC-STA-B) в качестве входных данных. Так как SSID используется для получения PMK, следовательно, атака завершается неудачей.
Более подробно процесс аутентификации и согласование ключей изложен в «IEEE Standard for Information Technology-Telecommunications and Information Exchange between Systems Local and Metropolitan Area Networks - Specific Requirements Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications» [2] и в RFC 7664 [5].
Корпоративные сети используют протокол 802.1X для аутентификации, что позволяет использовать расширяемый протокол аутентификации (EAP). Аутентификация может осуществляться на основе имени пользователя и пароля, с использованием сертификатов, одноразовых паролей и других методов.
Получение PMK определяется каждым из методов EAP, такими как EAP-MSCHAPv2, EAP-TLS или EAP-PWD. Для каждого из методов EAP процесс генерации PMK не зависит от SSID. Это делает корпоративные сети уязвимыми. На рисунке 6 показан алгоритм подключения к сети с использованием EAP клиента к точке доступа через север аутентификации.
Рисунок 6 – Этапы подключения клиента к точке доступа через сервер аутентификации по протоколу 802.1X
В ячеистых сетях (MESH) одноранговые узлы осуществляют аутентификацию друг друга и согласование мастер-ключа (PMK) с использованием методов, таких как SAE или 802.1X. Как описано в предыдущих разделах, все современные методы EAP в стандарте 802.1X не проверяют SSID, а SAE проверяет SSID только при использовании варианта с использованием FFC. После согласования PMK выполняется протокол Authenticated Mesh Peering Exchange (AMPE), который никогда не проверяет SSID [2]. В результате MESH сети также уязвимы, если не используется метод FFC.
Протокол Fast Basic Service Set (BSS) Transition (FT) использует модифицированный метод рукопожатия (4-way handshake) для создания более динамичной иерархии ключей. При первом подключении к сети вычисляются значения PMK-R0 и PMK-R1 [3]. Центральный контроллер сети управляет всеми точками доступа в сети и хранит PMK-R0 и тот, что присваивается каждой точке PMK-R1. Центральный контроллер вычисляет PMK-R0 путем хэширования секретного ключа, полученного в результате аутентификации EAP или из PSK, SSID и идентификаторов клиента и контроллера. Клиент успешно завершит подключение только в том случае, если он использует правильный SSID, а это означает, что протокол FT не уязвим для атаки с использованием уязвимости «The SSID Confusion Attack».
Протокол FILS предназначен для ускорения процесса подключения. Аутентификация с помощью FILS позволяет клиенту и точке доступа аутентифицировать друг друга с помощью открытых ключей. Общий секрет генерируется с использованием метода Диффи-Хеллмана, и этот общий секрет хэшируется вместе с одноразовым значением, сгенерированным клиентом, и одноразовым значением, сгенерированным точкой доступа, для создания PMK. Успешность атаки «The SSID Confusion Attack» зависит от того, будет ли клиент доверять сети, основываясь на ее открытом ключе. Стандарт определяет, что клиенты могут доверять сети, если они доверяют либо центру сертификации, либо публичному ключу точки доступа [3].
Для аутентификации с использованием FILS клиент и точка доступа используют общий секрет, полученный из рукопожатия EAP, либо из кэшированного PMK.
Если аутентификация происходит через EAP, то клиент уязвим для атаки (см. комментарий в отношении протокола 802.1X). В противном случае клиент уязвим, только если он уже был подключен к поддельной сети ранее.
Протокол Fast Basic Service Set (BSS) Transition (FT) использует модифицированный метод рукопожатия (4-way handshake) для создания более динамичной иерархии ключей. При первом подключении к сети вычисляются значения PMK-R0 и PMK-R1 [3]. Центральный контроллер сети управляет всеми точками доступа в сети и хранит PMK-R0 и тот, что присваивается каждой точке PMK-R1. Центральный контроллер вычисляет PMK-R0 путем хэширования секретного ключа, полученного в результате аутентификации EAP или из PSK, SSID и идентификаторов клиента и контроллера. Клиент успешно завершит подключение только в том случае, если он использует правильный SSID, а это означает, что протокол FT не уязвим для атаки с использованием уязвимости «The SSID Confusion Attack».
Протокол FILS предназначен для ускорения процесса подключения. Аутентификация с помощью FILS позволяет клиенту и точке доступа аутентифицировать друг друга с помощью открытых ключей. Общий секрет генерируется с использованием метода Диффи-Хеллмана, и этот общий секрет хэшируется вместе с одноразовым значением, сгенерированным клиентом, и одноразовым значением, сгенерированным точкой доступа, для создания PMK. Успешность атаки «The SSID Confusion Attack» зависит от того, будет ли клиент доверять сети, основываясь на ее открытом ключе. Стандарт определяет, что клиенты могут доверять сети, если они доверяют либо центру сертификации, либо публичному ключу точки доступа [3].
Для аутентификации с использованием FILS клиент и точка доступа используют общий секрет, полученный из рукопожатия EAP, либо из кэшированного PMK.
Если аутентификация происходит через EAP, то клиент уязвим для атаки (см. комментарий в отношении протокола 802.1X). В противном случае клиент уязвим, только если он уже был подключен к поддельной сети ранее.
Описание этапов атаки
Схема атаки показана на рисунке 7. Сначала злоумышленник создает несанкционированную точку доступа (WrongAP) на канале, отличном от сети «WrongNet». «WrongNet» – сеть атакующего, созданная для установки многоканальной позиции «человек посередине» (MC-MitM), цель которой обманом заставить жертву подключиться к «WrongAP».
Рисунок 7 – Этапы выполнения атаки «The SSID Confusion Attack»
В этом положении злоумышленник пересылает все кадры между жертвой (Client) и точкой доступа (WrongAP).
На рисунке 8 показана схема MC‑MitM [15].
Рисунок 8 – Схема MC‑MitM
На первом этапе атаки происходит переадресация всех кадров типа Probe Request от клиента в адрес WrongAP. Если запросы содержат SSID, равный «TrustedNet», то производится замена этого SSID на «WrongNet», с последующей переадресацией кадра. Аналогичным образом любые кадры Probe Response и кадры Beacon, отправленные точкой доступа (WrongAP), модифицируются с целью замены SSID «WrongNet» на «TrustedNet». В результате жертва будет думать, что сеть «TrustedNet» находится поблизости.
На этапе 2 атаки жертва инициирует подключение к «TrustedNet». Процесс подключения начинается с отправки и получения кадра аутентификации (Authentication frame), который пересылается в WrongAP и обратно без изменений, так как не содержит SSID. На рисунке 9 показаны основные поля кадра Authentication [2, таблица 9.3.3.11].
Рисунок 9 – Структура кадра Authentication
Как только (открытая) аутентификация завершена, клиент отправляет запрос на ассоциацию (Association request), который включает SSID. На этом этапе злоумышленник переписывает SSID «TrustedNet» на «WrongNet» в кадре Association request перед отправкой запроса на ассоциацию в точку доступа (Wrong AP). На рисунке 10 показаны основные поля кадра Association request [2, таблица 8-22].
Рисунок 10 – Структура кадра Association request
Запрос Association response не содержит SSID и, следовательно, может быть отправлен клиенту без изменений. На рисунке 11 показаны основные поля кадра Association response [12, таблица 8-23].
Рисунок 11 – Структура кадра Association response
Если подключение выполняется к корпоративной Wi-Fi сети, то выполняется аутентификация по стандарту 802.1X (см. рисунок 6).
Четырехстороннее рукопожатие (4-way handshake) используется для согласования новых сеансовых ключей шифрования и аутентификации фреймов данных, на рисунке 12 показан алгоритм четырехстороннего рукопожатия. Согласованные ключи зависят от MAC-адресов жертвы (Client) и точки доступа (WrongAP), но это не влияет на успешность атаки, поскольку метод MC-MitM создает несанкционированный клон точки доступа, используя тот же MAC‑адрес, что и у RealAP.
На этапе 3 атаки клиент подключен к WrongAP. Весь трафик между клиентом и точкой доступа перенаправляется, продолжается перезапись SSID «WrongNet» на «TrustedNet» в рассылаемых WrongAP кадрах Beacon, чтобы клиент продолжал считать, что «TrustedNet» действительно находится поблизости.
Четырехстороннее рукопожатие (4-way handshake) используется для согласования новых сеансовых ключей шифрования и аутентификации фреймов данных, на рисунке 12 показан алгоритм четырехстороннего рукопожатия. Согласованные ключи зависят от MAC-адресов жертвы (Client) и точки доступа (WrongAP), но это не влияет на успешность атаки, поскольку метод MC-MitM создает несанкционированный клон точки доступа, используя тот же MAC‑адрес, что и у RealAP.
На этапе 3 атаки клиент подключен к WrongAP. Весь трафик между клиентом и точкой доступа перенаправляется, продолжается перезапись SSID «WrongNet» на «TrustedNet» в рассылаемых WrongAP кадрах Beacon, чтобы клиент продолжал считать, что «TrustedNet» действительно находится поблизости.
Рисунок 12 – Подробная схема четырехстороннего рукопожатия
СПОСОБЫ ПРИМЕНЕНИЯ
В данном разделе приведены примеры того, к каким последствиям может привести обман жертвы при подключении к другой сети Wi-Fi. Суть атаки заключается в том, чтобы вынудить жертву подключиться к менее безопасной сети.
Это упрощает проведение других атак или позволяет отслеживать сетевой трафик жертвы.
Чтобы атака с использованием уязвимости «The SSID Confusion Attack» завершилась успехом, должны выполняться следующие условия:
– жертва хочет подключиться к доверенной сети (TrustedNet);
– доступна вторая сеть с теми же учетными данными для аутентификации, что и у первой (доверенной);
– имеется техническая возможность провести атаку многоканальной позиции «человек посередине» (MC-MitM) между жертвой и «доверенной сетью».
Это упрощает проведение других атак или позволяет отслеживать сетевой трафик жертвы.
Чтобы атака с использованием уязвимости «The SSID Confusion Attack» завершилась успехом, должны выполняться следующие условия:
– жертва хочет подключиться к доверенной сети (TrustedNet);
– доступна вторая сеть с теми же учетными данными для аутентификации, что и у первой (доверенной);
– имеется техническая возможность провести атаку многоканальной позиции «человек посередине» (MC-MitM) между жертвой и «доверенной сетью».
Разный SSID для точки доступа с двумя диапазонами частот
Чаще всего связь по Wi-Fi осуществляется на частоте 2,4 ГГц, но ввиду более высокой скорости передачи данных частота 5 ГГц становится все более распространенной. Однако не все пользовательские устройства поддерживают частоту 5 ГГц, поэтому зачастую точка доступа Wi‑Fi предоставляет две сети: одну в диапазоне 2,4 ГГц и одну в диапазоне 5 ГГц. Данные сети имеют разные SSID, но используют одинаковые учетные данные. AP в диапазоне 2.4 ГГц обычно поддерживают меньшее количество функций безопасности, таких как защита кадра управления, защита кадров Beacon или проверка работоспособности канала. Кроме того, устройства, реализующие точки доступа только в диапазоне 2,4 ГГц, могут быть уже устаревшими и, следовательно, уязвимыми для известных атак, таких как KRACK [6] или FragAttacks [7]. Злоумышленник также может после успешной атаки с подменой SSID использовать атаки Kr00k [8] и «Обрамление кадров» [9], которые эффективны против устаревших точек доступа.
Разный SSID для разных точек доступа Wi-Fi внутри одной организации
Также уязвимость «The SSID Confusion Attack» применима для образовательных учреждений и крупных организаций и зданий, где могут существовать несколько сетей с различными SSID, но одним и тем же паролем для всех точек доступа. Это значительно упрощает доступ для сотрудников и студентов, позволяя им без труда подключаться к различным сетям, не запоминая множество паролей. При таком сценарии возможно организовать атаку «злой двойник» и переключать устройства на вредоносную сеть не только используя более высокий уровень сигнала поддельной точки доступа, но и применяя уязвимость с подменой SSID.
Автоматическое отключение VPN в надежных сетях
VPN-сервисы, таких как WARP от CloudFlare, hide.me и Windscribe можно настроить на отключение VPN при подключении к надежной/домашней сети. Эта функция позволяет пользователям добавить любой доверенный, по их мнению, SSID. VPN автоматически отключается, когда приложение обнаруживает, что устройство пользователя подключено к сети с этим надежным SSID.
Экспериментальная проверка уязвимости CVE‑2023‑52424 в реализации фреймворка MC-MitM.
Для экспериментальной проверки уязвимости CVE‑2023‑52424 используем модифицированную версию фреймворка MC-MitM [10], который представляет собой реализацию атаки Multi-Channel Machine-in-the-Middle (MC-MitM) на языке Python.
Используя MC-MitM, становится возможным манипулировать Wi-Fi трафиком в целях блокирования, изменения или задержки Wi-Fi кадров путем клонирования целевой AP на другом частотном канале, обмана клиентов-жертв, чтобы они подключились к AP на этом поддельном канале и последующей трансляции кадров к реальной AP и обратно. Другими словами, цель атаки MC-MitM заключается в том, чтобы клиент считал, что он общается с реальной AP напрямую, но на самом деле его трафик проходил через контролируемую поддельную AP.
Для работы фреймворка со стороны атакующего требуется ОС Linux (протестирован на Kali Linux 2025.1) и две сетевых Wi-Fi карты, которые поддерживают работу в режиме мониторинга («monitor mode») на базе чипсета Atheros AR9271.
Перед выполнением тестов необходимо проверить, установлены ли следующие пакеты:
sudo apt-get updatesudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libssl-dev \libdbus-1-dev git pkg-config build-essential macchanger net-tools virtualenv \rfkill hostapd wpa_supplicantЗатем следует установить пакеты и настроить и активировать виртуальное окружение Python:
git https://github.com/vanhoefm/mc-mitm.git --recursivecd mc-mitm./pysetup.shsudo susource venv/bin/activateДля экспериментальной проверки уязвимости CVE‑2023‑52424 используем тестовый стенд, состоящий из следующего оборудования:
– точка доступа Huawei WS7200 (версия прошивки 10.0.5.15), на которой установлен SSID «testnetwork» в режиме работы сети OPN;
– клиентские устройства iPhone 11, Samsung Galaxy S20;
– Wi-Fi адаптеры для инъекции пакетов CtrlFox Atheros AR9271.
Команда для запуска атаки:
./mc-mitm.py wlan1 wlan2 Guest --target 00:11:11:11:11:11 --continuous-csaВ качестве аргумента «Guest» указывается SSID целевой AP, которую хотим атаковать, в качестве аргумента «target» - mac-адрес клиента этой сети. Ключ «--continuous-csa» предписывает непрерывно отправлять поддельные кадры Beacon с полем CSA (Channel Switch Announcement) от имени AP, чтобы заставить клиента подключиться к поддельной AP на другом частотном канале.
Для понимания реализации атаки рассмотрим содержимое скрипта mc-mitm.py, определим основную логику его работы:
1a. «Клиент ищет сеть». Клиент отправляет широковещательные запросы Probe Request, или запросы, содержащие SSID «Guest» для подключения к одноименной сети;
1b. «Клиент уже подключен к сети «Guest». Скрипт отправляет поддельные кадры Beacon с полем CSA от имени AP «Guest» на канале ее вещания, заставляя клиента сканировать частотный канал поддельной AP (см. Рисунок 13).
Рисунок 13 – Поддельные кадры Beacon с полем CSA от имени AP «Guest»
При реализации данного функционала к скрипте допущена логическая ошибка, в связи с чем отправка кадров Beacon с полем CSA производилась не от имени реальной, а от имени поддельной AP (исправленная версия mc-mitm.py прилагается).
2. «Поддельная AP отвечает». Вредоносная AP, вещающая на другом частотном канале с SSID «Guestator» (переменная TRUSTED_NET скрипта), получает запросы Probe Request от клиента (если они широковещательные или если клиент сканирует частотный канал поддельной AP) и отвечает на них ответами Probe Response, имитируя легитимную AP.
3. Чтобы клиент не установил прямое соединение с реальной AP, содержимое его запросов на ассоциацию, содержащих SSID «Guest», подменяется на «badnetwork» (переменная WRONG_NET скрипта) и далее пересылается на реальную AP с целью дальнейшего отклонения. Данная функция является ключевым шагом для поддержания позиции MitM, заставляя реальную AP отклонять попытки клиента ассоциироваться с ней напрямую, пока клиент взаимодействует через поддельную AP.
3. «Клиент видит сеть «Guestator». Клиент видит Probe Response или Beacon от поддельной AP с mac-адресом и другими параметрами сети «Guest», поскольку скрипт клонирует эти параметры, но с SSID «Guestator». Уязвимый клиент решает, что это легитимная сеть или ее альтернативное представление.
4. «Клиент пытается подключиться к сети «Guestator». Клиент начинает процесс подключения в поддельной AP на частотном канале ее вещания.
5. «Скрипт определяет подключение». Функция «handle_rx_roudechan» обрабатывает входящие кадры на канале поддельной точки доступа. Когда она получает кадр, который адресован поддельной AP и является запросом на аутентификацию, ассоциацию или любым пакетом данных, скриптом регистрируется факт подключения/обмена данными клиента и поддельной AP.
6. «Изменение состояния клиента». Скрипт вызывает метод «mark_got_mitm()», который переводит состояние клиента в «ClientState.GotMitm» и выводит в консоль сообщение, что позиция MITM в отношении клиента успешно установлена (см. Рисунок 14).
2. «Поддельная AP отвечает». Вредоносная AP, вещающая на другом частотном канале с SSID «Guestator» (переменная TRUSTED_NET скрипта), получает запросы Probe Request от клиента (если они широковещательные или если клиент сканирует частотный канал поддельной AP) и отвечает на них ответами Probe Response, имитируя легитимную AP.
3. Чтобы клиент не установил прямое соединение с реальной AP, содержимое его запросов на ассоциацию, содержащих SSID «Guest», подменяется на «badnetwork» (переменная WRONG_NET скрипта) и далее пересылается на реальную AP с целью дальнейшего отклонения. Данная функция является ключевым шагом для поддержания позиции MitM, заставляя реальную AP отклонять попытки клиента ассоциироваться с ней напрямую, пока клиент взаимодействует через поддельную AP.
3. «Клиент видит сеть «Guestator». Клиент видит Probe Response или Beacon от поддельной AP с mac-адресом и другими параметрами сети «Guest», поскольку скрипт клонирует эти параметры, но с SSID «Guestator». Уязвимый клиент решает, что это легитимная сеть или ее альтернативное представление.
4. «Клиент пытается подключиться к сети «Guestator». Клиент начинает процесс подключения в поддельной AP на частотном канале ее вещания.
5. «Скрипт определяет подключение». Функция «handle_rx_roudechan» обрабатывает входящие кадры на канале поддельной точки доступа. Когда она получает кадр, который адресован поддельной AP и является запросом на аутентификацию, ассоциацию или любым пакетом данных, скриптом регистрируется факт подключения/обмена данными клиента и поддельной AP.
6. «Изменение состояния клиента». Скрипт вызывает метод «mark_got_mitm()», который переводит состояние клиента в «ClientState.GotMitm» и выводит в консоль сообщение, что позиция MITM в отношении клиента успешно установлена (см. Рисунок 14).
Рисунок 14 – Успешная реализация позиции MC-MitM в отношении клиентского устройства
В результате использования модифицированной версии mc-mitm.py определено следующее:
- в отношении клиентских устройств iPhone 11, Samsung Galaxy S20 при помощи уязвимости CVE‑2023‑52424 успешно реализуется позиция MC-MitM;
- трафик клиентских устройств проходит через контролируемую поддельную AP (см. Рисунок 15) без признаков подмены SSID в пользовательском интерфейсе ОС.
Рисунок 15 – Трансляция трафика клиентского устройства в позиции MC-MitM
ЗАКЛЮЧЕНИЕ
В статье рассмотрена уязвимость беспроводных сетей стандарта Wi-Fi CVE-2023-52424, проведена практическая проверка возможности атаки посредством модифицированной версии фреймворка MC-MitM.
В результате проведённой работы экспериментально подтверждено отсутствие функции проверки подлинности имени сети (SSID) со стороны клиентских устройств, что позволяет обеспечить мониторинг их трафика с позиции поддельной сети с произвольным именем по методу MC-MitM.
В результате проведённой работы экспериментально подтверждено отсутствие функции проверки подлинности имени сети (SSID) со стороны клиентских устройств, что позволяет обеспечить мониторинг их трафика с позиции поддельной сети с произвольным именем по методу MC-MitM.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
[1] SSID Confusion: Making Wi-Fi Clients Connect to the Wrong Network.
URL: https://www.top10vpn.com/assets/2024/05/Top10VPN-x-Vanhoef-SSID-Confusion.pdf.
[2] IEEE Standard 802.11.
[3] Mathy Vanhoef. FragAttacks: Forging Frames in Protected Wi-Fi Networks.
URL: https://i.blackhat.com/USA21/Wednes...-Through-Fragmentation-And-Aggregation-wp.pdf.
[4] WEP: A Weak Link in Wireless Security" (PDF). Computer Security Institute. 2002.
[5] Dragonfly Key Exchange.
URL: https://datatracker.ietf.org/doc/html/rfc76646.
[6] A Practical Message Falsification Attack on WPA.
URL: https://archiv.infsec.ethz.ch/education/as09/secsem/papers/WPA.pdf.
[7] FragAttacks: Security flaws in all Wi-Fi devices.
URL: https://www.fragattacks.com.
[8] Kr00k | ESET
URL: https://www.eset.com/int/kr00k/.
[9] Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues.
URL: https://www.usenix.org/conference/usenixsecurity23/presentation/schepers.
[10] MC-MitM Framework.
URL: https://github.com/vanhoefm/ssid-confusion-hostap/tree/main/mc-mitm-ssid