⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。

前言

随着企业数字化转型的深入,越来越多的业务系统迁移到云平台。云环境在带来便利的同时,也引入了新的安全风险——对象存储配置错误、云凭证泄漏、存储桶劫持、配置中心接管等问题频发。在SRC漏洞挖掘中,云安全问题往往能够从一个入口点扩散到整个云基础设施,造成远超单一Web漏洞的危害。本文将系统性地介绍云安全测试的核心方法论,帮助读者建立完整的云安全测试思维体系。


一、云安全测试概述

1. 云环境与传统环境的差异

对比项传统环境云环境
攻击面单一Web服务器Web + 对象存储 + 容器 + 配置中心 + 数据库
凭证管理本地配置文件AKSK、STS临时凭证、IAM角色
权限边界服务器权限云资源级权限(存储桶、函数计算、数据库)
信息泄漏影响本地数据整个云账号下的所有资源
横向移动内网渗透云资源间权限复用

2. 云安全测试的核心价值

为什么重视云安全

  • 云凭证一旦泄漏,攻击者可获取整个云账号的控制权
  • 对象存储配置错误可能导致大规模数据泄漏
  • 配置中心(如Nacos)凭据泄漏可导致所有关联服务被接管
  • 云安全问题往往与Web漏洞形成攻击链,危害成倍放大

核心原则:云安全测试不是独立的测试领域,而是Web安全测试的延伸和放大器。


二、云资产识别与信息收集

1. 识别云厂商与服务类型

常见云厂商特征

云厂商对象存储域名特征其他服务特征
阿里云*.oss-*.aliyuncs.comECS、RDS、RAM
腾讯云*.cos.*.myqcloud.comCVM、TKE、CAM
华为云*.obs.*.myhuaweicloud.comECS、CCE
AWS*.s3.*.amazonaws.comEC2、IAM、Lambda
MinIO自建域名自建对象存储服务

