Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
poc-CVE-2024-23897 — CVE-2024-23897: Произвольное чтение файлов в Jenkins, приводящее к RCE | Kitploit
Инструменты/GitHubGitHub/vmc8ll/poc-cve-2024-23897
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubvmc8ll/poc-cve-2024-23897

poc-CVE-2024-23897

CVE-2024-23897: Произвольное чтение файлов в Jenkins, приводящее к RCE

Репозиторий
67 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

poc-CVE-2024-23897

CVE-2024-23897: произвольное чтение файлов в Jenkins, ведущее к RCE 🎯 Поражённые продукты и версии

Продукт: Jenkins (сервер непрерывной интеграции/непрерывной поставки)

Версии: Jenkins 2.441 и более ранние, Jenkins LTS 2.426.2 и более ранние

Исправлено в: Jenkins 2.442, Jenkins LTS 2.426.3

📝 Описание

CVE-2024-23897 — критическая уязвимость в Jenkins, позволяющая неаутентифицированным атакующим читать произвольные файлы в файловой системе контроллера Jenkins. Уязвимость существует потому, что Jenkins не отключает функцию своего парсера CLI-команд, которая заменяет символ '@', за которым следует путь к файлу, содержимым этого файла.

Эта ошибка может привести к удалённому выполнению кода (RCE) в сочетании с другими методами, что делает её особенно опасной для организаций, использующих Jenkins в своих конвейерах CI/CD. 🔍 Детали уязвимости Корневая причина

Уязвимость возникает из-за функции expandAtFiles() в классе org.kohsuke.args4j.CmdLineParser. При разборе аргументов CLI, если парсер встречает символ '@', за которым следует путь к файлу, он читает и подставляет содержимое этого файла. Вектор атаки

Атакующие могут использовать эту уязвимость через CLI-интерфейс Jenkins без аутентификации: bash

java -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ help @/etc/passwd

Технический анализ Ограничения чтения файлов

Без аутентификации: можно прочитать только первые 3 строки файла (в зависимости от CLI-команды)

С разрешением 'Overall/Read': доступно полное содержимое файла

Бинарные файлы: могут быть извлечены, но возможны проблемы с кодировкой (Windows-1252 на Windows даёт лучшие результаты, чем UTF-8 на Linux)

Расширение поверхности атаки

После получения чтения файлов атакующие могут перейти к более серьёзным атакам:

Извлечение учётных данных:

    Чтение /var/jenkins_home/credentials.xml для получения зашифрованных учётных данных

    Чтение /var/jenkins_home/secrets/master.key и hudson.util.Secret для дешифрования

    Дешифрование учётных данных через консоль сценариев Jenkins: println(Hudson.util.Secret.fromString("{XXX=}").getPlainText())

Подделка файлов cookie "Remember-me":

    Получение административного доступа путём подделки cookie аутентификации

Выполнение произвольного кода:

    Достижение RCE через Resource Root URL, XSS или CSRF-векторы

💥 Воздействие Непосредственное воздействие

Конфиденциальность: полное раскрытие всех файлов на сервере Jenkins (исходный код, учётные данные, SSH-ключи, токены)

Целостность: атакующие могут изменять сборки, конвейеры и конфигурации

Доступность: возможность отказа в обслуживании или развёртывания программ-вымогателей

Реальная эксплуатация

Эта уязвимость активно эксплуатировалась в реальных условиях:

Добавлена в каталог CISA Known Exploited Vulnerabilities (KEV)

Использовалась бандами программ-вымогателей (RansomEXX) для компрометации инфраструктуры

Эксплуатировалась угрозой IntelBroker для кражи репозиториев GitHub и компрометации поставщиков ИТ-услуг

🔧 Обнаружение Индикаторы компрометации

Успешные попытки эксплуатации можно обнаружить с помощью:

HTTP-шаблоны запросов: text

POST /cli?remoting=false HTTP/1.1 Content-type: application/octet-stream [binary payload containing @/path/to/file]

Типичные примеры полезной нагрузки:

@/etc/passwd

@/var/jenkins_home/secrets/initialAdminPassword

@/etc/os-release

Запрос обнаружения Splunk text

index=web uri="/cli?remoting=false" http_method=POST http_status=200

🛡️ Смягчение Официальное исправление

Обновите до исправленных версий:

Jenkins ≥ 2.442

Jenkins LTS ≥ 2.426.3

Временное смягчение

Если немедленное обновление невозможно:

Отключите доступ к CLI Jenkins

Установите системное свойство Java: hudson.cli.CLICommand.allowAtSyntax=false

Ограничьте сетевой доступ к административному интерфейсу Jenkins

Внедрите правила WAF для блокировки запросов, содержащих шаблоны @/

🔗 Ссылки

Запись NVD

Рекомендации по безопасности Jenkins

Каталог KEV CISA

Исследование Splunk

Страница CVE Tenable 
📦 Сборка и запуск

bash

Build the exploit

go build -o jenkins-cve-2024-23897 exploit.go

Run the exploit

./jenkins-cve-2024-23897 http://target-jenkins:8080 /etc/passwd

Run with Go directly

go run exploit.go http://target-jenkins:8080 /etc/passwd

🎯 Примеры использования bash

Read sensitive files

./jenkins-cve-2024-23897 http://jenkins.internal:8080 /etc/passwd ./jenkins-cve-2024-23897 http://localhost:8080 /var/jenkins_home/secrets/initialAdminPassword

Read Windows file (if Jenkins runs on Windows)

./jenkins-cve-2024-23897 http://win-jenkins:8080 C:/Windows/win.ini

⚙️ Как это работает

Инициализация сеанса: генерируется уникальный 20-байтовый идентификатор сеанса

Формирование полезной нагрузки: создаётся бинарная полезная нагрузка со структурой help @/path/to/file

Этап отправки: полезная нагрузка отправляется на конечную точку CLI Jenkins

Этап получения: содержимое файла извлекается из ответа

Вывод: отображается содержимое файла или сообщение об ошибке

📊 Возможности

Чистая реализация на Go — без внешних зависимостей

Кроссплатформенность — работает на Windows, Linux, macOS

Настраиваемые тайм-ауты — регулируются для медленных сетей

Понятная обработка ошибок — подробные сообщения об ошибках

Бинарная безопасность — обрабатывает как текстовые, так и бинарные файлы

⚠️ Важные примечания

Только в образовательных целях — используйте только в системах, которыми вы владеете или на тестирование которых у вас есть разрешение

Неаутентифицированное чтение — без аутентификации можно прочитать только первые ~3 строки

Бинарные файлы — возможны проблемы с кодировкой (используйте целевую систему Windows для лучшего извлечения бинарных файлов)
Скачать инструмент