Найти в Дзене
AUTHORITY

HTB – [Writeup] Blurry.

Оглавление

В этой статье предлагаем Вам рассмотреть writeup машины с площадки "HackTheBox", которая называется Blurry.

Enumeration

Для начала просканируем порты с помощью nmap.

У нас открыты 2 порта, на 80 порту видим редирект на app.blurry.htb (добавляем в hosts):

```

echo “10.129.31.61 app.blurry.htb” | sudo tee -a /etc/hosts

```
Забегая вперед, скажу, что фаззинг директорий результатов не дал, а фаззинг поддоменов дал нам еще один хост chat.blurry.htb, однако ничего полезного для решения машины не получено.

Exploitation

Открываем в браузере http://app.blurry.htb

-2

ClearML — это платформа с открытым исходным кодом, которая автоматизирует и упрощает разработку и управление решениями машинного обучения для тысяч групп специалистов по обработке и анализу данных по всему миру.

Для работы с платформой обратимся к официально документации: https://clear.ml/docs/latest/docs/getting_started/ds/ds_first_steps/

Кому то может будет удобнее прочитать на хабре: https://habr.com/ru/articles/691314/

Для входа в систему можно использовать любое имя пользователя, после чего мы попадаем на следующее окно:

-3

Обращаем внимание на процесс Review JSON Artifacts периодически запускаемый на платформе.

-4

Указанный процесс запущен в проекте Black Swan. Анализ полученного python кода говорит нам о том, что указанный процесс с некоторой периодичностью проверяет проект Black Swan на наличие в нем рабочих тасков, в которых парсится значение artifact-a через параметр get(), после чего его содержимое выводится в консоль, а task удаляется.

Долгий поиск нужного вектора атаки привел меня на следующий сайт: https://hiddenlayer.com/research/not-so-clear-how-mlops-solutions-can-muddy-the-waters-of-your-supply-chain/

Соответственно, необходимо подробнее рассмотреть уязвимость - CVE-2024-24590: Pickle Load on Artifact Get.

Там же и расписывается пример использования указанной уязвимости, позволяющий получать RCE на сервере. На сервере установлена ClearML -
v. 1.13.1, как раз подверженная указанной уязвимости, кажется мы нашли нужный вектор.

Итак, для работы с ClearML нам необходимо инициализировать ее на своей рабочей машине, для этого необходимо ввести в консоле команду: clearml-init

-5

Далее нам необходимо ввести параметры конфигурации, которые мы находим в настройках (не забываем добавить указанные там хосты в /etc/hosts):

-6
-7

Поздравляю, можно начинать ломать тачку. Для этого обращаемся к официально документации: https://clear.ml/docs/latest/docs/getting_started/ds/ds_first_steps/

Используя все имеющиеся у нас данные, немного допиливаем код к CVE-2024-24590 с указанного выше сайта и загружаем необходимый таск с артифактом в проект Black Swan.

-8
-9

Осталось подождать пока отработает Review JSON Artifact. Ура, есть контакт...

-10

Privilege Escalation

Для начала попробуем найти пасс от юзера или ssh ключ.

-11

Видим директорию .ssh, в которой есть необходимый id_rsa, дальше дело техники.

-12

User флаг в кармане, начинаем искать векторы на LPE.

-13

Старая добрая команда sudo-l

-14

Результаты показали нам баш скрипт, запускаемый с рут правами, давайте его изучим.

-15

Кроме того, обращаем внимание на папку /models, права на запись в которую имеет не рутовый пользователь, кроме того в указанной папке содержатся файлы запускаемые с root правами.

-16

Не буду сильно углубляться в полный анализ полученных скриптов, нам нужно знать только то, что баш скрипт /usr/bin/evaluate_model использует для работы питон скрипт /models/evaluate_model.py, который первым делом импортирует модуль torch. Давайте попробуем его подменить:

echo ‘import os; os.system(“bash”)’ > /models/torch.py

sudo /usr/bin/evaluate_model /models/demo_model.pth

-17

Поздравляю, мы рутанули тачку.

-18

А на этом всё!! Спасибо за внимание. Подписывайтесь на наш telegram-канал AUTHORITY. Пишите комментарии.