Apache NiFi 高版本命令执行利用
字数 1137 2025-08-22 12:22:30

Apache NiFi 高版本命令执行漏洞分析与利用

1. 漏洞背景

Apache NiFi 存在一个远程代码执行漏洞,最早由 Rapid7 在 2020 年公布。该漏洞利用 NiFi API 自动创建 ExecuteProcess 处理器来执行系统命令。

相关资源:

  • Rapid7 漏洞详情: https://www.rapid7.com/db/modules/exploit/multi/http/apache_nifi_processor_rce/
  • GitHub PoC: https://github.com/imjdl/Apache-NiFi-Api-RCE

2. 漏洞原理

该漏洞利用 Apache NiFi 的弱配置:

  • 早期版本的 NiFi 默认安装不安全
  • 默认通过 HTTP 运行
  • 无需用户密码即可访问
  • 通过 NiFi API 可以创建、配置和运行 ExecuteProcess 处理器执行命令

3. 环境搭建

3.1 下载与配置

  1. 下载 NiFi 1.28.1 版本
  2. 修改配置文件 conf/nifi.properties
# Site to Site properties
nifi.remote.input.host=
nifi.remote.input.secure=false
nifi.remote.input.socket.port=
nifi.remote.input.http.enabled=true
nifi.remote.input.http.transaction.ttl=30 sec
nifi.remote.contents.cache.expiration=30 secs

# web properties
nifi.web.http.host=127.0.0.1
nifi.web.http.port=8080
nifi.web.http.network.interface.default=
nifi.web.https.host=
nifi.web.https.port=

3.2 启动 NiFi

运行命令:

bin/nifi.cmd run

4. 漏洞验证与利用

4.1 通过 UI 界面利用

  1. 创建处理器

    • 拖拽一个 ExecuteProcess 处理器到画布
    • 注意:危险的处理器通常有小盾牌标识
  2. 连接处理器

    • 再拖拽一个 LogMessage 处理器
    • 将两个处理器连接起来
  3. 配置 ExecuteProcess

    • 配置要执行的命令
    • 启动处理器
  4. 查看结果

    • 右键处理器,选择 "List queue" 查看命令执行结果

4.2 通过 API 利用(自动化)

GitHub PoC 的思路:

  1. 获取 group 组信息
  2. 创建 processors
  3. 传递 cmd 命令实现命令执行

当前 PoC 的局限性

  • 没有集成身份验证
  • 没有命令执行回显

5. 防御建议

  1. 认证配置

    • 不要使用默认的无认证配置
    • 为 NiFi 设置强密码
  2. 访问控制

    • 限制 NiFi 的访问权限
    • 对危险处理器(如 ExecuteProcess)设置严格的权限控制
  3. 监控措施

    • 监控 ExecuteProcess 的创建和使用
    • 检测未授权访问尝试
  4. 安全配置

    • 使用 HTTPS 替代 HTTP
    • 遵循官方安全配置指南

6. 蓝队检测建议

可以通过以下特征检测恶意活动:

  1. 异常的 ExecuteProcess 处理器创建
  2. 未授权访问尝试
  3. 可疑的命令执行模式

7. 总结

Apache NiFi 的 ExecuteProcess 处理器功能在配置不当时可被恶意利用执行系统命令。管理员应确保:

  • 启用认证
  • 限制访问
  • 监控可疑活动
  • 及时更新到安全版本
Apache NiFi 高版本命令执行漏洞分析与利用 1. 漏洞背景 Apache NiFi 存在一个远程代码执行漏洞,最早由 Rapid7 在 2020 年公布。该漏洞利用 NiFi API 自动创建 ExecuteProcess 处理器来执行系统命令。 相关资源 : Rapid7 漏洞详情: https://www.rapid7.com/db/modules/exploit/multi/http/apache_ nifi_ processor_ rce/ GitHub PoC: https://github.com/imjdl/Apache-NiFi-Api-RCE 2. 漏洞原理 该漏洞利用 Apache NiFi 的弱配置: 早期版本的 NiFi 默认安装不安全 默认通过 HTTP 运行 无需用户密码即可访问 通过 NiFi API 可以创建、配置和运行 ExecuteProcess 处理器执行命令 3. 环境搭建 3.1 下载与配置 下载 NiFi 1.28.1 版本 修改配置文件 conf/nifi.properties : 3.2 启动 NiFi 运行命令: 4. 漏洞验证与利用 4.1 通过 UI 界面利用 创建处理器 : 拖拽一个 ExecuteProcess 处理器到画布 注意:危险的处理器通常有小盾牌标识 连接处理器 : 再拖拽一个 LogMessage 处理器 将两个处理器连接起来 配置 ExecuteProcess : 配置要执行的命令 启动处理器 查看结果 : 右键处理器,选择 "List queue" 查看命令执行结果 4.2 通过 API 利用(自动化) GitHub PoC 的思路: 获取 group 组信息 创建 processors 传递 cmd 命令实现命令执行 当前 PoC 的局限性 : 没有集成身份验证 没有命令执行回显 5. 防御建议 认证配置 : 不要使用默认的无认证配置 为 NiFi 设置强密码 访问控制 : 限制 NiFi 的访问权限 对危险处理器(如 ExecuteProcess)设置严格的权限控制 监控措施 : 监控 ExecuteProcess 的创建和使用 检测未授权访问尝试 安全配置 : 使用 HTTPS 替代 HTTP 遵循官方安全配置指南 6. 蓝队检测建议 可以通过以下特征检测恶意活动: 异常的 ExecuteProcess 处理器创建 未授权访问尝试 可疑的命令执行模式 7. 总结 Apache NiFi 的 ExecuteProcess 处理器功能在配置不当时可被恶意利用执行系统命令。管理员应确保: 启用认证 限制访问 监控可疑活动 及时更新到安全版本