# MSK Department ## Enumeration Сканируем сеть и ищем рабочие хосты: ``` nmap -sn --min-parallelism 300 --min-rate 200 10.10.0.0/16 ``` ![](https://i.imgur.com/zt1RPT5.png) ## Server Front (10.10.1.100) В результате сканирования замечаем подозрительный HTTP-порт 80/tcp на узле 10.10.1.100. На данном узле обнаруживается кастомный сервис для хранения файлов. ![](https://i.imgur.com/j2UNCSn.png) Поле, принимающее путь в сети интернет до файла, уязвимо для SSRF. ![](https://i.imgur.com/j2Zttco.png) --- ![](https://i.imgur.com/XDd6X6g.png) Так как мы находимся в одной сети с HTTP-приложением, имеется возможность "попросить" приложение пройти NTLM-авторизацию. ![](https://i.imgur.com/xSTglEd.png) ![](https://i.imgur.com/aqUrdWl.png) Хорошо, к нам пришёл NetNTLMv2-хеш машинной учетной записи. Сделать downgrade-атаку не удаётся, провести brute-force атаку на хеш машинной учетной записи невозможно, поэтому пробуем Relay-атаку с последующей эксплуатацией Resource Based Constrained Delegation (RBCD) на узле Front. Для эксплуатации RBCD нужно иметь свою машинную учетную запись в домене, поэтому первым шагом добавим её в домен с помощью Relay-атаки. Запускаем инструмент ntlmrelayx и вынуждаем приложение обратиться к нам по протоколу HTTP. ![](https://i.imgur.com/SaL7VVG.png) ![](https://i.imgur.com/T4Q2VuH.png) Теперь у нас есть своя машина в домене - "test\$". Далее проведем эксплуатацию RBCD с использованием машины "test\$". ![](https://i.imgur.com/Kg5fA6C.png) ![](https://i.imgur.com/gz79bXY.png) Теперь от машины "test" мы можем запросить TGS-билет для узла Front от пользователя "Administrator" через механизмы S4U2Self и S4U2Proxy. ![](https://i.imgur.com/ojntket.png) Далее загружаем в переменную KRB5CCNAME полученный билет и извлекаем NTLM-хеш пароля машинной учетной записи на узле Front. ![](https://i.imgur.com/kdVNizr.png) Мы захватили сервер Front, можем читать флаг. ## Server FileSRV (10.10.1.101) Используя учетную запись в домене, проводим сбор информации. С помощью скрипта findDelegation.py из Impacket обнаруживаем, что с сервера Front на сервер FileSRV задана ограниченная Kerberos-делегация (any auth). ![](https://i.imgur.com/Vyhrkez.png) Имея доступ к NTLM-хешу машинной учетной записи сервера Front можно сразу выписать TGS-билет на сервер FileSRV от пользователя "Admiinistrator" через механизмы S4U2Self/S4U2Proxy. ![](https://i.imgur.com/tykTX74.png) Далее используем полученный билет для доступа на сервер FileSRV, меняем пароль локального администратора и получаем доступ к хранилищу LSA на сервере FileSRV. ![](https://i.imgur.com/h8Exk2Q.png) ![](https://i.imgur.com/zoOfua2.png) Мы захватили сервер Front, можем читать флаг. ## Server DC01 (10.10.1.10) Захватывать контроллер домена мы будем через эксплуатацию Unconstrained Kerberos Delegation. Информацию о Unconstrained delegation мы получили, когда запускали скрипт findDelegation.py из Impacket. Для эксплуатации воспользуемся набором инструментов исследователя Dirk-jan - https://github.com/dirkjanm/krbrelayx. Первым шагом нам необходимо добавить DNS-запись в домен, которая позволит определить наш ip-адрес (resolve), так как Kerberos работает только через имена, с ip-адресами Kerberos не работает. ![](https://i.imgur.com/zEm7Cd6.png) Затем зарегистрируем на машину с Unconstrained Delegation SPN, ссылающийся на наш хост. ![](https://i.imgur.com/FdEzpJR.png) Теперь при обращении на bsc.bank.msk любой в домене будет обращаться на наш хост. Более того, при получении TGS-билета для любой SPN на bsc.bank.msk, в TGS-билет, зашифрованный на ключе AES256 машинной учетной записи FileSRV, будет упакован TGT-билет клиента. Таким образом, у нас все готово для атаки и теперь нужно вынудить DC обратиться по SMB к нам и извлечь из TGS TGT-билет контроллера домена. Запускаем krbrelayx с ключем AES256 машинной учетной записи FileSRV. ![](https://i.imgur.com/Echu31R.png) И с помощью инструмента printerbug просим DC обратиться к нам. ![](https://i.imgur.com/spusM88.png) Теперь мы получили TGT-билет контроллера домена и можем сделать атаку DcSync. ![](https://i.imgur.com/RyVlTZz.png) ![](https://i.imgur.com/BKuHF4I.png) С полученной учетной записи администратора заходим на контроллер домена и забираем последний флаг. ![](https://i.imgur.com/2dQTx1M.png)