• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Уязвимости CVE-2019-16275 и CVE-2019-9496 в реализации пакета Wi-Fi Framework.

evdo

Главный редактор
Модератор
Регистрация
18.08.2024
Сообщения
95
Реакции
79
Источник https://xss.pro
Автор evdo

Уязвимости «AP mode PMF disconnection protection bypass» CVE-2019-16275 и «SAE confirm missing state validation in hostapd» CVE-2019-9496 в реализации пакета Wi-Fi Framework.
В апреле 2019 года исследователь Mathy Vanhoef из Нью-Йоркского университета Абу-Даби совместно с коллегами выпустили пять новых уязвимостей WPA3 под общим названием Dragonblood [1]. В 2020 году исследователем представлена публикация «Protecting WiFi Beacons from Outsider Forgeries» [2], в которой приведены данные о недоработках стека Wi-Fi, связанных с недостаточной защитой кадров Beacon.

Domien Schepers совместно c Mathy Vanhoef разработали фреймворк для проведения экспериментов с Wi-Fi [3]. На базе фреймворка возможно реализовать фаззеры, автоматизировать эксперименты, запустить наборы тестов и проверить теоретические атаки на практике. Фреймворк позволяет упростить проведение атак и/или тестов с использованием функционала Wi-Fi ОС Linux. Например, он может подключаться к защищенным сетям Wi-Fi, транслировать кадры Beacon. Фреймворк выполняет свои функции поверх демона пользовательского пространства hostap (см. рисунок 1).
1.png
Рисунок 1 – Схема фреймворка
Фреймворк позволяет на программном уровне имитировать точку доступа посредством функционала Linux c WPA2/WPA3/EAP-pwd, например, для проверки атаки переустановки ключей (KRACK). Для проверки безопасности WPA3 фреймворк позволяет запустить несколько эксплойтов. Существует два основных вектора атаки: атаки типа «отказ в обслуживании», несмотря на использование защиты кадров управления (MFP), и сетевые атаки на открытый ключ SAE (SAE-PK).

Для проверки, подвержено ли устройство угрозе атаки, разработчиками фреймворка представлено четыре теста (эксплойта).

«Example-pmf-deauth» проверяет точку доступа на наличие уязвимости CVE-2019-16275[4], которая заключается в недостаточной проверке демоном точки доступа hostapd адреса отправителя для полученных кадров управления.
В WPA3 использование «защищённых кадров управления» (Protected Management Frames, PMF) является обязательным. Эта функция шифрует и аутентифицирует кадры управления. Например, кадры деаутентификации, что предотвращает атаки типа «отказ в обслуживании» (DoS). Кроме того, кадры управления с групповой адресацией защищены с помощью отдельного «протокола целостности широковещательной передачи» (Broadcast Integrity Protocol, BIP). Эксплуатируя уязвимость CVE-2019-16275 производится отправка кадра, из-за которого устройства ошибочно полагают, что отключены от сети, даже если PMF является частью правил подключения. Таким образом можно отключить от точки доступа уязвимых клиентов [5].

«Dos-beacon-csa» проверяет, вызывают ли незащищенные кадры Beacon с уведомлением о переключении каналов (Channel Switch Announcement, CSA) отключение клиента.
Сети Wi-Fi периодически транслируют кадры Beacon, чтобы сообщить ближайшим клиентам о своём присутствии и параметрах обслуживания (SSID, частотный канал, маркеры для синхронизации устройств по времени, поддерживаемые скорости, QoS и др.). Отсутствие защиты и подделка Beacon кадров приводит к деаутентификации клиентов от сети, принудительному переключению их на другой канал, задержке передачи данных (частичный MitM), разрядке батареи IoT-устройств из-за отправки дополнительных запросов на получение буферизованных данных.

Кадры Beacon начинаются с заголовка, который содержит, в числе прочего, адрес отправителя кадра. За заголовком следуют фиксированные параметры (рисунок 2), наиболее важными являются метка времени и интервал. Метка времени содержит точное время передачи Beacon, а интервал определяет, когда будет отправлен следующий Beacon. Далее в кадре Beacon содержится динамическое количество информационных элементов (IE). Сначала следует идентификатор элемента, который обозначает его тип, затем следуют его длина и содержимое. Согласно требованиям стандарта Wi-Fi [6], если получатель не распознает тип IE, он проигнорирует этот IE и продолжает обработку следующего IE.

