D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
28 марта 2023 года Mathy Vanhoef в исследовании «Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues» [1] опубликовал данные об уязвимости CVE-2022-47522. Доклад по результатам исследования состоялся 9-11 августа 2023 года на конференции USENIX Security '23 (Анахейм, Калифорния, США), на сайте конференции представлены материалы выступления [2].
Атака, получившая название «MacStealer», позволяет осуществить перехват трафика в сетях Wi-Fi, где используются технологии защиты клиентов от атак друг на друга («изоляция клиентов»). Компания Cisco признала наличие уязвимости, заявив, что атаки, описанные в исследовании, могут быть успешно проведены в отношении продуктов Cisco Wireless Access Point и Cisco Meraki.
Уязвимость CVE-2022-47522 заключается в том, что аутентификация клиента и маршрутизация пакетов в сетях Wi-Fi работают независимо друг от друга. В то время как аутентификация основана на паролях, идентификаторах пользователей 802.1X и/или сертификатах, маршрутизация пакетов основана на MAC-адресах. Атакующий-инсайдер может воспользоваться эту особенность, отключив жертву и подключившись к сети, используя MAC-адрес жертвы и собственную учетную запись (см. рисунок 1). При этом любые пакеты, которые адресованы жертве, например, данные веб-сайта, будут получены злоумышленником.
В качестве уязвимых сетей исследователем определены следующие:
1. Корпоративные сети с активной функцией изоляции клиентов – посетителей и персонала;Атака, получившая название «MacStealer», позволяет осуществить перехват трафика в сетях Wi-Fi, где используются технологии защиты клиентов от атак друг на друга («изоляция клиентов»). Компания Cisco признала наличие уязвимости, заявив, что атаки, описанные в исследовании, могут быть успешно проведены в отношении продуктов Cisco Wireless Access Point и Cisco Meraki.
Уязвимость CVE-2022-47522 заключается в том, что аутентификация клиента и маршрутизация пакетов в сетях Wi-Fi работают независимо друг от друга. В то время как аутентификация основана на паролях, идентификаторах пользователей 802.1X и/или сертификатах, маршрутизация пакетов основана на MAC-адресах. Атакующий-инсайдер может воспользоваться эту особенность, отключив жертву и подключившись к сети, используя MAC-адрес жертвы и собственную учетную запись (см. рисунок 1). При этом любые пакеты, которые адресованы жертве, например, данные веб-сайта, будут получены злоумышленником.
В качестве уязвимых сетей исследователем определены следующие:
2. Публичные сети Wi-Fi Passpoint, использующие аутентификацию клиентов по технологии EAP-SIM;
3. Домашние WPA2 и WPA3 сети с активной изоляцией клиентов, в том числе сети с отдельными SSID для гостей и IoT устройств; использующие режим Multi-PSK, Identity PSK, per-station PSK;
4. Публичные Wi-Fi сети, использующие WPA3 SAE-PK.
Атака состоит из трех основных этапов:
– ожидание жертвы: атакующий ждёт, когда жертва подключится к уязвимой точке доступа (AP) и, например, отправит открытый HTTP-запрос на произвольный сервер;
– кража личности жертвы: атакующий отключает жертву от сети до того, как ответ сервера достигнет точки доступа. Затем атакующий подменяет MAC-адрес жертвы и подключается к сети, используя свои собственные учетные данные;
– перехват ответа: точка доступа связывает ключи шифрования злоумышленника с MAC-адресом жертвы, позволяя злоумышленнику получать любой ожидающий трафик, предназначенный для жертвы.
Важно отметить, что перехваченный трафик может быть защищен шифрованием более высокого уровня, например TLS. Тем не менее, даже если такое шифрование используется, уязвимость раскрывает IP-адреса внешних серверов, с которыми взаимодействует жертва, что может быть использовано атакующим для организации дальнейших атак.
Атака идентична для сетей с шифрованием WPA, WPA2 и WPA3. Это связано с тем, что атака не использует какие-либо криптографические свойства Wi-Fi, а использует особенность маршрутизации пакетов [3].
Атака идентична для сетей с шифрованием WPA, WPA2 и WPA3. Это связано с тем, что атака не использует какие-либо криптографические свойства Wi-Fi, а использует особенность маршрутизации пакетов [3].
Рисунок 1 – Схема атаки
В публикации также раскрывается механизм формирования очередей для буферизации кадров перед отправкой получателям и недоработки в управлении контекстом защиты для помещённых в очередь кадров. В качестве причины появления уязвимости называется отсутствие в стандарте 802.11 явных предписаний по управлению контекстом защиты для буферизированных кадров и отсутствие защиты для флага «power-save» в заголовке кадра, при помощи которого атакующий может манипулировать размещением кадров в очереди. Через манипуляцию кадрами для получателей, находящихся в спящем режиме (наличие флага «power-save» в заголовке), атакующий может добиться их буферизации и изменения контекста защиты, что приведёт к отправке кадров из очереди без применения шифрования или с шифрованием нулевым ключом [4].
Атака «MacStealer» может использоваться для обхода динамической проверки ARP (DAI) и, вероятно, других методов, предотвращающих атаки между клиентами.
Атака «MacStealer» может использоваться для обхода динамической проверки ARP (DAI) и, вероятно, других методов, предотвращающих атаки между клиентами.
CVE-2022-47522-PoC
CVE-2022-47522-PoC представляет собой скрипт для демонстрации эксплуатации уязвимости CVE-2022-47522 в условиях, приближенных к реальным [5].Для работы скрипта со стороны атакующего требуется ОС Linux (протестирован на Kali Linux 2025.1) и две сетевые Wi-Fi карты, одна из которых должна быть в режиме мониторинга («monitor mode»).
Для сборки и предварительной настройки скрипта следует выполнить следующие команды:
cd macstealer/research
./build.sh
cd ../../attacker
./pysetup.sh
Далее необходимо настроить конфигурацию сервиса wpa_supplicant на предмет соответствия настройкам сети жертвы путем редактирования файла attacker.conf по правилам синтаксиса, принятым в wpa_supplicant.conf.
Следующий шаг – добавление сетевых адаптеров в исключения для сервиса NetworkManager в файле /etc/NetworkManager/.conf:[keyfile]
unmanaged-devices=interface-name:{iface};interface-name:{mon_iface}
применение указанных изменений
sudo systemctl testart NetworkManager
активация Virtual Environment с правами суперпользователя:
sudo systemctl testart NetworkManagercd attacker
sudo systemctl testart NetworkManagersudo su
sudo systemctl testart NetworkManagersource venv/bin/activate
Со стороны жертвы для наглядности атаки автором скрипта предложено использовать скрипт «victim.py», который формирует запросы типа ICMP Echo Request и HTTP Get Request при каждом нажатии клавиши Enter
в командной строке терминала.
./attacker.py -i $iface -m $mon_iface -v $victimMAC
После запуска указанной команды, скрипт выполняет следующие действия:
– подключение атакующего к указанной в attacker.conf целевой AP для обеспечения быстрого переподключения к этому устройству в дальнейшем;– фиксацию BSSID и номера канала AP;
– отключение от AP;
– подмена MAC-адреса сетевого интерфейса атакующего на MAC-адрес жертвы;
– формирование фрейма для деаутентификации жертвы на следующем этапе атаки.
При успешном завершении указанных действий в терминале отображается текст-приглашение «Press enter to start attack:» По заявлению автора скрипта, инициировать продолжение атаки нажатием клавиши необходимо сразу же после отправки запроса жертвой или одновременно с ней.
При этом скрипт автоматически выполняет следующие действия:
– одновременное направление фреймов деаутентификации в адрес AP и жертвы с целью её принудительного отключения от сети;
– подключение атакующего к сети от имени жертвы, используя её MAC-адрес;
– отображение содержимого предназначенной жертве информации.
Для экспериментальной проверки скрипта используем тестовый стенд, состоящий из точки доступа TP-LINK Archer AX73 и клиентского устройства на базе ноутбука под управлением Linux Mint. Для инъекции пакетов используем Wi-Fi адаптер Alfa AWUS036ACH. Для сборки скрипта потребовалось установить недостающие библиотеки:
sudo apt-get install libssl-dev libdbus-1-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev
В начале эксперимента запросы к внешним сервисам со стороны клиентского устройства специально не формировались. При этом веб-браузер Chrome был запущен в фоновом режиме с несколькими активными вкладками произвольных web-ресурсов.
./attacker.py -i wlan0 -m wlan1 -v 3c:f0:11:***
Рисунок 2 – Результат атаки на роутер TP-LINK с использованием уязвимости CVE-2022-47522.
После серии запуска эксплойта успешно перехвачены пакеты от сервиса OpenDNS, выбранного в настройках веб-браузера Chrome клиентского устройства в роли сервиса DoH (Рисунок 2).
Далее на клиентском устройстве произведён запрос на HTTP-ресурс указанного сервиса по адресу 146.112.41.2 через веб-браузер Chrome. Успешно перехвачено содержание ответа от сервера в виде html-кода, предназначенного клиентскому устройству (Рисунок 3).Рисунок 3 – Перехват ответа от сервера и его содержимое.
ЗАКЛЮЧЕНИЕ
В статье рассмотрена уязвимость беспроводных сетей стандарта Wi-Fi CVE-2022-47522, проведена практическая проверка возможности атаки посредством скрипта CVE-2022-47522-PoC.
В результате проведённой работы экспериментально подтверждено наличие указанной уязвимости в процедуре маршрутизации в исследуемом роутере TP-LINK Archer AX73 v1, получен доступ к информации клиентского устройства.СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. D. Schepers, A. Ranganathan, M. Vanhoef. Framing Frames: Bypassing Wi-Fi Encryption by Manipulating Transmit Queues. URL: https://papers.mathyvanhoef.com/usenix2023-wifi.pdf.
2. USENIX Security '23 Summer Accepted Papers // USENIX Security '23. URL: https://www.usenix.org/conference/usenixsecurity23/summer-accepted-papers.3. Do Son. A Closer Look at the MacStealer Attack and How to Protect Your Wi-Fi Network. CVE-2022-47522: New Security Vulnerability in 802.11 Standard. URL: https://securityonline.info/cve-2022-47522-new-securityvulnerability-in-802-11-standard.
4. Атака MacStealer, позволяющая перехватывать трафик в Wi-Fi // OpenNet. URL: https://www.opennet.ru/opennews/art.shtml?num=58881.
5. CVE-2022-47522-PoC // Github, URL: https://github.com/toffeemutt/CVE-2022-47522-PoC.