В этой статье предлагаем Вам рассмотреть 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
ClearML — это платформа с открытым исходным кодом, которая автоматизирует и упрощает разработку и управление решениями машинного обучения для тысяч групп специалистов по обработке и анализу данных по всему миру.
Для работы с платформой обратимся к официально документации: https://clear.ml/docs/latest/docs/getting_started/ds/ds_first_steps/
Кому то может будет удобнее прочитать на хабре: https://habr.com/ru/articles/691314/
Для входа в систему можно использовать любое имя пользователя, после чего мы попадаем на следующее окно:
Обращаем внимание на процесс Review JSON Artifacts периодически запускаемый на платформе.
Указанный процесс запущен в проекте 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
Далее нам необходимо ввести параметры конфигурации, которые мы находим в настройках (не забываем добавить указанные там хосты в /etc/hosts):
Поздравляю, можно начинать ломать тачку. Для этого обращаемся к официально документации: https://clear.ml/docs/latest/docs/getting_started/ds/ds_first_steps/
Используя все имеющиеся у нас данные, немного допиливаем код к CVE-2024-24590 с указанного выше сайта и загружаем необходимый таск с артифактом в проект Black Swan.
Осталось подождать пока отработает Review JSON Artifact. Ура, есть контакт...
Privilege Escalation
Для начала попробуем найти пасс от юзера или ssh ключ.
Видим директорию .ssh, в которой есть необходимый id_rsa, дальше дело техники.
User флаг в кармане, начинаем искать векторы на LPE.
Старая добрая команда sudo-l
Результаты показали нам баш скрипт, запускаемый с рут правами, давайте его изучим.
Кроме того, обращаем внимание на папку /models, права на запись в которую имеет не рутовый пользователь, кроме того в указанной папке содержатся файлы запускаемые с root правами.
Не буду сильно углубляться в полный анализ полученных скриптов, нам нужно знать только то, что баш скрипт /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
Поздравляю, мы рутанули тачку.
А на этом всё!! Спасибо за внимание. Подписывайтесь на наш telegram-канал AUTHORITY. Пишите комментарии.