Кадр Beacon не относится к защищаемой при помощи PMF информации.
2.png

Рисунок 2 – Структура кадра Beacon
Сообщение о смене канала – информационный элемент, который включается в кадры типа Beacon и Action, чтобы оповестить клиентов о намерении точки доступа сменить канал. Атакующий может злоупотребить этим, подделать кадр Beacon с элементом CSA и заставить подключенных клиентов переключиться на другой канал. Это приводит к тому, что целевой клиент теряет соединение с точкой доступа. Даже если клиент в итоге переключается обратно на старый канал, когда точка доступа не найдена на новом канале, непрерывная подделка кадров о переключении каналов будет препятствовать его работе.

«Dos-beacon-bandwidth» проверяет, приведет ли подделка кадра Beacon, указывающего вторичный канал полосы пропускания ниже основного канала, к отключению клиента (поскольку такая конфигурация пропускной способности недействительна).
Linux-ядро клиента, а точнее MLME, обрабатывает любые изменения конфигурации полосы пропускания, а также проверяет актуальность и поддержку этих конфигураций (например, наличие аппаратной поддержки оборудованием и соответствие нормативным ограничениям). Например, IEEE 802.11n допускает удвоение полосы пропускания (40 МГц вместо 20 МГц по умолчанию), что приводит к чуть более чем двукратному увеличению скорости передачи данных. Точка доступа объявляет о любых таких возможностях в элементе «высокой пропускной способности» (HT) и информационных элементах (IE) в кадре Beacon. Однако существуют ограничения на то, какие каналы можно использовать для расширения полосы пропускания. Например, HT40 (который определяет полосу как 20 МГц, так и 40 МГц со вторичным каналом ниже основного канала) можно использовать только на каналах 5-13 в диапазоне 2,4 ГГц. Авторы фреймворка обнаружили, что при смене полосы пропускания точки доступа через кадр Beacon на значение, не поддерживаемое ядром Linux, клиент не может переключиться на новую конфигурацию и отключается от сети. В качестве примера рассмотрим канал шириной 40 МГц в полосе частот 2,4 ГГц с использованием IEEE 802.11g и IEEE 802.11n. В такой конфигурации точка доступа будет объявлять первичный и вторичный каналы для обеспечения полосы пропускания 40 МГц. В HT-элементе точка доступа указывает, находится ли вторичный канал выше или ниже основного канала. Когда злоумышленник искажает этот параметр, например, чтобы перевернуть вторичный канал на противоположный (например, ниже основного канала), ядро клиента не будет следовать запрошенному изменению полосы пропускания, что приведёт к отключению клиента от сети и передаче кадра деаутентификации.

«Dos-sae-flood» проверяет точку доступа на наличие уязвимости CVE-2019-9496 [7], которая заключается в отсутствии проверки состояния в процедуре рукопожатия WPA3 – SAE. Злоумышленник может принудительно завершить процесс hostapd, выполнив атаку типа «отказ в обслуживании».
В WPA3 режим «Pre-Shared Key» (PSK) WPA2 заменен на «Simultaneous Authentication of Equals» (SAE) (см. рисунок 3), который предлагает более надежную аутентификацию на основе парольной фразы. Сама парольная фраза больше не используется для получения ключа, его получение основано на криптографии на эллиптических кривых (Elliptic-curve cryptography, ECC).
3.png

Рисунок 3 – Кадр управления Wi-Fi Beacon с SAE
Основным отличием подключения по WPA3 является наличие двух дополнительных кадров аутентификации. На рисунках 4, 5 представлена схема подключения WPA3 и подробная схема аутентификации.

4.jpg

Рисунок 4 – Схема подключения WPA3

5.png

Рисунок 5 – Схема аутентификации WPA3
Все четыре кадра аутентификации для WPA3-Personal содержат информацию для расчета Pairwise Master Key (PMK) на основе криптографии на эллиптических кривых. STA и AP должны знать вычисленный скаляр и точку кривой (элемент конечного поля). Обмен этой информаций происходит в первых двух кадрах аутентификации (см. рисунок 6, 7):​

6.png

Рисунок 6 – WPA3 Authentication 1/4

7.png

Рисунок 7 – WPA3 Authentication 2/4​

Последние два кадра аутентификации содержат токен в качестве подтверждения (см. рисунок 8, 9).
8.png

Рисунок 8 – WPA3 Authentication 3/4

