У вас WPA Enterprise PEAP/TTLS? Тогда мы уже у вас
Доброго времени суток, коллеги!
Меня зовут Роман, и я эксперт отдела анализа защищенности (в простонародье — пентестер). До того, как перейти в это направление, я 10 лет был системным администратором (преимущественно Windows систем). Скажу вам честно, мне очень нравится симбиоз такого опыта. На мой взгляд, человеку, который знает внутреннюю кухню администрирования, разработки или их сочетаний, будет легче и интереснее смотреть на инфраструктуру с точки зрения атакующего.
В процессе работы меня постоянно посещают флешбеки с вопросом «А как у меня было настроено?». И сегодня хочу поговорить о таком компоненте инфраструктуры, как Wi-Fi. По долгу службы я часто тестирую данный элемент в разных организациях и скажу вам, что если бы можно было дать совет по Wi-Fi себе, как админу, я бы этим непременно воспользовался.
Рассматриваемая нами ситуация — это корпоративная беспроводная сеть, которая имеет контроллер и несколько точек доступа. Точки доступа расположены по офису таким образом, чтобы максимально покрыть всю необходимую территорию. В сети настроены белый список MAC адресов устройств и защита от принудительного отключения клиентов. К сети могут подключаться как десктопные (Windows, Linux, MacOS), так и мобильные ОС (iOS, Android). Сама компания располагается в типичном бизнес-центре на 18 этаже с красивым видом.
Есть два варианта настройки способа подключения к нашей сети:
WPA2 PSK. Для подключения используется устойчивая к перебору парольная фраза (более 20 символов, большие/маленькие/цифры/спецсимволы, не присутствует в словарях). Парольная фраза меняется раз в 3 месяца (слышу возмущения сотрудников);
WPA2 Enterprise. Для подключения каждый сотрудник использует свои доменные учетные данные (в организации действует строгая парольная политика). На RADIUS сервере установлен сертификат, выпущенный внешним доверенным центром сертификации.
Какой вариант выберете вы?
Если бы года 3-4 назад мне предложили такой выбор, я бы незамедлительно взял WPA2 Enterprise, так как:
Частая смена небрутабельного PSK приведет к потоку жалоб и предложений от пользователей.
В случае компрометации сменить пароль одного сотрудника легче, чем менять пароль всей сети (см. пункт выше).
При подключении к сети мы видим, какой из сотрудников подключается. В большинстве случаев нам не надо гадать, чье это устройство.
Свой логин и пароль сотрудник не отдаст так легко, как «пароль от Wi-Fi».
И вроде как выбор очевиден, но к чему тогда я здесь все это говорю? Преимущества, которые я описал выше — это взгляд человека, который это настраивает и администрирует. А ниже будет взгляд человека, который будет это атаковать.
FIGHT!
В правом углу ринга в желтых трусах: WPA PSK
Атаки для получения хэш-значения PSK практически всем знакомы и я не буду их расписывать. Скажу только, что в процессе атак нет разницы, с каким клиентом вы взаимодействуете (десктопная или мобильная ОС). Здесь интересно отметить несколько моментов:
если не отключать принудительно клиентов от сети для получения 4wHS (а по условиям задачки в организации включена защита от deauth пакетов (сам в шоке)), то данная атака остается незамеченной, так как атакующий просто слушает трафик;
подобная атака (перехват подключения легитимных клиентов) возможна только в зоне действия сети. Если компания расположена на 18 этаже БЦ (см. условия задачи), то оказаться (а тем более задержаться) в радиусе работы беспроводной сети становится сложнее (но не невозможно).
Даже учитывая современные мощности, достаточно сильный PSK (а в нашем случае он как раз такой) все равно будет расшифровываться долго. Предположим, что вы нарвались на тех, у кого есть под боком скучающая ферма для майнинга, или секретарша захотела помочь посетителю с его «слабым интернетом», или уволенный сотрудник запостил его в соцсетях. Таким образом PSK стал доступен потенциальным негодяям. Но вы (как админ/безопасник) еще этого не знаете. Итак, атакующий получает ключ PSK. Что он с ним может сделать?
Подключиться к беспроводной сети;
Сканировать сеть.
Поспреить этот пароль на доменные УЗ (если у него есть этот список);
Поискать уязвимости.
Потыкаться в файловые шары и т.п.
Проводить сетевые атаки.
Если не брать вариант, что пароль от беспроводной сети подошел к какой-нибудь УЗ, то максимум, что можно получить от PSK — это попасть во внутреннюю сеть. А дальше пошло внутреннее тестирование с поиском и изучением инфраструктуры. Если у атакующих нет действующих доменных УЗ, то работы еще много (предположим, что обновления ставятся, сервисы настраиваются хорошо, spoofing и relay не работают, а текстовики с паролями не доступны без аутентификации). И конечно, надо быть в зоне действия сети (вспомним про 18 этаж).
В левом углу ринга в синих трусах: 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. Смартфоны сами набросятся на сильный и сочный сигнал. Хочется отметить, что это не просто теория. С таким мы сталкиваемся достаточно часто, чтобы можно было об этом беспокоиться.
Физическая безопасность нас спасет.
Конечно, чтобы попасть на тот же 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 паролями. В итоге я получил власть, что и не снилась.. ну вы поняли.
На проектах таким образом я получал заветные логин:пароль, находясь в столовой, за забором, на парковке и остановках.
И самый главный вопрос: каким образом системные администраторы, безопасники, 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, кроме как доступа во всемирную сеть. Конечно есть исключения в виде каких-нибудь корпоративных сервисов, которые работают только из внутренней сети, но я таких не встречал (а значит в природе такого нет).
В итоге
Какой из вариантов выбрать, каждый админ решает сам на основе того, что он знает о своей инфраструктуре. Я не могу сказать, какой из этих вариантов выбрал бы лично я (все по ситуации). Но меня удивило, что в принципе старый добрый PSK может оказаться безопаснее, чем MGT в рамках Enterprise решений.
Интересно то, что осознание преимущества PSK над стандартным MGT пришло ко мне не после первого теста Wi-Fi, а после почти 2-х лет тестирования, изучения, OSWP, общения с коллегами и прочего. Будучи системным администратором я даже и подумать не мог об этом.
К чему же я все это: периодически необходимо переосмысливать те решения, которые мы внедряем и используем в инфраструктуре. Для этого нужна не только смелость признать свои ошибки и критическое мышление, но и многосторонний взгляд. Если вы защищаетесь — подумайте, как вас будут атаковать. Если вы атакующий, попробуйте представить себе, как мыслят админы. Мне повезло сочетать этот опыт. И на мой взгляд, совмещая такие разные стороны развития технических специалистов, мы сможем усилить общее состояние защиты инфраструктур.