渗透测试实战-菠菜站渗透测试(Nacos反序列化漏洞利用)
免责声明:文章来源于真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
一、信息收集
1.站点是一个正常的80端口开放的http服务使用nginx进行搭建,对其目录进行了扫描,没有得到什么能利用的信息
2.类似的站点通常会开放22或3389来进行远程维护,通过扫描端口发现了一些意外收获
该服务器开放了大量的端口,其中不止有3306、6379这种数据库服务端口、3389远程rdp端口、还存在大量http服务端口,注意到其中存在8848,可能存在nacos系统
3.通过测试大部分开放HTTP服务的端口下都没有网站,不过也是有收获,加上刚开始看到的主站共有四个登录框,其中Seata分布式事务服务系统存在弱口令,直接就登陆进去了
Seata-Server:seata/seata
可惜登录进去后什么信息也没有,之前没了解过这个系统搜索了一下,好像没有什么能利用的
4.还有另外两个站点,对象存储系统和一个类似令牌存储的站点,尝试弱口令均没有成功
minio服务器:minioadmin/minioadmin
4.之前说发现了开放了8848端口的,使用字典进行扫描,果然发现存在nacos系统,并且通过字典扫描目录未授权获取了nacos的密码
未授权访问地址:
/nacos/v1/auth/users?pageNo=1&pageSize=1
可获取已经注册过的账号和加密后的密码
二、实战环节
1.直接利用nacos漏洞扫描工具进行漏洞扫描,发现其版本为2.0.3且存在多个版本漏洞
漏洞名称: Nacos token.secret.key默认配置(QVD-2023-6271)
漏洞描述: 开源服务管理平台 Nacos 中存在身份认证绕过漏洞,在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台,造成系统受控等后果。漏洞影响版本: 0.1.0 <= Nacos <= 2.2.0
漏洞名称: Nacos User-Agent权限绕过(CVE-2021-29441)
漏洞描述: 该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。
漏洞影响版本: Nacos <= 2.0.0-ALPHA.1
漏洞名称: Nacos Derby SQL注入漏洞 (CNVD-2020-67618)
漏洞描述: config server中有个接口,没有做任何的鉴权,即可执行sql语句,可以泄漏全部数据
漏洞影响版本: 与Nacos版本无关,看是否使用了内置的Derby数据库
漏洞修复方案: 对接口接口鉴权, 修改 nacos的application.properties配置文件nacos.core.auth.enabled=true,开启服务身份识别功能
2.利用权限绕过漏洞创建test用户登录nacos系统,查看系统配置(注意退出后清除该用户)
3.两个反序列化漏洞都需要手动测试,在测试后竟然发现该服务器存在Nacos Jraft Hessian反序列化漏洞,注入内存马后执行命令直接回显了Administrator权限
漏洞名称: Nacos Jraft Hessian反序列化漏洞(QVD-2023-13065)
漏洞描述: nacos默认的7848端口是用来处理集群模式下raft协议的通信,该端口的服务在处理部分jraft请求的时候使用hessian传输协议进行反序列化过滤不严,导致RCE
漏洞影响版本: 1.4.0 <= Nacos < 1.4.6 和 2.0.0 <= Nacos < 2.2.3
4.直接上webshell管理工具(我比较习惯用哥斯拉)利用注入的内存马进行上线
注意需要设置请求头,哥斯拉的设置为:
x-client-data: godzilla
Referer: https://www.google.com/
成功上线,利用命令查看服务进程,分析后发现好像只有windows自带的杀软
tasklist /svc 查看所有正在运行的进程及其服务信息
5.上线fscan对内网服务进行扫描,扫描后发现内网只有服务器一个地址,但是扫描出来了redis未授权访问
6.还是老套路,直接注入suo5内存马,做正向代理,访问redis数据库
成功连接redis服务器,其中存放着主站的账号,密码,ID等信息(经过测试后发现mysql数据库已经不再使用了,无法渗透)
6.到了这个时候其实已经拿下这个站点了,获得了所有的信息,但是想到最初扫描的端口目的就是为了拿到远程连接,而且已经获得了管理员用户权限完全可以创建一个新用户进行远程RDP登录,但是想尝试一下能不能获取管理员用户的密码,随即上传mimikatz尝试获取系统中账户的密码
通过命令查看当前服务器用户账户信息,发现服务器中存在多个用户
net users 列出所有用户账户
mimikazt使用命令读取密码信息,获取Administrator等多个用户密码
mimikatz.exe "privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::sam" exit
privilege::debug
:提升进程的权限到DEBUG
级别,这通常是为了获取对系统进程更多的控制权,包括读取其他进程的内存空间。
token::elevate
:提升当前访问令牌的权限,这通常用于绕过用户账户控制 (UAC) 或获取更高权限的操作。
sekurlsa::logonpasswords
:尝试从本地安全机构子系统服务 (LSASS) 进程中提取当前登录用户的密码信息。
lsadump::sam
:从本地 SAM (Security Account Manager) 数据库中转储用户账户信息,包括密码哈希。
exit
:退出 Mimikatz。webshell并不能做到真正的交互式回显,所以需要连起来一行执行命令(mimikatz是提供这种执行命令的方法,同样也能交互式输出)
7.利用Administrator用户账户/密码成功登录菠菜网站服务器
三、总结
成功拿下了菠菜网站的服务器,进行了远程桌面连接,通过最后登录和公网IP的查找也发现该服务器是一台云主机
感觉这次渗透一切都太顺利,服务器完全不设防,历史漏洞也没有修复,没什么技术含量,主要是对各种工具的使用,各位大佬当爽文看就行,希望以后大家做渗透测试的时候也都能碰到这样的站点
相关文章:

渗透测试实战-菠菜站渗透测试(Nacos反序列化漏洞利用)
免责声明:文章来源于真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本…...

Pytest框架直接右键运行 testcase.py,不执行最外层conftest
随笔记录 目录 1. 背景介绍 2. workaround method 2.1 通过命令行执行 某个测试用例 1. 背景介绍 Pytest 框架结构如下: TestCases:conftest.pyInstanta: conftest.pytest_instanta_tcpdump_pack_len.py# 当直接右键直接 运行 test_instanta_tcpdump_pack_l…...

Cxx primer-chap15-Object-Oriented Programming
面向对象编程的三个基本概念:数据抽象、继承和动态绑定(多态):基类应该提供一些类型无关的成员函数定义,将与类相关的函数留给不同的派生类定义:,派生类是通过类派生列表(class derivation list…...

当黑神话遇上AI:悟空背后的策划逆袭战
声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/2192.html 哈喽,亲爱的游戏迷,随着《黑神话:悟空》的上线,大家都在忙着“直面天命”了吧?今天我想和大家分享最…...

外呼触发通知发送闪信(mod_cti基于FreeSWITCH)
文章目录 前言联系我们手动外呼配置方法例子一:接收到180或183时触发闪信发送例子二:挂断后触发闪信发送 自动外呼配置方法例子:接收到180或183时触发闪信发送 前言 在呼叫中心中间件中,自动外呼触发闪信发送,我们可以…...

8.Java基础概念-方法
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words! 什么是方法 方法是程序…...

360安全浏览器如何彻底卸载
360安全浏览器是一款广泛使用的网络浏览工具,然而由于各种原因,用户可能需要将其从计算机中彻底移除。下面小编就给大家分享几种彻底卸载360安全浏览器的方法,避免留下影响系统性能的残留信息。(本文由https://chrome.cmrrs.com/站…...

构建基于LLM的应用程序——使用LLM的搜索和推荐引擎
在上一章中,我们介绍了构建对话应用程序的核心步骤。我们从一个基础的聊天机器人开始,然后逐步添加了更复杂的组件,例如记忆、非参数化知识和外部工具。借助LangChain的预构建组件以及Streamlit的UI渲染,这一切都变得相对简单。尽…...

Unity3D 模型碰撞检测问题详解
前言 在Unity3D游戏开发中,模型碰撞检测是至关重要的一环,它负责处理物体之间的交互、触发事件以及物理效果的实现。通过精确的碰撞检测,游戏世界得以呈现出更为真实和动态的交互体验。本文将详细介绍Unity3D中的碰撞检测原理、技术实现以及…...

springcloud集成seata实现分布式事务
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网:Apache Seata 文章目录 一、部署1.下载2.修改配置,nacos作注册中心,db存储 二、集成到springcloud项目1.引入依赖2.修改…...

[Leetcode 61][Medium]-旋转链表
目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题链接 二、整体思路 首先发现这样的规律:当k大于等于链表中节点总数n时,会发现此时旋转后的链表和kk%n时的旋转后的链表一样。同时对于特殊情况n0和n1时,无论k的值为多少都可以…...

高效分页策略:掌握 LIMIT 语句的正确使用方法与最佳实践
本文主要介绍limit 分页的弊端及线上应该怎么用 LIMIT M,N 平时经常见到使用 <limit m,n> 合适的 order by 来实现分页查询,这样做到底性能如何呢? 先来简单分析下,然后再实际验证一下。 无索引条件下,需要做大量的文件排…...

拼图游戏02
文章目录 概要整体架构流程代码过程小结 概要 现在需要将图片添加界面中 关键点在于它如何动态地根据游戏状态更新用户界面。它使用了Swing的布局管理器来定位组件,并且通过ImageIcon和JLabel来显示图像。注意,路径字符串中的反斜杠在Java中是转义字符…...

在本地进行Django支付宝扫码支付-当面付开发
这几天涉及到一个个人项目的支付开发场景,正好完成之后,做一下开发记录,给有需要的朋友做一下参考 涉及安装Python环境请参考我专栏中的历史文章,这里不再重复说明 环境: Python3.11 使用Django框架 因本次代码为沙…...

redis-RedisTemplate.opsForGeo 的geo地理位置相关的方法演示
主要方法:add : 添加一个地理位置distance: 计算两个元素之间的距离hash: 获取元素经纬度坐标经过geohash算法生成的base32编码值position: 获取集合中任意元素的经纬度坐标,可以一次获取多个radius:查询某个坐标或某个成员&#…...

做短视频矩阵要十几人团队吗?云微客助阵,一人即可
现在市面上主流的新媒体平台都进军了短视频赛道,对于众多企业和个人来说,短视频矩阵更是成为了提升影响力和拓展业务的关键。企业或个人可以根据自身产品特点和目标用户群体,构建账号矩阵,在多平台上建立账号矩阵,还可…...

常用语音识别开源工具的对比与实践
常用语音识别开源工具的对比 一.工具概述 1. WeNet 设计目标:WeNet 的设计主要聚焦于端到端(E2E)语音识别,特别是在流式识别方面的优化。其目标是提供一个可以在实际应用中达到低延迟和高精度的系统。模型架构: Con…...

Fortify代码安全测试工具在静态应用安全测试(SAST)方面针对典型问题的改进
Fortify代码安全测试工具作为行业内资深的老牌软件安全测试工具,可以同时支持静态代码扫描和动态代码扫描,本文我们讲述的主要是在静态代码扫描领域Fortify所面临的问题,以及最新的改进。 在应用安全领域,特别是静态应用安全测试&…...

AWS 消息队列服务 SQS
AWS 消息队列服务 SQS 引言什么是 SQSSQS 访问策略 Access Policy示例:如何为 DataLake Subscription 配置 SQS 引言 应用系统需要处理海量数据,数据发送方和数据消费方是通过什么方式来无缝集成消费数据的,AWS 提供 SQS 消息队列服务来解决…...

【iOS】——响应者链和事件传递链
事件传递 事件传递流程 发生触摸事件后,系统会将该事件封装成UIEvent对象加入到一个由UIApplication管理的事件队列 UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口…...

mysql查询慢
可能是连接数,或者缓存不够,可尝试添加如下参数,重启mysql [mysqld] max_connections50000 interactive_timeout604800 lock_wait_timeout600 wait_timeout604800 net_read_timeout604800 log-error/var/lib/mysql/mysqld.log slow_qu…...

【Java-==与equals】
与equals区别: 1.是关系运算符,equals()是0bject类中定义的方法 2.基本数据类型: 使用比较值,无法使用equals() 3.引用数据类型: 使用比较内存地址; 如果没有重写equals(),仍然调用的是0bject父类的equals(()方法,则比较的是内…...

ai回答 部署前端项目时需要使用ssh吗
SSH(Secure Shell)是一种网络协议,用于在不安全的网络上安全地访问远程计算机。SSH 提供了加密的命令行登录到远程计算机的功能,以及远程命令执行和其他服务。它常用于系统管理员管理服务器、开发者进行远程开发、用户通过终端访问…...

结合ChatGPT与Discord,提高团队合作效率
本文将教你如何集成Discord Bot,助力团队在工作中实现更高效的沟通与协作。通过充分发挥ChatGPT的潜力,进一步提升工作效率和团队协作能力。无需编写任何代码即可完成本文所述的操作,进行个性化定制只需对参数进行微调即可。 方案介绍 如果在…...

VisualStudio|开发环境相关技巧及问题
哈喽,你好啊,我是雷工! 本节继续学习VisualStudio相关内容,以前学习都是以能用为主,没有系统的学习,接下来会系统的学习相关内容, 以下为学习笔记。 01 第三方dll调用 ①:如果第三…...

Redis远程字典服务器(11)—— redis客户端介绍
一,基本介绍 前面学习的主要是各种Redis的基本操作/命令,都是再Redis命令行客户端,手动执行的,但是这种方式不是我们日常开发中主要的形式更多的时候,是使用Redis的api,来实现定制化的Redis客户端程序&…...

【mysql】mysql之DDL数据定义语言
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...

Word文件密码忘记,该如何才能编辑Word文件呢?
Word文件打开之后,发现编辑功能都是灰色的,无法使用,无法编辑,遇到这种情况,是因为Word文件设置了限制编辑导致的。一般情况下,我们只需要输入Word密码,将限制编辑取消就可以正常编辑文件了&…...

解锁移动办公新境界,七款顶尖移动终端管控软件分享!助您轻松掌控每一台移动设备,企业必备!
移动办公,它不仅打破了时间和空间的限制,提高了工作效率,还为员工创造了更加灵活的工作环境。然而,随着移动设备的普及,如何有效管理和控制这些终端,确保信息安全、提升工作效率呢? 今天&#…...

基于微信小程序的大用户心理咨询系统设计与实现---附源码99040
目录 1 绪论 1.1 研究背景 1.2研究现状 1.3论文结构与章节安排 2 基于微信小程序的大用户心理咨询系统设计与实现分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程分析 2.5本章小结 3 基于微信小程序的大用户心理咨询系统设计与实现总体设计 3.…...