9.png

Рисунок 9 – WPA3 Authentication 4/4
Если информация в подтверждении верна, ассоциация/подключение будет продолжено.

Во время атаки «Dos-sae-flood» предпринимаются попытки блокировать работу точки доступа (AP) потоком сообщений SAE Commit (на рисунке 5 – сообщение «Authentication (SAE Commit)»). Сообщения отправляются с разных MAC-адресов, отличающихся последним байтом. Точка доступа в ответ вычисляет элемент пароля (Password Element, PE) (см. рисунок 10), что требует вычислительных ресурсов AP и может быть использовано злоумышленником для их исчерпания [6][8]. Чтобы подавить такие атаки или снизить их влияние, SAE включает механизм защиты от засорения (anti-clogging) [9]. На практике данный механизм можно обойти путем сужения диапазона MAC-адресов, с которых производится атака.​
10.png

Рисунок 10 – Упрощенная схема SAE Authentication

Экспериментальная проверка эксплойтов Wi-Fi Framework
Для работы фреймворка со стороны атакующего требуется ОС Linux (протестирован на Kali Linux 2025.1) и сетевая Wi-Fi карта, которая поддерживает режим мониторинга («monitor mode»).
Перед выполнением тестов необходимо проверить, установлены ли следующие пакеты:
apt-get update
apt-get install git make gcc python3-venv net-tools
apt-get install libdbus-1-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev libssl-dev

В файле /setup/requirements.txt указать следующее:​
pbkdf2==1.3
scapy==2.5.0
pycryptodome==3.9.7
sympy==1.5.1
Crypto==1.4.1
setuptools==76.1.0

Затем следует установить пакеты, активировать виртуальное окружение Python и указать параметры атакуемой точки доступа SSID, password в файле wpa3-personal-pmf.
Для проведения атак нет необходимости знать пароль точки доступа, но он требуются фреймворку для работы.​
cd ~/wifi-framework/
source setup/venv/bin/activate
cd setup
./load-config.sh wpa3-personal-pmf

Для экспериментальной проверки эксплойтов используем тестовый стенд, состоящий из следующего оборудования:
– точка доступа TP-Link AX73 (версия прошивки 1.0.1);
– точка доступа Huawei WS7200 (версия прошивки 10.0.5.15);
– точка доступа Huawei WS7100 (версия прошивки 2.0.15);
– точка доступа Keenetic KN-1011 (версия прошивки 3.6.3);
– клиентские устройства iPhone 11, Samsung Galaxy S20, Xiaomi Poco X3 Pro;
– Wi-Fi адаптер для инъекции пакетов ALFA AWUS051NH.

Команда для запуска атаки example-pmf-deauth:
sudo ./run.py wlan1 example-pmf-deauth
Проверка показала, что к атаке деаутентификации (см. рисунок 11) оказалась уязвима точка доступа Huawei WS7200 в сочетании со смартфонами Xiaomi Poco X3 Pro и iPhone 11, а также точка доступа TP-Link AX73 и смартфон Xiaomi Poco X3 Pro в качестве клиентского устройства. Подробные результаты представлены в таблице 1.​
Таблица 1 – Результаты работы example-pmf-deauth
AP/Клиент​
Xiaomi Poco X3 Pro​
iPhone 11​
Samsung Galaxy S20​
TP-Link AX73
+
–​
–​
Huawei WS7200
+
+
–​
Huawei WS7100
–​
–​
–​
Keenetic KN-1011
–​
–​
–​


11.png

Рисунок 11 – Ход выполнения атаки example-pmf-deauth
Команда для запуска атаки dos-beacon-csa:
sudo ./run.py wlan1 dos-beacon-csa

В результате данной атаки удалось отключить от точки доступа Huawei WS7200 все клиентские устройства из настоящего исследования. Подделка кадров Beacon с элементом CSA других роутеров не вынудила клиентов отключиться от точки доступа. Подробные результаты указаны в таблице 2.
Таблица 2 – Результаты работы dos-beacon-csa
AP/Клиент​
Xiaomi Poco X3 Pro​
iPhone 11​
Samsung Galaxy S20​
TP-Link AX73
–​
–​
–​
Huawei WS7200
+
+
+
Huawei WS7100
–​
–​
–​
Keenetic KN-1011
–​
–​
–​

