目录
0x01 漏洞简介
0x02 漏洞复现
启动 nacos 环境
漏洞 EXP
未鉴权环境测试
鉴权环境测试
0x03 EXP分析
0x04 修复方案
最近网上爆出 Nacos 的 0day,跟着复现学习下。
启动 nacos 环境
下载nacos-server-2.3.2版本:
https://github.com/alibaba/nacos/releases
解压后在 bin 目录下启动 nacos, 启动命令:startup.sh -m standalon根据官方的描述,2.2.2 版本后的 nacos 默认启动是没有开启鉴权的。
开启鉴权
修改 nacos conf 目录下的application.properties 即可。支持热更新。
下载 exp:
https://github.com/ayoundzw/nacos-poc
这里先测试未开启鉴权的环境进行测试,命令执行成功。
抓包查看,可以看到调用接口 /nacos/v1/cs/ops/derby
开启鉴权后进行测试
提示没有权限
添加 Token 后访问,命令执行成功。
查看 exp 中的 exploit.py
文件,发现先后调用了两个接口/nacos/v1/cs/ops/data/removal
、/nacos/v1/cs/ops/derby
。
查看 exp 中的 service.py
文件,获取 payload 信息。
将 payload 使用 base64 解码,然后保存成 a.jar
文件,解压后得到 java 的 Class 文件,推测是加载的执行代码的类。
搜索关于 /nacos/v1/cs/ops/derby
的信息,发现该接口存在过 SQL 注入漏洞。Nacos Derby SQL注入漏洞:
https://blog.csdn.net/qq_37113223/article/details/138268522
综上,推测是先利用接口/nacos/v1/cs/ops/data/removal
写入 Java 命令执行的类,然后利用利用接口/nacos/v1/cs/ops/derby
SQL 注入漏洞进行命令执行。
经过测试, nacos的0day漏洞是需要登录后台才能利用,这里给出一个临时的修补漏洞的方法:
1、升级nacos到最新版本(原因:杜绝nacos前期出现的几个未授权访问漏洞)。
2、nacos 开启鉴权,禁止匿名访问。
3、设置复杂度较强的 nacos 口令。
写在最后
本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。
未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。