Pentest
October 16

Часть 2. Тестируем безопасность WPA-Enterprise: Downgrade attack

Введение

В прошлой статье по WPA-Enterprise мы рассмотрели атаку Evil Twin (Stealing Credentials) + Bruteforce и в одном из примеров смогли получить учетные данные пользователя в открытом виде. В этой статье мы расскажем как это могло произойти и как мы можем попытаться повторить успех через Downgrade attack.

Данная статья представлена исключительно в образовательных целях. Red Team сообщество "GISCYBERTEAM" не несёт ответственности за любые последствия ее использования третьими лицами.

И снова теория

Напомним, что протокол 802.1x (EAPOL), по которому происходит аутентификация в WPA-Enterprise, определяет методы отправки и приема запроса данных аутентификации. Также стоит напомнить, что самым распространенным режимом работы 802.1x является следующий:

  • Аутентификатор передает EAP-запрос на клиентское устройство, как только обнаруживает активное соединение.
  • Клиент отправляет EAP-ответ — пакет идентификации. Аутентификатор пересылает этот пакет на сервер аутентификации (RADIUS).
  • RADIUS проверяет пакет и право доступа клиентского устройства по базе данных пользователя или другим признакам и затем отправляет на аутентификатор разрешение или запрет на подключение.

Так вот, чтобы снизить вероятность возникновения проблем несовместимости устройств, возникающих в результате неудачных попыток согласования, как запрашивающие устройства, так и серверы аутентификации обычно настраиваются на поддержку различных методов EAP.

Однако не все методы EAP одинаковы (например, PAP будет передавать пароль в открытом виде, MSCHAPv2 будет использовать запрос/ответ...).

Поскольку согласование метода EAP инициируется точкой доступа, в качестве которой может выступать устройство злоумышленника (Evil Twin), можно обманом заставить клиентов использовать слабый протокол аутентификации (например, GTC). Фактически, в то время как законные точки доступа предлагают методы EAP от самого сильного до самого слабого, точка доступа «злого двойника» может предлагать методы EAP от самого слабого до самого сильного.

Основной вид атаки на WPA-Enterprise является Evil Twin. И здесь стоит обратить внимание на мобильные устройства клиентов, так как при их наличии вероятность успешности атаки сильно повышается. И вот по каким причинам:

  • в отличии от десктопа, роуминг мобильных устройств настроен достаточно агрессивно и завязан на уровне сигнала точек. Десктопы в этом плане намного спокойнее и самостоятельно (т.е. без действия пользователя) не будут бросаться на точку с более сильным сигналом (даже если точка будет стоять вплотную с устройством). Если принудительно отключить десктоп от сети, благодаря стандарту 802.11k он подключится к соседней легитимной точке, а не к нашей. В отличии от них, мобильные устройства постоянно ищут точки с лучшим сигналом, так как очевидно, что это устройства, которые всегда перемещаются (в отличии от ноутбуков);
  • мобильные устройства способны работать по протоколу EAP-GTC, а это именно то, что нужно для атаки Downgrade. Более того, для этого даже не надо отключать мобильные устройства от точек доступа. Достаточно просто пройти мимо с включенной Evil Twin. Смартфоны сами набросятся на сильный сигнал (см предыдущий пункт).

Варианты проведения атаки

Инструментом для проведения данной атаки является уже известный вам eaphammer. Утилита предлагает несколько подходов к проведению Downgrade атаки:

Сбалансированный подход (самый эффективный)

При использовании eaphammer поведение по умолчанию заключается в использовании сбалансированного подхода к снижению уровня EAP. Он предлагает следующие последовательности методов EAP во время процесса согласования EAP:

  • Phase 1 (outer authentication)
    PEAP, TTLS, TLS, FAST
  • # Phase 2 (inner authentication)
    GTC, MSCHAPV2, TTLS-MSCHAPV2, TTLS, TTLS-CHAP, TTLS-PAP, TTLS-MSCHAP, MD5

Eaphammer сначала пытается снизить уровень до GTC, а затем сразу переходит к более надежным методам EAP, если попытка не удается. Этот сбалансированный подход разработан для максимизации воздействия при минимизации риска долгих согласований EAP.

Чтобы выполнить эту атаку, запустите eaphammer с флагом --negotiate balanced:

sudo eaphammer --interface wlan1 --negotiate balanced --auth wpa-eap --essid <SSID_corporate_wifi> --creds

Альтернативно, опустите флаг --negotiate:

sudo eaphammer --interface wlan1 --auth wpa-eap 	--essid <SSID_corporate_wifi> --creds

Полное понижение версии EAP (с самого сильного до самого слабого)

sudo eaphammer -i wlan1 --channel <channel_number> --auth wpa-eap --essid <SSID_corporate_wifi> --negotiate weakest --creds

В этом случае eaphammer предлагает методы EAP в следующем порядке:

  • # Phase 1 (outer authentication)
    PEAP, TTLS, TLS, FAST
  • # Phase 2 (inner authentication)
    GTC, TTLS-PAP, MD5, TTLS-CHAP, TTLS-MSCHAP, MSCHAPV2, TTLS-MSCHAPV2, TTLS
Предупреждение: более вероятно увеличение времени согласования EAP (низкая вероятность успеха PAP, MD5, CHAP), что может снизить эффективность атаки.

Подход, оптимизированный по скорости (от самого сильного к самому слабому)

sudo eaphammer -i wlan1 --channel <channel_number> --auth wpa-eap  --essid <SSID_corporate_wifi> --negotiate speed --creds

В этом случае eaphammer предлагает методы EAP, которые с наибольшей вероятностью будут успешными в первую очередь:

  • # Phase 1 (outer authentication)
    PEAP, TTLS, TLS, FAST
  • Phase 2 (inner authentication)
    MSCHAPV2, TTLS-MSCHAPV2, TTLS, TTLS-CHAP, GTC, TTLS-PAP, TTLS-MSCHAP, MD5

Используйте этот режим, если у вас возникли проблемы с завершением процесса аутентификации EAP клиентами в режиме по умолчанию.

Явная атака на понижение версии GTC

Чтобы выполнить реализацию перехода на более раннюю версию GTC, используйте флаг --negotiate gtc-downgrade:

sudo eaphammer --interface wlan1 --negotiate gtc-downgrade --auth wpa-eap --essid <SSID_corporate_wifi> --creds

Это даст указание eaphammer предлагать следующие последовательности методов EAP во время согласования EAP:

  • # Phase 1 (outer authentication)
    PEAP [ver=1]
  • # Phase 2 (inner authentication)
    GTC

Ручное управление согласованием EAP:

Чтобы вручную контролировать, какие методы EAP используются eaphammer, а также порядок, в котором они предлагаются клиенту, используйте флаг --negotiate manual в сочетании с флагами --phase-1-methods и --phase-2-methods:

sudo eaphammer --interface wlan1 --negotiate manual --phase-1-methods PEAP,TTLS 	--phase-2-methods MSCHAPV2,GTC,TTLS-MSCHAP --auth wpa-eap --essid <SSID_corporate_wifi> --creds

Ручное управление процессом согласования EAP полезно в ситуациях, когда необходимо имитировать поведение точки доступа, чтобы избежать обнаружения.

Рекомендуемая методология атаки

В сценариях, где скрытность не имеет значения, используйте --negotiate gtc-downgrade флаг, чтобы начать атаку, а затем выполнить второй раунд атак, используя флаг --negotiate speed.

Если вы заботитесь о том, чтобы вас не поймали, и уверены, что Заказчик отслеживает подобные атаки, используйте флаг --negotiate manual для имитации порядка загрузки метода EAP целевой точки доступа.

Примечание: Для Windows и Android, когда мы настраиваем соискателя для PEAP, мы должны выбрать, какой протокол аутентификации будет использоваться. Фактически, Windows даже не поддерживает GTC. Поэтому для Android и Windows атака на понижение версии GTC невозможна, поскольку заявитель отклонит метод GTC, полученный от сервера RADIUS.

Совсем другая история с Apple iOS. Apple предпочла простоту графического интерфейса безопасности. В результате запрашивающая сторона 802.1x не имеет возможности выбрать метод аутентификации. На самом деле, о PEAP даже не упоминается. Графический интерфейс просто отображает поля имени пользователя и пароля.
Однако на самом деле соискатель поддерживает как MSCHAPV2, так и GTC. Заявитель предпочтет MSCHAPV2 GTC, если оба варианта представлены сервером RADIUS. Однако если мы удалим поддержку MSCHAPV2 с RADIUS-сервера, соискатель с радостью переключается на GTC и передает сохраненные учетные данные в открытом виде.
И еще: как и в случае с атакой Evil Twin (Stealing Credentials) + Bruteforce, данная атака не сработает против клиентов, которые:
• используют аутентификацию на основе сертификатов (например, EAP-TLS или PEAP с EAP-TLS), так как здесь отсутствуют учетные данные, которые можно украсть;
• проверяют сертификат сервера во время первой фазы аутентификации.

Практика

Процесс организации атаки выглядит следующим образом:

  • Установка беспроводной сетевой карты в режим мониторинга;
  • Идентификация цели — сканирование и поиск целевой сети;
  • Создание поддельной точки доступа и запуск Downgrade атаки.

Итак, устанавливаем наш WiFi-адаптер в режим мониторинга:

sudo iw dev wlan2 set monitor none

Запускаем сканирование эфира в поисках интересующей нас сети (в нашем примере это сеть Guest):

sudo airodump-ng wlan2 --essid Guest

Создаем поддельную точку доступа и запускаем Downgrade атаку. В данном примере мы выбираем подход полного понижения версии EAP (флаг --negotiate gtc-downgrade) и даже не утруждаем себя выбором конкретного канала:

Впрочем, данный подход не всегда срабатывает и мы можем получить такую картину:

В этом случае стоит «поиграться» с флагом --negotiate и установить, например, значение balanced, чтобы попробовать поймать хэш и попытаться его сбрутить. Хотя при определенных обстоятельствах для получения доступа к корпоративной сети этого и не потребуется. Но об этом в нашей следующей статье.

Заключение

В данной статье мы рассмотрели Downgrade attack на сети WPA-Enterprise. Мы надеемся, что рассмотренный материал поможет вам в вашей работе.

И помните: вся представленная в статье информация приводится исключительно в ознакомительных целях. Перед использованием приведенной информации настоятельно рекомендуется ознакомиться со статьей 272 УК РФ.