THM Tomghost

THM Tomghost

Max Alexeev (@wi_max)

Продолжаем решение уязвимых виртуальных машин на платформе TryHackme в рамках подготовки к сертификации OSCP.


Как всегда, начинаем со сканирования хоста. Для этого я использую следующий скрипт:

Результат сканирования выглядит следующим образом:

Анализ результата сканирования позволяет извлечь следующую информацию:

  1. Мы имеем дело с Apache Tomcat 9.0.30.
  2. Присутствует интересный сервис на 8009 под названием ajp13.
  3. SSH - как самый последний вариант.

Открываем наш веб-сервис:

Внешний вид веб-ресурса

Видя Apache Tomcat, первым делом приходит мысль о небезопасной аутентификации с последующим arbitrary file upload. Но в данном случае /manager/html недоступен.

В ходе просмотра данного ресурса не было выявлено ничего подозрительного или того, за что можно было бы зацепиться.

В ход пошел упомянутый ранее ajp13. Нехитрый ресерч обнаружил следующую уязвимость. Фактически она позволяет совершить LFI и прочитать чувствительную информацию из определенных файлов (если таковая имеется). Для ее реализации я воспользовался следующим эксплоитом и прочитал файл WEB-INF/web.xml.



Так как на панель администратора недоступна, единственный вариант, куда можно попробовать ввести данные - SSH. Пробуем и получаем доступ. 

Получение удаленного доступа

Сразу же видим интересные два файла. При попытке чтения credential.pgp становится ясно, что файл зашифрован. tryhackme.asc же содержит приватный ключ.

Просмотрев домашнюю директорию, находим второго пользователя, у которого лежит флаг юзера.

Попытку повысить привилегии начинаем традиционно с sudo -l , но для нашего пользователя не предоставляет никаких возможностей - возвращаемся к найденному pgp. Попробуем его импортировать.

После импорта попробуем расшифровать файл:

и увидим, что требуется пароль.

Всегда, когда требуется пароль от приватного ключа, первая мысль обратиться к JohnTheRipper. Модуль gpg2john поможеть преобразовать приватный ключ в хэш, чтобы скормить его john.

Подбираем хэш, для этого я использую для этого базу rockyou:

Получаем пароль (alexandru), который позволяет нам расшифровать credential.gpg:

Получаем аутентификационные данные пользователя merlin.

merlin:asuyusdoiuqoilkda312j31k2j123j1g23g12k3g12kj3gk12jg3k12j3kj123j

Меняем пользователя и смотрим на наши возможности:

Возможности пользователя merlin

Нам доступен запуск команды zip с правами суперпользователя. Идем на gtfobins и спавним шелл:

Мы получили root на данной машине.

Report Page