Inject Hack The Box WriteUp by artrone
Доброго времени суток, друзья! На повестке дня тачка Inject с уровнем "Easy".
Предлагаю не тянуть и начинать:
Разведка
Для начала, как и всегда, начнем с использования nmpa:
У нас открыт 22й и 8080й порты. Переходим на веб страницу:
В правом верхнем углу есть вкладка "Загрузить". Хм, интересно. Перейдем туда:
Давайте перехватим попытаемся загрузить файл и перехватить запрос:
Сначала я думал, что нужно обойти расширение, и мне это удалось. Жаль, конечно, что это не дало никакого результата. Давайте думать дальше.
Ничего интересного я в запросе я больше не увидел, поэтому давайте посмотрим дальнейшую логику загрузки и взаимодействия с загруженным файлом:
Так-с, нам предлагается просмотреть нашу загруженную картинку. Давайте так и сделаем:
Это выглядит, как потенциальная LFI, поскольку в данном контексте ?img=index.jpeg - путь до файла.
LFI (Local File Inclusion) - это возможность использования и выполнения локальных файлов на серверной стороне
Стандартно обойдя каталоги, мы получаем содержимое папки / .
Отлично, ведь это значит, что мы можем добыть ценную информацию для входа в систему.
Точка входа
Вообще, в данном случае есть 2 пути:
1) https://github.com/me2nuk/CVE-2022-22963
Поскольку система работает под управлением Spring Beans 5.3.17, то уязвима для Spring4Shell. Соответственно, я буду юзать 2й способ.
Будем использовать Metasploit:
Как только соединение получено, начинаем копаться:
Видим файл .m2 и смотрим его содержимое:
Нашли пароль для юзера phil. Отлично.
Но раз в директории пользака phil есть его креды, то они должны быть и для frank'a:
К сожалению, данные по-прежнему такие же. Но ничего страшного.
User flag
Странно, но пароль оказался неправильным. Давайте пойдем другим способом, а именно через shell:
Поскольку мы получили доступ к шеллу через frank'a и учетку phil'a, то давайте выполним команду su phil:
Пароль мы уже знаем, поэтому входим без проблем.
Для удобства, давайте воспользуемся reverse shell'oм:
Включаем прослушивание через nc и получаем бэкконнект:
Эскалация привилегий
https://gtfobins.github.io/gtfobins/ansible-playbook/
https://rioasmara.com/2022/03/21/ansible-playbook-weaponization/
Взяв за основу данные статьи, давайте напишем yml скрипт для повышения привелегий:
Этот скрипт используется для повышения привилегий доступа к системе. Он использует Ansible для выполнения команды chmod +s /bin/bash для изменения прав доступа к баш-скрипту. Это позволяет выполнять скрипты даже без необходимости использования рутовых привилегий.
Теперь закинем его на нашу тачку с помощью wget и python'a:
Данный скрипт необходимо перенести в директорию /opt/automation/tasks.
Далее ждем непродолжительное время, пишем bash -p и радуемся.
Всем добра!
НАШ ТГ-КАНАЛ: https://t.me/hackerblog