
CVE-2024-23897 — это критическая уязвимость, обнаруженная в Jenkins, популярном инструменте непрерывной интеграции. Эта уязвимость позволяет удалённо выполнять команды (RCE) на сервере Jenkins из-за отсутствия надлежащих ограничений на доступ к узлам и функции подключения.
CVE-ID: CVE-2024-23897Тип: Удалённое выполнение кода (RCE)Воздействие: Неаутентифицированный злоумышленник может отправлять специально созданные запросы, которые позволяют выполнять произвольные команды на сервере Jenkins, что приводит к компрометации системы.Затронутые версии: версии Jenkins до исправления этой CVE.jenkins-cli.jar, который обеспечивает связь между Jenkins и его узлами.Jenkins.Jenkins до последней доступной версии, в которой исправлена эта уязвимость.Этот Python-скрипт эксплуатирует уязвимость CVE-2024-23897 на устаревших серверах Jenkins. Скрипт взаимодействует с сервером Jenkins и выполняет произвольные команды с помощью файла jenkins-cli.jar.
Python 3.xrequests и subprocess, установленные в среде выполнения.уязвимому серверу Jenkins.Скачать файл jenkins-cli.jar` с сервера Jenkins.Подключить узел Jenkins с помощью загруженного файла и выполнить вредоносные команды на удалённом сервере.Выполнить определённые действия, такие как чтение произвольных файлов на сервере.Установка зависимостей: Убедитесь, что у вас установлены Python 3 и библиотека requests. Вы можете установить её с помощью pip:pip3 install requests
Использование скрипта: Загрузите файл эксплойт-скрипта и запустите его из терминала:
python3 cve-2024-23897.py
Скрипт попросит вас ввести следующие параметры:
IP-адрес сервера Jenkins: IP-адрес, на котором запущен Jenkins.Порт сервера Jenkins: Порт, на котором прослушивает Jenkins (по умолчанию 8080).Путь к файлу для чтения: Путь к файлу, к которому вы хотите получить доступ на уязвимом сервере (например, /etc/passwd).Скрипт загрузит файл jenkins-cli.jar с сервера Jenkins, а затем выполнит команды, определённые в файле, который вы указали в качестве параметра.
Чтобы протестировать уязвимость в контролируемой среде, мы включили уязвимую лабораторию на базе Docker. Вам нужно лишь распаковать ZIP-файл на вашей машине с Kali Linux, запустить .sh-файл и развернуть среду Docker для выполнения теста.
Загрузите LAB .tar: Сначала распакуйте файл, содержащий уязвимую лабораторию:
Запустите скрипт развёртывания: В папке у вас должно быть 2 файла, один из них — auto_mount.sh. Этот скрипт предназначен для автоматического развёртывания уязвимой среды Docker и лаборатории в формате TAR, которую вы должны передать в качестве параметра. Запустите его с помощью:
bash auto_mount.sh cve-2024-23897.tar
Скрипт примет сжатый файл Docker .tar в качестве параметра для запуска уязвимого контейнера и проверки эксплуатации уязвимости.
Подключитесь к серверу Jenkins: Как только среда Docker будет запущена, вы сможете подключиться к серверу Jenkins с вашей машины Kali Linux. Интерфейс Jenkins будет доступен по IP-адресу и порту, настроенным в контейнере.
Запустите эксплойт-скрипт: Теперь, когда уязвимый сервер Jenkins запущен, вы можете запустить эксплойт-скрипт на машине Kali и попробовать выполнить удалённый код на Jenkins.
Python-скрипт для эксплуатации уязвимости CVE-2024-23897.Docker.Docker для запуска уязвимого сервера Jenkins.Разработано: d1se0
Контакт: [email protected]