识别方法

  • 从文件上传后的回显URL识别云厂商
  • 从DNS解析记录识别云服务类型
  • 从响应头中的Server字段识别服务(如Server: MinIO

2. 云特征识别资源

推荐资源

  • 云安全知识库(wiki.teamssix.com):系统化的云安全知识体系
  • 云服务特征库:各云厂商的标准接口路径和响应特征

3. 端口扫描与服务发现

关键端口与服务

  • 9000/MinIO:对象存储管理界面
  • 8100/UNO:远程调用服务
  • 8848/Nacos:配置中心
  • 5672/RabbitMQ:消息队列
  • 3306/MySQL、6379/Redis:数据库

扫描策略

  • 对目标IP的C段进行端口扫描
  • 发现非标准端口上的云服务
  • 结合目录扫描发现管理后台路径

三、对象存储(OSS)安全测试

1. 正常访问特征

安全访问模式

  • 访问对象存储内容需要完整的签名URL
  • URL中包含ExpiresOSSAccessKeyIdSignature等参数
  • 签名有过期时间限制

测试思路:如果可以直接访问存储桶内容而无需签名参数,说明存在权限配置错误。

2. 公共读/公共写权限配置错误

公共读权限

检测方法

  1. 获取对象存储的域名(从文件上传回显URL中提取)
  2. 直接访问存储桶根域名
  3. 如果返回XML格式的文件列表,说明存储桶配置了公共读权限

危害

  • 可直接列出存储桶中的所有文件
  • 可下载存储桶中的任意文件
  • 可能泄漏敏感数据(数据库备份、日志文件、配置文件)
公共读写权限

检测方法

  1. 尝试向存储桶上传文件(PUT请求)
  2. 尝试删除存储桶中的文件(DELETE请求)
  3. 如果操作成功,说明存储桶配置了公共写权限

危害

  • 可上传任意文件到存储桶
  • 可覆盖已有文件
  • 可删除存储桶中的文件

3. PUT权限滥用

测试步骤

  1. 找到文件上传接口
  2. 将请求方法改为PUT
  3. URL路径填写任意文件名(可选择html、svg等可执行文件类型)
  4. 内容可以是XSS脚本或其他恶意内容
  5. 请求成功后,通过URL直接访问上传的文件

上传路径检测

  • PUT请求可能在某些路径下没有权限,在其他路径下有权限
  • 尝试不同深度的路径(如xx/a/b/c.html vs xx/a/c.html
  • 检测是否能覆盖已存在的文件

危害

  • 上传恶意文件(HTML、SVG等)实现XSS攻击
  • 覆盖系统关键文件
  • 上传后门文件

4. 存储桶遍历

测试方法

  • 通过路径删减、目录回溯等方式测试是否存在存储桶根目录遍历能力
  • 使用专用OSS扫描工具生成存储桶文件清单报告
  • 关注存储桶ACL配置和上传接口是否缺少身份校验

5. 存储桶劫持/接管

识别特征

页面特征

  • NoSuchBucket
  • The specified bucket does not exist

产生原因

  • 域名解析未删除,但存储桶已被删除
  • 代码中仍在引用已删除的存储桶
测试方法
  1. 发现目标域名指向一个不存在的存储桶
  2. 在云服务商处注册相同地区和前缀的存储桶
  3. 由于域名解析仍在指向该存储桶,访问域名时会显示攻击者控制的内容

危害

  • 可在目标域名下托管任意内容
  • 可实现钓鱼攻击
  • 可上传恶意文件影响企业声誉

6. 存储桶爆破

正常URL格式xx.oss-guangzhou.xx.com

测试步骤

  1. 分析存储桶域名的命名规律
  2. 对有规律的部分进行爆破(如xx1xx2
  3. 爆破成功后再进行目录遍历
  4. 发现新的存储桶和其中的文件

四、云凭证(AKSK)安全测试

1. AKSK泄漏场景

常见泄漏位置

  • GitHub:代码仓库中硬编码的AKSK
  • 小程序反编译:反编译后的源码中泄漏
  • APK反编译:Android应用中硬编码
  • 接口响应内容:API接口返回中包含AKSK
  • 前端显示:页面源码或JS中暴露
  • 临时Key(STS):响应中包含临时凭证,特征为包含STS字样

2. AKSK识别特征

必含字段

  • AccessKeyId
  • AccessKeySecret

临时凭证额外特征

  • 包含SecurityToken
  • 包含Expiration
  • AccessKeyId以STS.开头

3. AKSK利用方法

工具化利用

OSS Browser

  • 图形化管理工具,可直接连接对象存储
  • 支持阿里云、AWS等主流云厂商
  • 可视化浏览、上传、下载文件

CF(CloudFlare)框架

  • 云环境利用框架
  • 支持自动化的云资源发现和利用
  • 可执行命令、获取实例元数据等

CloudSword

  • 云安全综合测试工具
  • 支持多云厂商的AKSK利用
  • 提供图形化界面操作
手动利用思路
  1. 配置命令行工具:使用云厂商提供的CLI工具配置AKSK
  2. 列举资源:列举云账号下的所有资源(ECS、OSS、RDS等)
  3. 权限评估:评估AKSK的权限范围
  4. 横向移动:利用当前凭证访问其他云资源

4. 从源码中提取AKSK

反编译审计

  • 对获取到的class文件、源码进行反编译审计
  • 查找硬编码的云服务密钥(短信AKSK、OSS AKSK等)
  • 关注配置文件(application.yml、config.properties等)

日志与调试信息

  • 分析系统日志中是否包含AKSK
  • 关注调试模式下的详细错误信息

五、配置中心与数据库接管

1. Spring Boot Actuator 未授权访问

检测路径

  • /actuator/env
  • /actuator/heapdump
  • /actuator/trace

heapdump作为凭据源

  • Spring Actuator的heapdump是数据库凭据和账号密码的高价值来源
  • 需重点扫描和解析heapdump文件
  • 使用工具从heapdump中提取敏感信息

Token获取渠道扩展

  • 当Actuator接口需要Token时,尝试从同一系统的其他功能点获取X-Access-Token
  • 低权限功能点可能返回高权限接口所需的Token

2. 配置中心接管

Nacos 配置中心

检测方法

  • 通过Spring Boot Admin的actuator端点获取Nacos配置中心凭证
  • 登录Nacos管理界面
  • 导出全量配置

凭据提取

  • 从Nacos配置中提取MySQL、Redis、RabbitMQ等多组件的数据库凭据
  • 利用获取的凭据连接外网暴露的数据库端口
  • 实现数据批量导出
其他配置中心
  • Apollo:类似Nacos的配置中心,同样需要关注凭据泄漏
  • Consul:服务发现和配置工具
  • Etcd:分布式键值存储

3. 数据库直接接管

攻击链

信息泄露/未授权访问 → 获取数据库凭据 → 连接数据库 → 数据导出

凭据来源

  • 配置文件中硬编码的数据库连接信息
  • heapdump中解析出的数据库凭据
  • 配置文件(proxool.xml、application.yml等)中的连接字符串

密码算法逆向

  • 分析系统密码加密算法(如Base64(MD5(用户名+明文密码)))
  • 实现离线批量破解

六、云原生服务安全测试

1. MinIO 对象存储

检测方法

  • 端口扫描发现MinIO服务(默认端口9000)
  • 测试未授权访问或弱口令
  • 获取文件列表并下载敏感文件

测试步骤

  1. 访问MinIO管理界面
  2. 测试默认凭据(minioadmin/minioadmin)
  3. 如果登录成功,浏览所有存储桶和文件
  4. 下载敏感文件进行分析

2. UNO 远程调用服务

检测方法

  • 对非标准端口(如8100)进行扫描
  • 发现潜在的远程调用服务

利用链

未授权服务暴露 → 任意文件读写 → 命令执行 → 提权 → 读取Web容器配置文件 → 获取数据库凭据

3. 容器与K8s安全

检测方向

  • 容器镜像中的敏感信息
  • K8s API Server的未授权访问
  • 容器逃逸漏洞
  • ServiceAccount Token泄漏

七、Token泄漏到云API的攻击链

1. 攻击链概述

前端代码敏感信息审计 → 提取Token/凭证 → 复用Token调用后端云存储API → 绕过认证实现文件上传/访问

2. 测试方法

步骤1:前端源码审计

  • 审查前端JS/HTML源码
  • 提取硬编码的accessToken、应用Token等凭证

步骤2:Token复用

  • 获取的Token不仅可访问预期接口
  • 还可复用于调用平台后端OSS文件上传接口

步骤3:云存储API未授权访问

  • 当认证Token泄漏后,攻击者可绕过登录态
  • 直接调用对象存储相关API
  • 实现文件上传、下载、删除等操作

八、工具链

1. 云安全综合框架

  • CF(CloudFlare):https://wiki.teamssix.com/CF/ — 云环境利用框架
  • CloudSword:https://github.com/wgpsec/cloudsword/releases — 云安全综合测试工具
  • oss-browser:https://github.com/aliyun/oss-browser — 对象存储图形化管理工具

2. 存储桶扫描工具

  • ossx.py:存储桶文件清单生成工具
  • OSSFileBrowse:OSS文件浏览工具
  • 专用OSS扫描工具:自动化发现存储桶配置问题

3. 信息提取工具

  • heapdump解析工具:从Spring Actuator heapdump中提取敏感信息
  • 反编译工具:从class文件、APK、小程序中提取AKSK

4. 配置与连接工具

  • 云厂商CLI工具(aliyuncli、awscli等)
  • 数据库连接工具(Navicat、DBeaver等)
  • Redis连接工具(RedisInsight、redis-cli等)

九、实战心得

1. 云安全是Web安全的延伸

云安全问题往往源于Web应用的信息泄漏或配置错误。不要孤立地看待云安全测试,而是将其作为Web安全测试的延伸环节。

2. 一个凭证 = 整个云账号

AKSK等云凭证的泄漏危害远超单一Web漏洞。获取一个有效的AKSK,可能意味着获取了整个云账号的控制权。

3. 从文件上传回显识别云厂商

文件上传是发现对象存储的最直接途径。通过回显URL的域名特征,可以快速识别使用的云厂商和服务类型。

4. 非标准端口不容忽视

云原生服务(MinIO、Nacos、UNO等)常部署在非标准端口上。端口扫描时要扩大范围,不要只关注80/443/3306等常见端口。

5. 配置中心是宝藏

Nacos、Apollo等配置中心往往集中管理着所有服务的凭据。一旦接管配置中心,等于接管了整个微服务架构。

6. 攻击链思维

云安全问题往往不是孤立的,而是形成攻击链:

信息泄露 → 获取凭证 → 连接数据库 → 数据导出 → 权限提升 → 云资源接管

7. 批量与自动化

云资源数量庞大,手工测试效率低下。善用自动化工具进行存储桶扫描、AKSK检测、配置审计。


十、结语

云安全测试是SRC漏洞挖掘中一个快速成长的领域。从对象存储配置错误到云凭证泄漏,从存储桶劫持到配置中心接管,每一个云安全问题都可能造成远超预期的危害。本文系统性地介绍了云资产识别、对象存储测试、云凭证利用、配置中心接管和云原生服务测试的完整方法论,希望能帮助读者建立系统化的云安全测试思维体系。

核心要点回顾

1. 信息收集是基础

  • 识别云厂商和服务类型(从URL特征、响应头判断)
  • 端口扫描发现非标准端口上的云服务
  • 熟悉各云厂商的标准接口和响应特征

2. 对象存储是高频目标

  • 公共读/写权限配置错误
  • PUT权限滥用(文件上传/覆盖)
  • 存储桶遍历和爆破
  • 存储桶劫持/接管

3. 云凭证是关键

  • AKSK的提取(源码、接口响应、GitHub)
  • STS临时凭证的识别和利用
  • 工具化批量利用云凭证

4. 配置中心是宝藏

  • Spring Actuator heapdump解析
  • Nacos/Apollo配置中心接管
  • 从配置中提取多组件数据库凭据

5. 攻击链思维

  • 信息泄露 → 凭证获取 → 云资源接管
  • 多个低危漏洞组合成高危攻击链

防御建议

对于防守方来说,云安全防护需要从架构设计入手:

  1. 最小权限原则:AKSK按最小权限原则分配,避免使用根账号凭证
  2. 存储桶权限管控:禁止公共读写权限,使用预签名URL临时授权
  3. 凭证安全管理:AKSK不硬编码在代码中,使用密钥管理服务(KMS)
  4. Actuator安全:生产环境禁用Actuator或严格限制访问
  5. 配置中心隔离:配置中心不暴露到公网,使用内网访问控制
  6. 监控与审计:对云资源的异常访问行为进行监控和告警
  7. 定期轮换:定期轮换AKSK和数据库密码

更多推荐