Apache NiFi 高版本命令执行利用
1、背景
2020年rapid7公布过nifi一个Apache NiFi API Remote Code Execution漏洞,并公布了利用poc,这也是github流行的Apache NiFi Api 远程代码执行(RCE)的来源
https://www.rapid7.com/db/modules/exploit/multi/http/apache_nifi_processor_rce/
https://github.com/imjdl/Apache-NiFi-Api-RCE
漏洞也很简单,Apache NiFi 早期版本的NiFi 的默认安装是不安全的并且通过 HTTP 运行,该漏洞就是是利用 Apache NiFi 中的弱配置,也就是无需用户密码,可通过使用NiFi API自动创建ExecuteProcess 处理器创建、配置和运行命令。
目前能搜到的文章大多数都是使用这个exp 打反弹shell,能搜到的就不看了,我们来研究一下这个漏洞
2、环境搭建
官方先研究一下,养成好习惯 先看官方文档,看到ExecuteProcess是可以智界执行命令的
https://nifi.apache.org/documentation/v1/
下载nifi-1.28.1版本,解压后配置http访问(http默认无需认证 懒的) 需要修改的位置参照下边部分
# nifi-1.28.1 /conf/nifi.properties
#nifi.remote.input.secure=false
#nifi.web.http.host=127.0.0.1
#nifi.web.http.port=8080
#nifi.web.https.host=
#nifi.web.https.port=
#---------修改上边的配置-------------------
# --------改好后如下-----------------------
# 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 #
#############################################
# For security, NiFi will present the UI on 127.0.0.1 and only be accessible through this loopback interface.
# Be aware that changing these properties may affect how your instance can be accessed without any restriction.
# We recommend configuring HTTPS instead. The administrators guide provides instructions on how to do this.
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=
运行bin/nifi.cmd run 运行
3、验证命令执行
从文档来看ExecuteProcess可以直接执行命令,github的exp思路:
1、获取group组信息
2、创建processors
3、传递cmd命令实现命令执行
此exp的缺点是没有集成身份验证,没有回显,我们换个思路直接从界面操作,看能不能复现,经过一番探索发现步骤如下
拖一个processer下来,搜索excueprocess,可以看到危险的都有小盾牌标识,从描述看猜测这些都可以利用
再拖一个logmessage,把两个连起来
配置executeprocess,启动它
右键,listqueue即可看到结果
4、结论
可见此功能为nifi的提供的能力,当配置不当或弱密码时可以被恶意利用
- NIFI不设置登录是不安全,恶意攻击者可以通过processer执行系统命令。
- 应注意危险processer的权限控制,尽量限制nifi的访问权限
- 蓝队可以通过监控ExecuteProcess的常见和未授权访问为特征监测恶意访问
0 条评论
可输入 255 字