# 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)