By @INTER_KILL
Анализ безопасности Wi-Fi: атаки на WPA2-Personal / Enterprise и методология взлома WPA3
Подробное исследование методологии взлома протоколов WPA2-Personal / Enterprise и WPA3: какие атаки и уязвимости существуют, и какой инструментарий применяется для их эксплуатации.
Статья написана одним из наших стажеров в рамках подготовки к сертификации по OSWP, и высоко оценена практикующими пентестерами. Все эксперименты проводились на ноутбуке с Kali Linux, при помощи адаптера TP-Link Archer T3U Plus, беспроводного роутера Keenetic-8990 и смартфона в качестве клиента.
Краткий экскурс в историю
Существует четыре распространенных протокола обеспечения безопасности Wi-Fi сетей:
- WEP (Wired Equivalent Privacy): предоставляет базовую защиту данных путем шифрования при помощи алгоритма RC4, но считается уязвимым и устаревшим.
- WPA (Wi-Fi Protected Access): популярное семейство протоколов, разработанных для замены WEP. WPA обеспечивает более надежное шифрование и аутентификацию, поскольку каждое устройство, подключенное к сети, имеет собственный уникальный ключ для шифрования и дешифрования данных. Протокол включает в себя методы WPA-Personal и WPA-Enterprise.
Метод предназначен для защиты беспроводных сетей с использованием предварительно согласованного пароля или общего ключа PSK (Pre-Shared Key), который должны знать все устройства и пользователи, чтобы получить доступ к сети.
Вместо PSK здесь используется аутентификация на сервере RADIUS (Remote Authentication Dial-In User Service). Сервер проверяет учетные данные пользователей и управляет всеми процессами централизованно. Снижение рисков компрометации учетных данных происходит благодаря тому, что каждый пользователь имеет свой собственный идентификационный ключ для доступа к сети.
Этот вариант часто используется для обеспечения безопасности Wi-Fi для домашних сетей и небольших офисов.
В основном используется для защиты корпоративных сетей.
- Протокол WPA2 представляет собойулучшенную версию WPA, с использованием AES-шифрования и внедрением сразу нескольких механизмов защиты от атак: 4-way Handshake и Counter Mode Cipher Block Chaining Message Authentication Code Protocol (CCMP).
- WPA3, в свою очередь, представляет новый стандарт безопасности, совместимый с устройствами, поддерживающими предыдущие версии протоколов. Он предоставляет индивидуальное шифрование каждому устройству, позволяя использовать более безопасные методы установления соединения и защиту от атак перебора паролей.
Обеспечение конфиденциальности данных в беспроводной сети на уровне, сравнимом с проводными сетями
Функционирует на стандарте 802.11i, но для его работы требуется новое аппаратное ПО, которое обеспечивает более надежную защиту беспроводной сети
Современный стандарт, анонсированный и поддерживаемый Wi-Fi Alliance
WPA-PSK и WPA-Enterprise (WPA-802.1X)
WPA2-Personal WPA2- Enterprise
Технологии обеспечения целостности данных
Cipher Block Chaining Message Authentication Code (based on AES)
256-bit Broadcast/Multicast Integrity Protocol Galois Message Authentication Code (BIP-GMAC-256)
Протоколы аутентификации и обмена ключами
Elliptic Curve DiffieHellman (ECDH) exchange and Elliptic Curve Digital Signature Algorithm (ECDSA)
Как проводятся Wi-Fi пентесты
Во время оценки безопасности беспроводных сетей нужно следовать определенной методологии и стандартам — такой подход помогает систематизировать информацию о потенциальных уязвимостях: какими потенциальными точками доступа может воспользоваться злоумышленник, какие данные могут быть подвержены риску утечки. Стандартизация в подходе также помогает, когда есть законодательные требования и регуляторные стандарты, касающиеся безопасности беспроводных сетей и нужно понять, действительно ли компания соблюдает эти требования.
Классический подход подразумевает прохождение Wireless Security Assessment по четырем этапам: планирование, разведка, атака и отчет. Остановимся только на важных аспектах нескольких из них, поскольку общую информацию легко найти в сети:
- на этапе планирования пентестер должен соблюсти две особенности — продумать план и не забыть получить согласование клиента. Соглашение о неразглашении (NDA) способно обезопасить от негативных последствий в будущем и позволяет рассчитать свои силы. Благодаря этому, приступив к разведке, пентестер будет понимать, какая часть сети должна подвергаться оценке, какая информация будет собрана, какие методы работы он будет использовать, и, главное, что ему за это ничего не будет :)
- На этапе разведки, пентестер уже должен владеть информацией обо всех беспроводных сетях и устройствах, чтобы разработать стратегию проведения атаки. Этот процесс включает в себя обнаружение и документирование всех беспроводных сетей, включая скрытые (не конфигурированные SSID). Важной частью этой фазы является составление карты диапазона беспроводных сетей, определение, на каком расстоянии они доступны и существуют ли места, с которых злоумышленник может легко осуществить атаку.
- Фаза атаки подразумевает, что пентестер может использовать обнаруженные уязвимости и слабые места в беспроводной сети для взлома или доступа к сети. Важно выполнить эксплуатацию уязвимости таким образом, чтобы она была как можно менее заметной.
Разбор атак на WPA2-PSK
Атаки на протокол WPA2-PSK представляют серьезную угрозу безопасности для беспроводных сетей. В рамках этой группы атак проводится анализ на уязвимости и слабые места в механизмах аутентификации и шифрования, используемых в сетях WPA2-PSK.
Cracking the 4-way handshake
Атака направлена на поиск слабых мест в процессе установления безопасного соединения между устройством и беспроводным маршрутизатором. Здесь можно попытаться взломать 4-стороннее рукопожатие, которое используется для аутентификации и установления ключа для шифрования данных.
Основная цель процесса 4-way handshake — создание уникального ключа для каждой сессии, который называется Pairwise Transient Key (PTK). Для создания этого ключа используется предварительно согласованный ключ Pre-Shared Key (PSK) и еще несколько параметров:
- SSID сети;
- Authenticator Nounce (ANounce) — случайное число, генерируемое точкой доступа;
- Supplicant Nounce (SNounce) — случайное число, генерируемое клиентским устройством;
- MAC-адрес точки доступа;
- MAC-адрес клиентского устройства Wi-Fi.
PTK создается с использованием всех этих параметров и используется для шифрования данных между точкой доступа и клиентским устройством. Это позволяет обеспечить безопасность передачи данных в беспроводной сети, так как каждая сессия использует свой уникальный ключ.
Как выглядит процесс создания PTK пошагово:
- Пользователь вводит WPA-PSK пароль, а также SSID сети;
- Данные проходят через функцию PBKDF2 (Password-Based Key Derivation Function), которая использует их для вычисления 256-битового общего ключа Pairwise Master Key (PMK);
- PMK является важной частью PTK и используется для проверки контрольной суммы целостности сообщения (MIC) в одном из пакетов рукопожатия;
- Если MIC совпадает, то предполагаемый пароль из словаря оказывается правильным;
- Важно отметить, что PBKDF2 обеспечивает безопасное создание PMK, и в случае успешного взлома пароля из словаря, PTK может быть использован для дешифрования данных в зашифрованных Wi-Fi сетях. Поэтому для защиты от таких атак важно использовать сложные и уникальные пароли.
Говоря непосредственно об атаке Cracking the 4-way handshake, удобно разбить ее на 5 логических этапов:
- Постановка беспроводной сетевой карты в режим мониторинга: при помощи команды инструментов
airmon-ng check kill && airmon-ng start wlan0
мы убиваем процессы, которые нам мешают:airmon-ng start wlan0
- Идентификация цели: запускаем сканирование целей при помощи
wash –i wlan0
чтобы увидеть беспроводные сети, которые находятся в нашем радиусе действия;
- Запуск перехвата сетевого трафика для выбранной сети осуществляется через
airodump-ng –c 1 –bssid E4:18:6B:03:EC:0C –w capture wlan0
:
- E4:18:6B:03:EC:0C — BSSID точки доступа;
- CH 1 — канал, на котором работает точка доступа Wi-Fi;
- WPAcrack файл в который запишется handshake;
- mon0 — сетевой адаптер в режиме мониторинга.
- Отключение клиента от сети или ожидание, пока мы деаутентифицируем его через
aireplay-ng -0 1 -a E4:18:6B:03:EC:0C -v EA:23:AB:8B:98:E1 wlan0
- Если деаутентификация пройдет успешно, клиент попытается повторно подключиться к сети Wi-Fi. Точка доступа (AP) и клиент начнут обмен специальными пакетами, включая 4-way handshake, содержащий информацию, необходимую для взлома пароля. Используя
aircrack-ng –w /usr/share/wordlists/wifite.txt –b
E4:18:6B:03:EC:0C capture-10.cap мы сможем последовательно проверить каждый пароль из словаря на соответствие захваченному 4-way handshake. Если aircrack-ng найдет соответствие, то это и будет пароль сети Wi-Fi.
WPS PIN Bruteforce
Еще одна потенциальная уязвимость в протоколе WPA2-PSK — возможность атак на систему защиты Wi-Fi Protected Setup (WPS). Такие атаки направлены на обнаружение проблем в процессе установления безопасного соединения между устройством и беспроводным маршрутизатором с использованием WPS. Цель исследования здесь — понимание того, как можно получить доступ к беспроводной сети в обход традиционных методов аутентификации.
Процесс организации атаки выглядит следующим образом:
- Перевод беспроводной сетевой карты в режим мониторинга;
- Запуск сканирования для выявления целевой сети с активированным WPS;
- Атака на WPS PIN методом брутфорса (с использованием Reaver):
Команда reaver -i -b -vv
приводит к соответствующему результату:
С тем же PIN при помощи reaver -i -b -vv
мы можем провести аутентификацию в сети.
Здесь следует сделать небольшое отступление: процесс настройки WPS включает использование восьмизначного PIN, который может состоять только цифр от 0 до 9. На первый взгляд, 8-значный PIN может представлять собой 100 000 000 различных комбинаций (поскольку каждая из восьми позиций может содержать одну из десяти цифр).
Однако, фактическое количество уникальных комбинаций сокращается из-за особенностей валидации этого PIN в реальной реализации WPS. В частности, последний символ PIN-кода вычисляется как контрольная сумма от предыдущих семи символов. Таким образом, предпоследний символ остается единственным неизвестным значением, а остальные символы можно подобрать перебором. Кроме того, первые четыре символа и следующие три символа проверяются независимо друг от друга.
Из-за этой особенности, общее число действительных комбинаций, которые могут быть проверены при брутфорс-атаке на WPS PIN, сокращается всего до 11 000 возможных комбинаций, что делает эту атаку достаточно простой.
PMKID Dump
Pairwise Master Key Identifier Dump (PMKID) — это процесс получения и сохранения PMKID из беспроводной сети, работающей по протоколу WPA/WPA2. PMKID — это часть ключевой информации, используемой для установления безопасного соединения между клиентским устройством и точкой доступа. Этот процесс напоминает переключение между ячейками в сотовых сетях. Иногда он сказывается на стабильности соединения, так как каждый раз, когда клиент выходит из диапазона одной точки доступа и переходит к другой, происходит новое 4-стороннее рукопожатие. Для снижения задержек при таких переходах существует функция кэширования Pairwise Master Key (PMK).
Многие маршрутизаторы кэшируют PMKID, чтобы в следующий раз клиент мог повторно аутентифицироваться без выполнения рукопожатия. Маршрутизаторы с этой функцией включают PMKID в кадр EAPOL. Здесь уже возможны варианты: например можно попытаться перехватить PMKID и запустить атаку методом подбора пароля для угадывания PMK, необходимого для аутентификации в сети.
Сама атака на PMKID требует доступа к беспроводной сети, а для ее осуществления нужен определенный инструментарий. Как выглядит атака:
- Переводим беспроводную сетевую карту в режим мониторинга;
- Сканируем сеть и идентифицируем цели;
- Извлекаем PMKID (с помощью hcxdumptool):
hcxdumptool –o --enable_status=1 –filterlist_ap= --filtermode=2
- Взламываем PMKID (с помощью (hcxpcaptool, Hashcat):
- спомощью
hcxpcaptool –z
конвертируем ранее «сдампленный» хэш в Hashcat-readable format; - осуществляем взлом через
hashcat -m 16800 --force –show
Разбор атак на WPA2-Enterprise
Атаки на системы WPA2-Enterprise нацелены на анализ уровня безопасности, предоставляемого серверами аутентификации и механизмами управления ключами в сложных корпоративных сетях. Важно отметить, что среди целей могут быть и физические атаки на сетевое оборудование.
WPA-Enterprise также известен как стандарт WPA-EAP или WPA-802.1X. Он использует протокол Extensible Authentication Protocol (EAP) для делегирования аутентификации клиентов беспроводной сети на сервер RADIUS. EAP предоставляет набор стандартизированных функций и правил для реализации конкретных методов аутентификации, известных как EAP-методы. Среди таких методов могут быть как аутентификация на основе сертификатов, так и на основе учетных данных. Вот несколько примеров EAP-методов:
- EAP-TLS — метод является оригинальным стандартом EAP аутентификации и широко поддерживается, он позволяет аутентификацию только на основе сертификатов.
- PEAP был разработан компаниями Microsoft, Cisco и RSA Security и использует туннельное шифрование TLS для передачи EAP-данных.
- EAP-TTLS представляет собой расширение TLS для обеспечения EAP через TLS-туннель и также широко поддерживается в корпоративной среде, за исключением Microsoft.
- LEAP был разработан Cisco до установления стандарта и не имеет нативной поддержки в продуктах Microsoft, в настоящее время считается устаревшим.
- EAP-FAST был разработан Cisco как замена LEAP.
Самыми распространенными реализациями протокола EAP являются EAP-PEAP и EAP-TTLS. Поскольку с технической точки зрения они очень похожи друг на друга, стоит сосредоточиться, в первую очередь, на EAP-PEAP.PEAP использует сертификаты на стороне сервера для проверки подлинности сервера RADIUS. Почти все атаки на PEAP связаны с неправильной настройкой проверки сертификатов.
Рассмотрим основные виды атак на системы WPA2-Enterprise: Evil Twin (Stealing Credentials) и Online Bruteforce.
Evil Twin (Stealing Credentials)
Атака включает в себя создание поддельной точки доступа, которая имитирует целевой SSID, чтобы привлечь клиентов и заставить их выполнить аутентификацию во второй фазе с поддельным RADIUS-сервером. Таким образом мы можем попытаться захватить учетные данные в открытом виде или challenge-responseданные, используемые в процессе внутренней аутентификации. Следует отметить, что эта атака не сработает против клиентов, которые:
- используют аутентификацию на основе сертификатов (например, EAP-TLS или PEAP с EAP-TLS), так как здесь отсутствуют учетные данные, которые можно украсть;
- проверяют сертификат сервера во время первой фазы аутентификации.
Процесс организации атаки выглядит следующим образом:
- Установка беспроводной сетевой карты в режим мониторинга;
- Идентификация цели — сканирование сети и поиск клиентов, использующих целевую сеть;
- Создание поддельной точки доступа (с использованием eaphammer):
Используем./eaphammer --cert-wizard
для того, чтобы сгенерировать self-signed сертификат, а затем создаем Evil Twin с интересующими нас параметрами ./eaphammer --bssid --essid --channel 2 --wpa 2 --auth peap --interface wlan0 –creds
клиенты начнут отключаться от целевой сети и подключаться к нашей точке доступа. Устройства клиентов, подвергшихся атаке, которые не настроены на отклонение недействительных сертификатов, получат сообщение, подобное следующему:
На этом этапе мы ожидаем, что хотя бы один сотрудник атакуемой корпоративной сети точно согласится с уведомлением из примера выше. Также часто встречаются устройства, настроенные на автоматическое принятие недействительных сертификатов. Если повезло, вы увидите в терминале имена пользователей и данные challenge-response:
используя команду asleap –C -R -W
мы получаем NT-хэш и пароль.
Дальнейшие действия для сбора учетных данных в чистом виде могут включать использование других методик Evil Twin, например EAP-downgrade или Captive Portal.
Online Bruteforce
Несмотря на то, что сети WPA-Enterprise считаются более безопасными, чем сети WPA-PSK, они нередко подвержены атакам онлайн-перебора паролей.
Процесс организации такой атаки выглядит следующим образом:
- Установка беспроводной сетевой карты в режим мониторинга;
- Идентификация цели — сканирование сети и поиск клиентов, использующих целевую сеть;
- Создание листинга с возможными именами пользователей и паролями, которые могут быть использованы для аутентификации — здесь могут помочь различные OSINT методы. Для осуществления этого шага я использовал
air-hammer
:
./air-hammer.py -i wlan0 -e -u -P -1
Поскольку учетные данные WPA-Enterprise часто представляют собой учетные данные пользователя домена, можно использовать обнаруженные учетные данные, чтобы получить доступ к дополнительным системам корпоративной сети.
Разбор атак на WPA3
В январе 2018 года Wi-Fi Alliance объявила о разработке WPA3, который должен был стать заменой WPA2, считавшегося уязвимым для Key Reinstallation Attack (KRACK-атак). Новый стандарт использовал 128-битное шифрование в режиме WPA3-Personal или 192-битное шифрование в режиме WPA3-Enterprise. Атаковать его сложнее из-за наличия современного протокола установки ключей (SAE) и безопасного рукопожатия Dragonfly Key Exchange. Другие важные функции безопасности WPA3 включают:
- защиту клиентских фреймов MFP, которая предотвращает несанкционированное взаимодействие с внешними источниками;
- непрерывную генерацию новых сессионных ключей при каждой новой коммуникации, предотвращающая расшифровку предыдущих сообщений — Perfect Forward Secrecy;
- протокол для настройки устройств, позволяющий новым устройствам подключаться к сети с использованием QR-кодов — DPP.
Уязвимости WPA3
В 2019 году исследователи по безопасности Мэти Ванхофом (Mathy Vanhoef) и Эйал Ронен (Eyal Ronen) обнаружили недостатки в дизайне WPA3, которые можно разделить на две категории: downgrade-атаки и слабые моменты в Dragonfly handshake, используемом в WPA3:
- Downgrade & Dictionary Attack против WPA3-Transition — атаки через злоупотребление обратной совместимостью WPA3, когда клиента заставляют подключиться к поддельной точке доступа WPA2 для захвата рукопожатия;
- Security Group Downgrade — когда клиента принуждают выбирать слабые группы безопасности, путем отклонения его коммит-фреймов через rogue AP;
- Timing-Based Side-Channel Attack — злоупотребление временем ответа точки доступа на коммит-фреймы при использовании групп безопасности MODP;
- Cache-Based Side-Channel Attack — когда memory access patterns раскрывают информацию о пароле, если атакующая сторона контролирует приложение на устройстве жертвы;
- DoS — абьюз коммит-фреймов, который вызывает большую нагрузку на процессор (CPU) либо приводит к дисконнекту клиента.
В опубликованном исследовательском документе можно найти более полную информацию о каждой из уязвимостей. Для их демонстрации были созданы PoC-скрипты, которые до сих пор активно используются исследователями в области информационной безопасности: Dragondrain, Dragontime, Dragonforce, Dragonslayer и другие.
WPA3-Transition Downgrade Attack
Хотя кажется, что найти подробные материалы об атаках на WPA3 в сети сложно, в рамках данного исследования мне удалось найти детальную статью о Downgrade-атаке на маршрутизатор с включенной функцией WPA3-Transition. Атака основана на технике Evil Twin: если клиент подключен к роутеру через WPA3 с включенной функцией WPA3-Transition, злоумышленник может создать поддельную точку доступа WPA2, заставить клиента подключиться к ней через WPA2, захватить рукопожатие и взломать пароль Wi-Fi сети. Рассмотрим, как устроена подобная атака на примерах из статьи:
→ На роутере с включенной обратной совместимостью:
→ Далее происходит подтверждение через airmon-ng:
→ К точке доступа подключается клиент, которого необходимо верифицировать:
→ Запускаем airodump-ng
и создаем rogue AP через hostapd с определенной конфигурацией:
→ Клиенты начинают подключаться по фальшивой точке доступа (они не знают наш PSK), и мы получаем возможность захватить handshake:
→ Нам остается использовать aircrack-ng
, чтобы увидеть пароль от WPA3-сети:
Стратегии защиты
Исходя из того, что владельцы бизнеса часто упускают из виду защиту беспроводных сетей, пентестеры должны уделять особое внимание изучению перечисленных техник атак. Регулярные проверки Wi-Fi сетей сильно способствуют повышению безопасности компаний.
Для минимизации рисков существует ряд важных шагов и рекомендаций: от использования современных версий протоколов до регулярного обновления устройств и внедрения надежных паролей. Правильные действия могут значительно улучшить защиту беспроводной сети, ключевые аспекты здесь довольно стандартны:
- Используйте последнюю версию WPA (WPA3);
- Регулярно обновляйте прошивку на маршрутизаторах/точках доступа и клиентских устройствах сети;
- Внедряйте сложные пароли;
- Отключайте уязвимые функции (например, WPS и кэширование PMKID для WPA2, WPA3-Transition для WPA3);
- Отключайте автоподключение на клиентских устройствах.