Пентест WPA-Enterprise: от теории к практике

Доброго времени суток, уважаемые хабравчане!

Так уж вышло, что руководством передо мной была поставлена задача разобраться с пентестом корпоративных беспроводных сетей. На тот момент я имел кое-какой опыт только с WPA-PSK. И погрузившись в интернет, я столкнулся с явным дисбалансом информации по тестированию WPA-PSK и WPA-Enterprise. Прочитав и изучив целую кучу всего и «поигравшись» с корпоративной гостевой сетью, я решил собрать всё воедино и подготовил материал, который, по моему мнению, будет полезен читателям без серьезной экспертизы в пентесте беспроводных корпоративных сетей, желающим разобраться в данном вопросе без необходимости сбора информации по кусочкам из разных источников. Автор (я) не претендует на новизну материала, но все рассмотренное и протестированное — результат личных экспериментов и успешной отработки атак и утилит по состоянию на октябрь 2024 года: увы, не все из найденного мною срабатывало, поэтому приходилось грустно вздыхать, искать дальше и пробовать, пробовать, пробовать.  

Вроде, все. Начинаем.

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

WPA/WPA2-Enterprise MGT (Machine-Generated Token), далее WPA-Enterprise — способ организации беспроводной сети, более подходящий для корпоративного использования. Принято считать, что WPA-Enterprise является более безопасным методом по сравнению с WPA-PSK. Вместо PSK здесь используется аутентификация по протоколу 802.1x на сервере RADIUS (Remote Authentication Dial-In User Service). Сервер проверяет учетные данные пользователей и управляет всеми процессами централизованно. Снижение рисков компрометации учетных данных происходит благодаря тому, что каждый пользователь имеет свой собственный идентификационный ключ для доступа к сети.

539eda169016faad9655028a8045e11f.png

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

  • клиент (supplicant) — пользователь или клиентское устройство, которое хочет пройти аутентификацию и получить доступ к сети;

  • cервер аутентификации (обычно RADIUS) — фактический сервер, выполняющий аутентификацию;

  • аутентификатор (authenticator) — роутер/коммутатор, который соединяет множество клиентских устройств с сервером аутентификации и отключает/подключает клиентские устройства.

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

  • Аутентификатор передает EAP-запрос на клиентское устройство, как только обнаруживает активное соединение.

  • Клиент отправляет EAP-ответ —  пакет идентификации. Аутентификатор пересылает этот пакет на сервер аутентификации (RADIUS).

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

29b293821e5419269863b5e2d7878a6c.png

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 (вызов-ответ), используемый в процессе внутренней аутентификации.

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

  • Установка беспроводной сетевой карты в режим мониторинга;

  • Идентификация цели — сканирование сети и поиск клиентов, использующих целевую сеть;

  • Создание поддельной точки доступа. 

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

sudo iw dev wlan2 set monitor none

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

sudo airodump-ng wlan2 --essid Guest

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

1f99283f8d0139f8c4008a131c6e4ea2.png

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

9adf18e88b3ea5f72bb1c599bfcf249e.png

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

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

sudo eaphammer --cert-wizard

60c5cf6a4b4ae5cf4409b120cf335794.png

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

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

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

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

1a698a152227f4ff6e4bf0fe46e624ce.png

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

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

0ebf3fb72919a12ebdccfcb154a89ffa.png

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

asleap -C -R -W  

или

hashcat -m 5500 -a 0 -w 3   

73969e43374cce539951f5d8e3363029.png

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

35efb51e822fe3d6b70c068d5132f691.png

А почему так произошло и как можно попытаться получить креды в открытом виде — расскажу далее, но перед этим еще пару слов об Evil Twin (Stealing Credentials) + Bruteforce.

Airgeddon

