Доброго времени суток, коллеги!

Меня зовут Роман, и я эксперт отдела анализа защищенности (в простонародье — пентестер). До того, как перейти в это направление, я 10 лет был системным администратором (преимущественно Windows систем). Скажу вам честно, мне очень нравится симбиоз такого опыта. На мой взгляд, человеку, который знает внутреннюю кухню администрирования, разработки или их сочетаний, будет легче и интереснее смотреть на инфраструктуру с точки зрения атакующего.

В процессе работы меня постоянно посещают флешбеки с вопросом «А как у меня было настроено?». И сегодня хочу поговорить о таком компоненте инфраструктуры, как Wi-Fi. По долгу службы я часто тестирую данный элемент в разных организациях и скажу вам, что если бы можно было дать совет по Wi-Fi себе, как админу, я бы этим непременно воспользовался.

Рассматриваемая нами ситуация — это корпоративная беспроводная сеть, которая имеет контроллер и несколько точек доступа. Точки доступа расположены по офису таким образом, чтобы максимально покрыть всю необходимую территорию. В сети настроены белый список MAC адресов устройств и защита от принудительного отключения клиентов. К сети могут подключаться как десктопные (Windows, Linux, MacOS), так и мобильные ОС (iOS, Android). Сама компания располагается в типичном бизнес-центре на 18 этаже с красивым видом.

Есть два варианта настройки способа подключения к нашей сети: 

  1. WPA2 PSK. Для подключения используется устойчивая к перебору парольная фраза (более 20 символов, большие/маленькие/цифры/спецсимволы, не присутствует в словарях). Парольная фраза меняется раз в 3 месяца (слышу возмущения сотрудников); 

  2. WPA2 Enterprise. Для подключения каждый сотрудник использует свои доменные учетные данные (в организации действует строгая парольная политика). На RADIUS сервере установлен сертификат, выпущенный внешним доверенным центром сертификации. 

Какой вариант выберете вы?  

Простите, без него никак...
Простите, без него никак...

Если бы года 3-4 назад мне предложили такой выбор, я бы незамедлительно взял WPA2 Enterprise, так как: 

  • Частая смена небрутабельного PSK приведет к потоку жалоб и предложений от пользователей. 

  • В случае компрометации сменить пароль одного сотрудника легче, чем менять пароль всей сети (см. пункт выше). 

  • При подключении к сети мы видим, какой из сотрудников подключается. В большинстве случаев нам не надо гадать, чье это устройство. 

  • Свой логин и пароль сотрудник не отдаст так легко, как «пароль от Wi-Fi». 

И вроде как выбор очевиден, но к чему тогда я здесь все это говорю? Преимущества, которые я описал выше — это взгляд человека, который это настраивает и администрирует. А ниже будет взгляд человека, который будет это атаковать.

FIGHT!

В правом углу ринга в желтых трусах: WPA PSK 

Атаки для получения хэш-значения PSK практически всем знакомы и я не буду их расписывать. Скажу только, что в процессе атак нет разницы, с каким клиентом вы взаимодействуете (десктопная или мобильная ОС). Здесь интересно отметить несколько моментов:  

  • если не отключать принудительно клиентов от сети для получения 4wHS (а по условиям задачки в организации включена защита от deauth пакетов (сам в шоке)), то данная атака остается незамеченной, так как атакующий просто слушает трафик; 

  • подобная атака (перехват подключения легитимных клиентов) возможна только в зоне действия сети. Если компания расположена на 18 этаже БЦ (см. условия задачи), то оказаться (а тем более задержаться) в радиусе работы беспроводной сети становится сложнее (но не невозможно). 

А Crysis все равно тормозит...
А Crysis все равно тормозит...

Даже учитывая современные мощности, достаточно сильный PSK (а в нашем случае он как раз такой) все равно будет расшифровываться долго. Предположим, что вы нарвались на тех, у кого есть под боком скучающая ферма для майнинга, или секретарша захотела помочь посетителю с его «слабым интернетом», или уволенный сотрудник запостил его в соцсетях. Таким образом PSK стал доступен потенциальным негодяям. Но вы (как админ/безопасник) еще этого не знаете. Итак, атакующий получает ключ PSK. Что он с ним может сделать? 

  • Подключиться к беспроводной сети; 

  • Сканировать сеть. 

  • Поспреить этот пароль на доменные УЗ (если у него есть этот список); 

  • Поискать уязвимости. 

  • Потыкаться в файловые шары и т.п. 

  • Проводить сетевые атаки.

Если не брать вариант, что пароль от беспроводной сети подошел к какой-нибудь УЗ, то максимум, что можно получить от PSK — это попасть во внутреннюю сеть. А дальше пошло внутреннее тестирование с поиском и изучением инфраструктуры. Если у атакующих нет действующих доменных УЗ, то работы еще много (предположим, что обновления ставятся, сервисы настраиваются хорошо, spoofing и relay не работают, а текстовики с паролями не доступны без аутентификации). И конечно, надо быть в зоне действия сети (вспомним про 18 этаж).

Даже узрев пачку мощных видеокарт, 8 символов не сдадутся просто так...
Даже узрев пачку мощных видеокарт, 8 символов не сдадутся просто так...

В левом углу ринга в синих трусах: WPA Enterprise 

Основной вид атаки на WPA Enterprise (EAP-FAST, PEAP/TTLS), конечно же, Evil Twin (у нас же не старье вроде EAP-MD5 или EAP-LEAP). И здесь я хочу сосредоточиться именно на атаке мобильных клиентов, так как при наличии оных вероятность успешности атаки сильно повышается. И вот по каким причинам: 

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

  • мобильные устройства способны работать по протоколу EAP-GTC, downgrade на который мы можем совершить (подробности ниже). 

Предположим, что атакующему удалось получить хэш и расшифровать пароль доменной учетной записи.  Что он с ними может сделать? 

  • Подключиться к беспроводной сети; 

  • После подключения к беспроводной сети можно пользоваться внутренними корпоративными сервисами; 

  • Использовать внешние опубликованные корпоративные сервисы (почта, база знаний, портал и пр.); 

  • Подключиться к внутренней сети через сервисы для удаленной работы (vpn, rdp, vdi). 

  • Все, что может делать легитимный доменный пользователь.

Очевидно, что доменные учетные данные предоставляют намного больше возможностей, чем просто доступ к корпоративной Wi-Fi сети. И даже в зоне действия сети нам не обязательно находиться.

А вот тут внимание: если к нашей Wi-Fi сети подключаются еще и мобильные устройства (смартфоны) (см. условия задачи), то даже сильная парольная политика нас не спасет. Так как мобильные устройства (и, кстати, некоторые старые десктопные ОС) можно принудительно заставить передать пароль в открытом виде с помощью протокола EAP-GTC (EAP-downgrade, подробнее тут).

Пароль в открытом виде при атаке Evil Twin
Пароль в открытом виде при атаке Evil Twin

Кстати, для этого их даже не надо отключать от точек доступа. Достаточно просто пройти мимо с включенной Evil Twin. Смартфоны сами набросятся на сильный и сочный сигнал. Хочется отметить, что это не просто теория. С таким мы сталкиваемся достаточно часто, чтобы можно было об этом беспокоиться.

Физическая безопасность нас спасет.

Конечно, чтобы попасть на тот же 18 этаж бизнес-центра, где весь Wi-Fi и обитает, надо будет преодолеть определенную физическую безопасность (СКУД, охрана, пропуска и все вот это). Я не буду вам говорить, что это можно легко сделать. Атакующий туда даже и не пойдет. И вот почему.

Большинство обычных людей (да что там скрывать — почти все) очень редко (читай «никогда») не выключают Wi-Fi на своих смартфонах. Да что там люди. Сами устройства сделаны так, что при настройках по умолчанию всегда имеют включенный Wi-Fi. А если ты посмеешь его выключить, то он сам включится и будет искать сети. И логика здесь понятна: дома, в транспорте, в офисе, в кафе — везде есть Wi-Fi. Ты не тратишь драгоценный мобильный интернет (который, кстати, измеряется десятками гигабайт в месяц), и связь всегда лучше (жизнь слишком коротка, чтобы ждать загрузки несколько лишних секунд).

Теперь представим, что я атакую провожу легитимное тестирование на проникновение с разрешения, после подписания договора и прочих документов, нашей воображаемой конторы. Есть несколько вариантов, как я могу узнать имя корпоративной сети (OSINT, послушать probe request устройств рядом со зданием или просто сходить туда, как посетитель, и зафиксировать список сетей). Дальше я определяю места скопления и передвижения сотрудников, коими могут быть:

  • проходная в БЦ;

  • курилка;

  • парковка;

  • близлежащие кафе и магазины;

  • столовая;

  • остановки общественного транспорта;

  • станция метро.

В этих местах я могу развернуть Evil Twin с именем корпоративной сети и ловить не только хэши, но и пароли в открытом виде от смартфонов сотрудников, Wi-Fi которых всегда включен. Им даже не надо выбирать сеть. Android или iOS, которые мирно лежат в карманах, сами все сделают. Если наша сеть защищена WPA Enterprise (EAP-FAST, PEAP/TTLS) — то я получил источник доменных учетных данных с cleartext паролями. В итоге я получил власть, что и не снилась.. ну вы поняли.

В принципе, так и выглядит счастье от пойманного clear text пароля
В принципе, так и выглядит счастье от пойманного clear text пароля

На проектах таким образом я получал заветные логин:пароль, находясь в столовой, за забором, на парковке и остановках.

И самый главный вопрос: каким образом системные администраторы, безопасники, SOC и прочие выявят подобную утечку? Т.е., конечно, они смогут понять, что данный пользователь запускает какие-то странные инструменты, но как они найдут источник утечки? К тому же, я могу просто подключить себе почту и собирать информацию. Тихо и без шума. Смена пароля является временным решением (при условии, что у меня только одна действующая учетная запись), так как я дальше пойду рыбачить в поисках новой порции учетных данных.

Основной защитой от Evil Twin атак будет настройка отслеживания и оповещения о подобных точках на легитимном сетевом оборудовании. Но в кафе или столовой я далеко от их оборудования (поверьте, я буду далеко от него). Как они узнают обо мне?

На одном из проектов коллеги даже зафиксировали подключение мобильного устройства сотрудника к моей поддельной точке (пароль, кстати, я получил в открытом виде). Но вот незадача: все современные смартфоны при подключении к Wi-Fi используют случайные MAC-адреса (анонимность, знаете ли), и коллеги увидели в отчете как раз такой MAC. Т.е., даже определить, кому из сотрудников (а контора очень большая) срочно надо менять пароль, они не смогли.

Мы обречены?

Вообще да, но в текущей ситуации нет. И здесь я даже не буду вам рекомендовать EAP-TLS как единственную безопасную альтернативу. Конечно, это одно из самых безопасных решений, и к нему надо стремиться. Но я был системным администратором и знаю, что сложность настройки и распространения данного решения может отпугнуть многих. Поэтому могу предложить несколько решений, которые не займут много драгоценного времени админов.

Вариант №1: долой MGT сети, даешь PSK. Очевидные плюсы в том, что пароль ставит сам админ, и он может выбрать любой уровень сложности и частоту смены. Очевидный минус в таком решении — это взаимодействие с сотрудниками. Если вы заставите их каждый месяц вводить 20-символьный пароль, то готовьтесь к волне негодований. Конечно, это можно прописать в регламент по безопасности или объяснять, почему это необходимо.

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

Ну и конечно, здесь нам будет тяжело отделить корпоративные устройства от смартфонов сотрудников (white list — это круто, но поддерживать актуальным его тяжело, особенно в огромных организациях).

Вариант №2: аутентификация доменных компьютеров. В большинстве реализаций MGT сетей (PEAP, TTLS), что я встречал, для подключения использовались доменные логин/пароль самих сотрудников. Еще будучи админом я для себя осознал, что такое решение не самое удобное для пользователей, так как пароли меняются, и им приходится заново вводить данные после смены. И тогда мы перешли на аутентификацию с помощью доменных компьютеров. Т.е. подключиться к Wi-Fi могут только члены группы "Domain Computers". Мы распространили параметры через GPO и получили практически прозрачный механизм для сотрудников. Если компьютер менял пароль и не мог подключиться, достаточно было перезагрузить устройство — и все работало (как оказалось, для сотрудников это легче, чем вбивать руками пароль).

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

