March 12, 2023

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

2) Spring4Shell

Поскольку система работает под управлением Spring Beans 5.3.17, то уязвима для Spring4Shell. Соответственно, я буду юзать 2й способ.


Будем использовать Metasploit:

Как только соединение получено, начинаем копаться:

Переходим в /home/frank:

Видим файл .m2 и смотрим его содержимое:

Нашли пароль для юзера phil. Отлично.
Но раз в директории пользака phil есть его креды, то они должны быть и для frank'a:

К сожалению, данные по-прежнему такие же. Но ничего страшного.

User flag

Давайте перейдем в ssh:

Странно, но пароль оказался неправильным. Давайте пойдем другим способом, а именно через 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