Помимо инструмента eaphammer для атаки Evil Twin (Stealing Credentials) + Bruteforce также подойдет утилита airgeddon (ссылка: https://github.com/v1s1t0r1sh3r3/airgeddon). Из плюсов: интуитивно понятный интерфейс и подсказки во время выполнения атаки, отсутствие необходимости введения команд — достаточно выбрать соответствующий пункт меню. Из минусов: wifi адаптер должен поддерживать режим виртуального интерфейса + по моим наблюдениям, eaphammer отрабатывает эффективнее.

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

f12b1f5f7d53e6243be2fbb0d4a9da98.png

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

266beac5e208c1a56de6196b1d9c8dd9.png

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

20cb658a49b2d026776dd4d282287571.png

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

0f1c4b43da610b81e58908e2c94c3ff4.png

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

2ac911142c3a13c1f11ed079d25c50e6.png72affe4e677fb09ca51cfdf4917d326d.png

Downgrade attack. Немного теории

Так вот, возвращаясь к «ловле» кред в открытом виде.

Для того, чтобы снизить вероятность возникновения проблем несовместимости устройств, возникающих в результате неудачных попыток согласования, как запрашивающие устройства, так и серверы аутентификации обычно настраиваются на поддержку различных методов EAP. Однако не все методы EAP одинаковы (например, PAP будет передавать пароль в открытом виде, MSCHAPv2 будет использовать запрос/ответ…).

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

068b00ec118b7ab240b38b15d8d642e0.png

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

·  в отличии от десктопа, роуминг мобильных устройств настроен достаточно агрессивно и завязан на уровне сигнала точек. Десктопы в этом плане намного спокойнее и самостоятельно (т.е. без действия пользователя) не будут бросаться на точку с более сильным сигналом (даже если точка будет стоять вплотную с устройством). Если принудительно отключить десктоп от сети, благодаря стандарту 802.11kон подключится к соседней легитимной точке, а не к нашей. В отличии от них, мобильные устройства постоянно ищут точки с лучшим сигналом, так как очевидно, что это устройства, которые всегда перемещаются (в отличии от ноутбуков);  

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

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

Инструментом для проведения данной атаки является уже известный вам 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 --creds

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

sudo eaphammer --interface wlan1 --auth wpa-eap   --essid --creds

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

sudo eaphammer -i wlan1 --channel --auth wpa-eap --essid --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 --auth wpa-eap  --essid --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 --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 --creds

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

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

В сценариях, где скрытность не имеет значения, используйте --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 attack

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

·  Установка беспроводной сетевой карты в режим мониторинга;

·  Идентификация цели — сканирование и поиск целевой сети;

·  Создание поддельной точки доступа и запуск Downgrade атаки. 

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

sudo iw dev wlan2 set monitor none

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

sudo airodump-ng wlan2 --essid Guest

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

a19c83f416d24e33942d6825967f77f2.png

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

8398813e8f4bb970141305b9382e28d9.png

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

EAP (MSCHAPv2) Relay attack. Теория

Предположим, что атака Downgrade не прошло, на руках у нас только хэш, парольная политика тестируемой организации на высоком уровне, а это значит, что брут хэша займет неоправданно много времени и может вовсе не увенчаться успехом. Это конец? На самом деле нет, если в сетях WPA-Enterprise организации для аутентификации клиента используется метод MSCHAPv2 (что является частой ситуацией). В этом случае мы можем попробовать провести ретрансляционную атаку. 

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

984bce1b61b6302ba820be6fb5a1ceee.png

Однако мы собираемся провести ее с помощью MSCHAPv2 и Wi-Fi вместо NTLM и TCP/IP.

Суть EAP (MSCHAPv2) Relay атаки заключается в том, что злоумышленник перехватывает challenge-response (вызов-ответ) клиента к оригинальной точке доступа и затем передает ответ серверу аутентификации от имени аутентифицирующего пользователя. Серверне видит разницы между законным клиентом и клиентом злоумышленника. После проверки данных сервер отправляет разрешение на подключение, которое снова получает злоумышленник вместо легитимного пользователя и по итогу получает доступ к корпоративной сети.

Подготовка к атаке EAP (MSCHAPv2) Relay

Есть несколько предварительных условий для выполнения ретрансляционной атаки. Сначала нам нужно иметь возможность заставить жертву аутентифицироваться на нашем устройстве, а не на легитимном. В мире NTLM для этого используется Responder, который отвечает Windows запросами LLMNR, утверждающими, что они идут от легитимного сервера. Этот обманчивый ответ аналогичен тому, что делает hostapd-mana (далее — просто mana, ссылка: https://github.com/sensepost/hostapd-mana), за исключением того, что в пространстве Wi-Fi устройства-жертвы проверяют сети, отправляя зонды, а mana принимает эти зонды и сообщает устройствам, что это именно та точка доступа, которую они ищут, после чего устройства попытаются пройти аутентификацию на хосте с запущенной mana.

Второй этап ретрансляционной атаки — это собственно ретрансляция. Это означает попытку аутентификации, которая предпринимается на нашей мошеннической точки доступа, и передачу ее туда, где вы действительно хотите пройти аутентификацию. Для этого мы будем использовать утилиту wpa_sycophant (далее — просто sycophant, ссылка: https://github.com/sensepost/wpa_sycophant). Sycophant и mana синхронизируют состояние и передают информацию между собой с помощью файлов. После запуска sycophant будет ждать, пока жертва начнет аутентифицироваться на хосте с запущенной mana. После того, как жертва связалась с mana и прошла внешнюю аутентификацию (т. е. TLS-часть PEAP), sycophant связывается с законной точкой доступа, согласовывает внешнюю аутентификацию, затем извлекает информацию из mana и дословно передает ее точке доступа для внутренней аутентификации. Если все это работает, законный RADIUS-сервер возвращает успешную аутентификацию и позволяет sycophant связаться с целевой легитимной точкой доступа.

Также для данной атаки потребуется как минимум 2 беспроводных интерфейса (причем физических), а лучше 3: 1-й для несанкционированной точки доступа и работы mana, 2-й для настройки sycophant, а 3-й для мониторинга и отправки пакетов деаутентификации. 3-им интерфейсом можно пренебречь и выполнить мониторинг перед основной атакой, но тогда вы не сможете проводить деаутентификацию клиентов и придется ждать их повторного подключения без вашего участия.

Практика EAP (MSCHAPv2) Relay attack

Итак, мы установили необходимые инструменты и раздобыли 3 сетевых интерфейса: 1 встроенный в ноутбук и 2 за счет внешних wifi адаптеров. Распределим интерфейсы следующим образом:

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

  • Установка беспроводной сетевой карты в режим мониторинга;

  • Идентификация цели — сканирование сети и поиск клиентов, использующих целевую сеть;

  • Создание поддельной точки доступа и запуск mana;  

  • Запуск sycophant для проведения ретрансляции;

  • [Опционально] деаутентификация клиента от легитимной точки доступа.

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

sudo iw dev wlan2 set monitor none

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

sudo airodump-ng wlan2 --essid Guest

Затем подготавливаем файл ap.conf для mana: указываем essid целевой точки доступа (ssid), канал, на котором будет поднята наша точка доступа (channel), а также указываем выделенный для mana сетевой интерфейс wlan0 (interface). Интерфейс wlan0 должен иметь выход в интернет. Также указываем пути до сертификатов: можно воспользоваться сертификатами, предоставленными самой утилитой. В итоге наш файл ap.conf должен выглядеть примерно так:

72f19aafb64f29b5316e16072ab20f13.png

Важно: данный файл должен располагаться в каталоге с папкой certs, в которой размещены сертификаты.

Теперь создаем новый файл с тем же именем, что указано в переменной eap_user_file (в нашем случае — это файлhostapd.eap_user), и помещаем его в тот же каталог, что и ap.conf. Благодаря этому любой пользователь теперь может подключиться к нашей фейковой сети.

Файл hostapd.eap_user должен выглядеть так:

d50029c2670a49c5c865ae5e66e25e18.png

Можем запускать mana:

sudo hostapd-mana /etc/hostapd-mana/ap.conf

37e65535de4384c6b46208e8155fedac.png

Далее мы должны настроить файл wpa_sycophant.config в каталоге wpa_sycophant: указать ssid и записать в поле bssid_blacklist mac адрес, который был назначен wlan0 после запуска mana (в нашем случае это 2c:3b:70:84: f4: fe). Это нужно для того, чтобы предотвратить непреднамеренное подключение клиента к созданной нами фейковой точке доступа.

64a7a9f71baa13b438693f3e507387a4.png

Теперь можем запускать sycophant:

sudo /etc/wpa_sycophant/wpa_sycophant.sh -c wpa_sycophant.config -i wlan1  

Примечание: возможно для работы sycophant потребуется установить libssl1.0.0

[Опционально] Клиент должен быть отключен от легитимной сети, чтобы установить соединение с нашей несанкционированной точкой доступа. Это можно сделать, запустив атаку деаутентификации:

aireplay-ng -0 4 -a -c wlan2

Атака началась.

Немного подождем и в случае успеха увидим, что клиент отправляет ответ точке доступа в выходных данных mana. Mana, помимо приема данных от клиента, также дает команды для подбора ответа, чтобы получить пароль, но это не сработает, поскольку в данном случае пароль невероятно надежный, и у нас нет для него подходящего вордлиста.

7f2d31a8a2ff93f4a627b319d7dd162c.png

Sycophant берет ответ, идентификацию и другую информацию из каталога /tmp/ (мы оставили этот параметр в файле ap.conf без изменений), отправленную mana (для взаимодействия между процессами через файл), и передает ее в легитимную сеть.

9e877d95ebe48dcbea510958bdb87540.png

Также sycophant автоматически запрашивает IPv4 для нашей точки доступа.

В результате на интерфейсе wlan1 мы видим подключение к сети Guest.

До атаки:

bb66688e60763a9a58d6b413a75610b5.png

После атаки:

eb5fec357a7cec315bc77749bb04c988.png

До атаки:

3448aeba019fabed375cbae31222cd0c.png

После атаки:

91c7af8a5fe02f66625d9bbf52fb2db1.png

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

Давайте убедимся, что мы имеем доступ к «внутрянке» и немного посканим сеть Guest:

2a5da307b78aa72b3feba53938d8434e.png

Теперь можно приступать к пентесту инфраструктуры. Впрочем, это уже совсем другая история.

Вместо заключения

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

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

© Habrahabr.ru