В обоих вариантах решения есть один общий шаг: мобильных клиентов надо убрать в отдельную PSK сеть с большим жирным паролем и доступом только в интернет. В 99% случаев смартфонам нечего искать в корпоративном Wi-Fi, кроме как доступа во всемирную сеть. Конечно есть исключения в виде каких-нибудь корпоративных сервисов, которые работают только из внутренней сети, но я таких не встречал (а значит в природе такого нет).

Можно еще с криком "NOOOOOOOOO"
Можно еще с криком "NOOOOOOOOO"

В итоге

Какой из вариантов выбрать, каждый админ решает сам на основе того, что он знает о своей инфраструктуре. Я не могу сказать, какой из этих вариантов выбрал бы лично я (все по ситуации). Но меня удивило, что в принципе старый добрый PSK может оказаться безопаснее, чем MGT в рамках Enterprise решений.

Интересно то, что осознание преимущества PSK над стандартным MGT пришло ко мне не после первого теста Wi-Fi, а после почти 2-х лет тестирования, изучения, OSWP, общения с коллегами и прочего. Будучи системным администратором я даже и подумать не мог об этом.

К чему же я все это: периодически необходимо переосмысливать те решения, которые мы внедряем и используем в инфраструктуре. Для этого нужна не только смелость признать свои ошибки и критическое мышление, но и многосторонний взгляд. Если вы защищаетесь — подумайте, как вас будут атаковать. Если вы атакующий, попробуйте представить себе, как мыслят админы. Мне повезло сочетать этот опыт. И на мой взгляд, совмещая такие разные стороны развития технических специалистов, мы сможем усилить общее состояние защиты инфраструктур.

Комментарии (25)


  1. drygdryg
    17.10.2022 13:16

    Одно непонятно: как можно перехватить хэш и сбрутить его, если используется WPA2 Enterprise, а не WPA2-PSK? Разве для этого есть инструментарий?


    1. kai3341
      17.10.2022 13:22

      man aircrack-ng

      А если серьёзно, то достаточно немного подумать нестандартно. А чём проблема с помощью airbase-ng создать honeypot?


      1. drygdryg
        17.10.2022 13:31

        Прочитал man aircrack-ng : нашёл там явное упоминание о том, что он предназначен для WPA-PSK и ни одного упоминания о WPA Enterprise.


        1. kai3341
          17.10.2022 13:56

          Я пытался дать ответ такой, чтобы мамкины скрипт-кидди не бросились ломать всё, но и люди в теме поняли, где слабое место. Максимум, что могу добавить -- в данном случае атакующее ПО не соответствует спецификации 802.11, но это не его проблемы


    1. uksus Автор
      17.10.2022 14:02
      +3

      Для перехвата хэша WPA Enterprise используется такая техника, как Evil Twin. Она заключается в том, что атакующий разворачивает точку доступа с именем (и настройками) целевой WiFi сети. Легитимный клиент, который подключается к подменной точке доступа передает ей свой хэш (или plain text пароль), который можно отправить на брут.

      В ручном режиме эту атаку можно проводить с помощью hostapd-wpe или hostapd-mana (модификации hostapd). Для автоматизации можно использовать EAPhammer, airgeddon.


      1. kai3341
        17.10.2022 14:16
        +1

        То есть я зря пытался не сказать лишнего. Ладушки :)


    1. detukov-sergey
      17.10.2022 15:35

      Конечно. Логин передается в открытом виде, хеширование пароля NetNTLMv1.

      Например, можно использовать airgeddon, но это просто надстройка


  1. Tarakanator
    17.10.2022 15:46

    Не увидел рассмотрения двух вариантов:
    1)Забить на безопасность wi-fi, wi-fi даёт доступ только к VPN шлюзу. Безопасность за счёт VPN шлюза.
    2)а если двухфакторку через радиус?


    1. uksus Автор
      18.10.2022 08:36

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

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


      1. Tarakanator
        19.10.2022 10:10
        +2

        На счёт первого варианта. Уж если мы выставляем в интернет VPN шлюз, то вариант выставить VPN шлюз в условно приватный wi-fi будет не менее безопасным.
        а вот второй вариант да, надо тестить.


  1. dronmaxman
    17.10.2022 15:58
    +1

    Мы используем сертификаты для подключения к WIFI которые выдаем на два года.

    Так же встречал реализацию через CaptivPortal, клиент вводит учетные данные на портале и получает индивидуальный PSK для своего устройства. Сеть одна, а PSK у всех разные и каждое устройство персонализировано.

    Выход есть)


    1. uksus Автор
      18.10.2022 08:40

      За сертификаты - снимаю перед вами шляпу :)

      А что касается Captive Portal и уникальные PSK - звучит очень интересно (хотя и возникает много вопросов). Такую связку я бы протестировал :)


  1. osipov_dv
    17.10.2022 16:31

    Кажется про 18 этаж автор зря налегает. Недавно были новости про коптер севший на крышу, с оборудованием для взлома. Ну и не забываем про возможность "забыть" где-то raspberry pi. с хорошим powerbank.


    1. Tarakanator
      17.10.2022 16:40

      Я бы выбрал просто направленную антенну.
      Запарковать грузовичёк с брезентовым тентом. А под тентом хоть полутораметровая тарелка.


    1. uksus Автор
      18.10.2022 08:42

      А на каком этапе вы бы предложили использовать дрон или закладку в виде Raspberry Pi?)


      1. osipov_dv
        18.10.2022 13:26

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


        1. uksus Автор
          19.10.2022 09:10

          Дрон в той истории, на мой взгляд, как doom запущенный в блокноте: интересно, но вряд ли применимо на каждый день :)

          Закладку в виде Raspberry Pi действительно иногда удобно делать. Это может немного усложнить атаку (затраты, проникновение и пр.), но такие действия имеют место быть, если других вариантов не остается.


  1. edo1h
    18.10.2022 23:40

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

    зачем в этом случае жирный пароль? если бы не всякие истории вроде этой, я бы рассматривал беспарольный wifi.


    а для доступа во внутреннюю сеть тем, кому она нужна, вполне можно использовать vpn (например, ipsec сегодня из коробки есть практически везде).


    P. S. давно думаю о том, что использование авторизации доменным паролем во всяких внешних сервисах — зло.
    сохранённые плайнтекстом пароли в браузере, почтовом клиенте…


    1. uksus Автор
      19.10.2022 09:27

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

      Сильный пароль в этом случае играет как раз именно роль небольшого препятствия. Можно ли его обойти? Конечно. Как минимум увидеть на табличках, спросить у секретаря и т.п. Усложнит это атаку? Немного, но да. И чем больше таких препятствий, тем меньшее количество атакующих будут тратить свои силы на них (им проще пойти на "старую дверь" у соседа).

      Например, MAC фильтр конечно легко обойти, взяв MAC легитимного клиента. Но если вместе с ним включен Management Frame Protection, то легитимного клиента уже не отключишь. Следовательно, надо ждать, пока он сам уйдет. Это растягивает атаку во времени и делает ее дороже.

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


  1. vrb123
    19.10.2022 08:25

    а что про проверку сертификата радиус сервера никто не написал? если прописать в настройках подключении сертификат, то телефон не будет разговаривать с поддельной точкой доступа


    1. uksus Автор
      19.10.2022 08:38
      +1

      По проверке мобильным устройством сертификата RADIUS сервера при подключении ситуация такая: мы можем сгенерировать сертификат, например, с помощью ZeroSSL. Мобильный клиент не проверяет имя и принадлежность сертификата к серверу (а-ля HTTPS). Для него главное, чтобы сертификат был выпущен доверенным центром (коим ZeroSSL и Let`s Encrypt являются).
      Что получаем:

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

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


      1. vrb123
        19.10.2022 23:39

        1. на андроиде в свойствах подключения конкретно выбираю MSCHAPv2 , другими методами не пытается авторизоваться

        2. Да, на андроиде надо заморочтся, залить свой корневой сертификат и в настройках wifi указать именно его


  1. miga
    19.10.2022 10:40

    Два слова: zero trust


    1. vrb123
      19.10.2022 23:39

      тут про другое, утечку логина с паролем


      1. miga
        20.10.2022 10:21

        Пароль к вайфаю не имеет никакой ценности, если у вас зиротраст