Перед запуском атаки dos-beacon-bandwidth необходимо выполнить команды:​
cd setup
unlink hostapd.conf
ln -s hostapd-wpa3-personal-pmf-bw.conf hostapd.conf
Команда для запуска атаки:
sudo ./run.py wlan1 dos-beacon-bandwidth

В результате данной атаки удалось отключить от точки доступа Huawei WS7200 все клиентские устройства из данного исследования. Это означает, что её клиенты отклоняют кадры Beacon с нерабочей конфигурацией пропускной способности. Подробные результаты указаны в таблице 3.

Таблица 3 – Результаты работы dos-beacon-bandwidth​
AP/Клиент​
Xiaomi Poco X3 Pro​
iPhone 11​
Samsung Galaxy S20​
TP-Link AX73
–​
–​
–​
Huawei WS7200
+
+
+
Huawei WS7100
–​
–​
–​
Keenetic KN-1011
–​
–​
–​

Команда для запуска атаки dos-sae-flood (см. рисунок 12):
sudo ./run.py wlan1 dos-sae-flood

Выяснилось, что к этой атаке уязвимы абсолютно все представленные в экспериментах роутеры, несмотря на механизм «anti-clogging» или защиту от атак засорения, которая встроена в SAE [9]. Подробные результаты указаны в таблице 4.

Таблица 4 – Результаты работы dos-sae-flood​
AP/Клиент​
Xiaomi Poco X3 Pro​
iPhone 11​
Samsung Galaxy S20​
TP-Link AX73
+
+
+
Huawei WS7200
+
+
+
Huawei WS7100
+
+
+
Keenetic KN-1011
+
+
+


12.png

Рисунок 12 – Отправка пакетов SAE Commit на точку доступа

ЗАКЛЮЧЕНИЕ
В ходе работы исследован фреймворк WiFi Framework с эксплойтами для проверки устройств с поддержкой WPA3 на наличие уязвимостей CVE-2019-16275 и CVE-2019-9496.
В состав фреймворка входит 4 эксплойта.
Example-pmf-deauth (CVE-2019-16275) позволил определить, что среди всех представленных точек доступа, AP Huawei WS7200 оказалась уязвима и атака вызывает деаутентификацию клиентов. Также уязвима оказалась связка роутера TP-Link и смартфона Xiaomi.
Dos-beacon-csa позволил отключить от точки доступа Huawei WS7200 все клиентские устройства. Аналогичные результаты получены для эксплойта dos-beacon-bandwith.
Установлено, что все представленные точки доступа уязвимы к DoS-атаке dos-sae-flood (CVE-2019-9496), несмотря на механизм «anti-clogging» и защиту от атак засорения, которая встроена в процедуру рукопожатия WPA3 SAE.
Вместе с тем результативность атак зависит от версии прошивок как точки доступа, так и клиентского устройства.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

[1] Mathy Vanhoef. Dragonblood: Analyzing the Dragonfly Handshake of WPA3 and EAP-pwd. URL: https://papers.mathyvanhoef.com/dragonblood.pdf
[2] Mathy Vanhoef. Protecting Wi-Fi Beacons from Outsider Forgeries. URL: https://papers.mathyvanhoef.com/wisec2020.pdf
[3] Domien Schepers. Wi-Fi Framework. URL: https://github.com/domienschepers/wifi-framework
[4] CVE-2019-16275 Detail. National Vulnerability Database. URL: https://nvd.nist.gov/vuln/detail/CVE-2019-16275
[5] Debian CVE-2019-16275 [SECURITY] [DLA 1922-1] wpa security update. URL: https://lists.debian.org/debian-lts-announce/2019/09/msg00017.html
[6] IEEE Standard 802.11.
[7] CVE-2019-9496 Detail. National Vulnerability Database. URL: https://nvd.nist.gov/vuln/detail/CVE-2019-9496
[8] Neil Dalal, Nadeem Akhtar, Anubhav Gupta, Nikhil Karamchandani, Gaurav S. Kasbekar, and Jatin Parekh. A Wireless Intrusion Detection System for 802.11 WPA3 Networks. URL: https://arxiv.org/pdf/2110.04259v1.pdf
[9] Efstratios Chatzoglou, Georgios Kambourakis, Constantinos Kolias / Journal of Information Security and Applications 64 (2022).
URL: https://www.researchgate.net/public...WiFi_connection_today_DoS_attacks_on_WPA3-SAE
 
Последнее редактирование модератором:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх