Pentest
October 11

Часть 1. Тестируем безопасность WPA-Enterprise. Теория, Evil Twin (Stealing Credentials) + Bruteforce

Введение

Если вы захотите окунуться в мир пентеста Wi-Fi-сетей и займетесь изучением вопроса, то столкнетесь с явным дисбалансом информации по тестированию WPA-PSK и WPA-Enterprise: для первой группы можно с легкостью найти множество статей и видео роликов, как 5-7 летней давности, так и весьма свежих (при том, что методы и инструменты фактически не изменились). Но куда интереснее разобраться с вопросом пентеста беспроводных корпоративных сетей, где с вероятностью 99% вы столкнетесь с WPA-Enterprise. И вот тут информации уже в разы меньше.

Поэтому мы решили внести свою лепту и подготовили небольшой цикл статей по тестированию безопасности сетей WPA-Enterprise. Мы не будем затрагивать базовые вещи и говорить о подходящих для тестирования Wi-Fi адаптерах, объяснять суть мониторинга, деаутентификации и пр. И всё же, совсем без теории в контексте разговора о WPA-Enterprise обойтись не удастся, придется немного потерпеть.

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

Немного теории

Итак, есть 2 стула основных способа организации беспроводных сетей:

  • WPA/WPA2-Personal (Pre-Shared Key, PSK), далее WPA-Personal. Метод предназначен для защиты беспроводных сетей с использованием предварительно согласованного пароля или общего ключа PSK (Pre-Shared Key), который должны знать все устройства и пользователи, чтобы получить доступ к сети. Этот вариант часто используется для обеспечения безопасности Wi-Fi для домашних сетей и небольших офисов (в т.ч. кафе и отелей).
  • WPA/WPA2-Enterprise MGT (Machine-Generated Token), далее WPA-Enterprise – способ организации беспроводной сети, более подходящий для корпоративного использования. Принято считать, что WPA-Enterprise является более безопасным методом.

Протокол 802.1x (EAPOL) определяет методы отправки и приема запроса данных аутентификации и предполагает три роли в сети:

  • клиент (supplicant) - пользователь или клиентское устройство, которое хочет пройти аутентификацию и получить доступ к сети;
  • cервер аутентификации (обычно RADIUS) - фактический сервер, выполняющий аутентификацию;
  • аутентификатор (authenticator) — роутер/коммутатор, который соединяет множество клиентских устройств с сервером аутентификации и отключает/подключает клиентские устройства.

Есть несколько режимов работы 802.1x, но самый распространенный и надежный следующий:

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

EAP (расширяемый протокол аутентификации) – структура аутентификации, а не конкретный механизм аутентификации. Он предоставляет стандартизированный набор функций и правил, определяющих способ аутентификации, а конкретные детали оставляют на усмотрение отдельных реализаций, известных как методы EAP.

PEAP (Protected Extensible Authentication Protocol) похож на протокол EAP, но создает туннель TLS для защиты связи. Тогда слабые протоколы аутентификации могут использоваться поверх EAP, так как они будут защищены туннелем.

Среди EAP-методов могут быть как аутентификация на основе сертификатов, так и на основе учетных данных. Вот несколько примеров EAP-методов:

  • EAP-GTC: является методом EAP для поддержки использования аппаратных токенов и одноразовых паролей с помощью EAP-PEAP. Его реализация похожа на MSCHAPv2, но не использует одноранговый вызов. Вместо этого пароли отправляются на точку доступа в открытом виде.
  • EAP-MD-5 (Message Digest): Клиент отправляет MD5-хэш пароля. Не рекомендуется: уязвимость к атакам по словарю, отсутствие аутентификации сервера и способа генерировать на сессию ключи проводной эквивалентной конфиденциальности (WEP).
  • EAP-TLS (безопасность транспортного уровня): метод полагается на сертификаты на стороне клиента и сервера для выполнения аутентификации и может использоваться для динамической генерации пользовательских и сеансовых WEP-ключей для защиты последующих коммуникаций.
  • EAP-TTLS (Tunneled Transport Layer Security): Взаимная аутентификация клиента и сети через зашифрованный канал (или туннель), а также средство для получения динамических, пользовательских и сессионных WEP-ключей. В отличие от EAP-TLS, EAP-TTLS требует только сертификаты на стороне сервера (клиент будет использовать учетные данные).
  • PEAP-MSCHAPv2: Этот протокол также известен как просто PEAP, поскольку он широко распространен. Это просто уязвимый запрос ответ с вызовом MSCHAPv2 поверх PEAP (он защищен туннелем TLS).
  • PEAP-EAP-TLS или просто PEAP-TLS: очень похож на EAP-TLS, но перед обменом сертификатами создается TLS-туннель.

Большинство методов требуют наличия сертификата сервера, выписанного удостоверяющим центром (CA). При этом сам сертификат CA должен присутствовать на устройстве клиента в группе доверенных (что нетрудно реализовать средствами групповой политики в Windows).

Тестирование на безопасность

Принцип атак на WPA/WPA2 Enterprise основан на сочетании атак на WPA-PSK и Rogue AP Evil Twin. Злоумышленнику сначала придется восстановить идентификационную информацию целевой сети Wi-Fi. Сертификат организации отправляется клиенту, чтобы доказать, что он действительно исходит от целевой компании. Злоумышленнику придется отключить клиента, чтобы последний снова подключился и мог во время повторного подключения получить подтверждение связи, которое по большей части будет содержать сертификат.

Затем злоумышленник может создать свой собственный сертификат, максимально имитируя информацию в захваченном сертификате, чтобы он был максимально достоверным (в принципе, можно упустить этот шаг, но тогда при создании поддельного сертификата придется придумывать значения полей). Затем он настроит свою несанкционированную точку доступа так, чтобы она имела те же конфигурации и была максимально приближена к легальной сети: SSID, канал и поддерживаемые алгоритмы шифрования.

Когда жертва пытается подключиться к мошеннической точке доступа, учетные данные (имя пользователя и пароль в открытом виде или формате хэша NTLM) будут захвачены. Злоумышленнику остается только взломать хеш в автономном режиме, чтобы восстановить пароль пользователя.

Характер атаки зависит от используемого протокола EAP. Протоколы WPA-Enterprise могут основываться либо на учетных данных (EAP-TTLS, PEAP-MSCHAPv2 и др.), либо на основе сертификатов (EAP-TLS).

Далее мы рассмотрим первый и, пожалуй, самый простой тип атаки на WPA-Enterprise: Evil Twin (Stealing Credentials) + Bruteforce. Следует отметить, что эта атака не сработает против клиентов, которые:

  • используют аутентификацию на основе сертификатов (например, EAP-TLS или PEAPсEAP-TLS), так как здесь отсутствуют учетные данные, которые можно украсть;
  • проверяют сертификат сервера во время первой фазы аутентификации.

Evil Twin (Stealing Credentials) + Bruteforce

Атака включает в себя создание поддельной точки доступа, которая имитирует целевой SSID, чтобы привлечь клиентов и заставить их выполнить аутентификацию с поддельным RADIUS-сервером. Таким образом мы можем попытаться захватить учетные данные в открытом виде или, чаще всего, challenge-response (вызов-ответ), используемый в процессе внутренней аутентификации.

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

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

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

sudo iw dev wlan2 set monitor none

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

sudo airodump-ng wlan2 --essid Guest

Обратите внимание на значение MGT в поле AUTH: именно оно подсказывает, что мы имеем дело с WPA-Enterprise.

Также для сканирования можно использовать различные инструменты, например, встроенный в кали wifite, который также покажет наличие (и количество) подключенных к сети клиентов:

Далее, создаем поддельную точку доступа. Для этого воспользуемся утилитой eaphammer (ссылка: https://github.com/s0lst1c3/eaphammer).

Сначала необходимо создать самоподписанный сертификат:

sudo eaphammer --cert-wizard

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

Теперь можно запустить атаку Evil Twin против точки доступа интересующей нас WPA-Enterprise сети и попытаться захватить учетные данные EAP:

sudo eaphammer --essid Guest --channel 1 --interface wlan2 --auth wpa-eap --creds

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

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

Если нам повезет, мы увидим в терминале имена пользователей и данные challenge-response:

Остается попытаться сбрутить полученный response или хэш:

asleap -C <challenge> -R <response> -W <wordlist>

или

hashcat -m 5500 -a 0 -w 3 <hashcat_NETNTLM> <wordlist>

Ну а если нам очень повезет, то мы получим пароль в открытом виде:

А почему так произошло и как можно попытаться получить креды в открытом виде – расскажем в следующей статье.

Бонус

Помимо инструмента eaphammer для атаки Evil Twin (Stealing Credentials) + Bruteforce также подойдет утилита airgeddon (ссылка: https://github.com/v1s1t0r1sh3r3/airgeddon).

Из плюсов: интуитивно понятный интерфейс и подсказки во время выполнения атаки, отсутствие необходимости введения команд – достаточно выбрать соответствующий пункт меню.

Из минусов: Wi-Fi-адаптер должен поддерживать режим виртуального интерфейса + по нашим наблюдениям, eaphammer отрабатывает эффективнее.

Подробно останавливаться на описании действий мы не будем. Напомним лишь, что перед атакой от вас потребуется выбрать ваш Wi-Fi-адаптер и перевести его в режим мониторинга (п. 2), а далее остается выбрать пункт «Меню Enterprise атак» (п. 10) и следовать порядку действий: провести поиск целей (п. 4).

Выбрать интересующую цель с клиентами.

Выбрать Smooth или Noisy режим для атаки Evil Twin.

Создать самоподписанный сертификат (п. 5) или указать путь до уже созданного, «ответить» на вопросы утилиты (не переживайте, для каждого есть пояснение) и атака начнется.

В случае успеха, вы получите хэши для брута.

Заключение

В данной статье мы рассмотрели теоретические основы сетей WPA-Enterprise и атаку Evil Twin (Stealing Credentials) + Bruteforce. Мы надеемся, что рассмотренный материал поможет вам в вашей работе.

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