【SRC】基础思路篇14:云安全测试完全指南
文章目录
⚠️本博文所涉安全渗透测试技术、方法及案例,仅用于网络安全技术研究与合规性交流,旨在提升读者的安全防护意识与技术能力。任何个人或组织在使用相关内容前,必须获得目标网络 / 系统所有者的明确且书面授权,严禁用于未经授权的网络探测、漏洞利用、数据获取等非法行为。
前言
随着企业数字化转型的深入,越来越多的业务系统迁移到云平台。云环境在带来便利的同时,也引入了新的安全风险——对象存储配置错误、云凭证泄漏、存储桶劫持、配置中心接管等问题频发。在SRC漏洞挖掘中,云安全问题往往能够从一个入口点扩散到整个云基础设施,造成远超单一Web漏洞的危害。本文将系统性地介绍云安全测试的核心方法论,帮助读者建立完整的云安全测试思维体系。
一、云安全测试概述
1. 云环境与传统环境的差异
| 对比项 | 传统环境 | 云环境 |
|---|---|---|
| 攻击面 | 单一Web服务器 | Web + 对象存储 + 容器 + 配置中心 + 数据库 |
| 凭证管理 | 本地配置文件 | AKSK、STS临时凭证、IAM角色 |
| 权限边界 | 服务器权限 | 云资源级权限(存储桶、函数计算、数据库) |
| 信息泄漏影响 | 本地数据 | 整个云账号下的所有资源 |
| 横向移动 | 内网渗透 | 云资源间权限复用 |
2. 云安全测试的核心价值
为什么重视云安全:
- 云凭证一旦泄漏,攻击者可获取整个云账号的控制权
- 对象存储配置错误可能导致大规模数据泄漏
- 配置中心(如Nacos)凭据泄漏可导致所有关联服务被接管
- 云安全问题往往与Web漏洞形成攻击链,危害成倍放大
核心原则:云安全测试不是独立的测试领域,而是Web安全测试的延伸和放大器。
二、云资产识别与信息收集
1. 识别云厂商与服务类型
常见云厂商特征:
| 云厂商 | 对象存储域名特征 | 其他服务特征 |
|---|---|---|
| 阿里云 | *.oss-*.aliyuncs.com | ECS、RDS、RAM |
| 腾讯云 | *.cos.*.myqcloud.com | CVM、TKE、CAM |
| 华为云 | *.obs.*.myhuaweicloud.com | ECS、CCE |
| AWS | *.s3.*.amazonaws.com | EC2、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中包含
Expires、OSSAccessKeyId、Signature等参数 - 签名有过期时间限制
测试思路:如果可以直接访问存储桶内容而无需签名参数,说明存在权限配置错误。
2. 公共读/公共写权限配置错误
公共读权限
检测方法:
- 获取对象存储的域名(从文件上传回显URL中提取)
- 直接访问存储桶根域名
- 如果返回XML格式的文件列表,说明存储桶配置了公共读权限
危害:
- 可直接列出存储桶中的所有文件
- 可下载存储桶中的任意文件
- 可能泄漏敏感数据(数据库备份、日志文件、配置文件)
公共读写权限
检测方法:
- 尝试向存储桶上传文件(PUT请求)
- 尝试删除存储桶中的文件(DELETE请求)
- 如果操作成功,说明存储桶配置了公共写权限
危害:
- 可上传任意文件到存储桶
- 可覆盖已有文件
- 可删除存储桶中的文件
3. PUT权限滥用
测试步骤:
- 找到文件上传接口
- 将请求方法改为PUT
- URL路径填写任意文件名(可选择html、svg等可执行文件类型)
- 内容可以是XSS脚本或其他恶意内容
- 请求成功后,通过URL直接访问上传的文件
上传路径检测:
- PUT请求可能在某些路径下没有权限,在其他路径下有权限
- 尝试不同深度的路径(如
xx/a/b/c.htmlvsxx/a/c.html) - 检测是否能覆盖已存在的文件
危害:
- 上传恶意文件(HTML、SVG等)实现XSS攻击
- 覆盖系统关键文件
- 上传后门文件
4. 存储桶遍历
测试方法:
- 通过路径删减、目录回溯等方式测试是否存在存储桶根目录遍历能力
- 使用专用OSS扫描工具生成存储桶文件清单报告
- 关注存储桶ACL配置和上传接口是否缺少身份校验
5. 存储桶劫持/接管
识别特征
页面特征:
NoSuchBucketThe specified bucket does not exist
产生原因:
- 域名解析未删除,但存储桶已被删除
- 代码中仍在引用已删除的存储桶
测试方法
- 发现目标域名指向一个不存在的存储桶
- 在云服务商处注册相同地区和前缀的存储桶
- 由于域名解析仍在指向该存储桶,访问域名时会显示攻击者控制的内容
危害:
- 可在目标域名下托管任意内容
- 可实现钓鱼攻击
- 可上传恶意文件影响企业声誉
6. 存储桶爆破
正常URL格式:xx.oss-guangzhou.xx.com
测试步骤:
- 分析存储桶域名的命名规律
- 对有规律的部分进行爆破(如
xx1、xx2) - 爆破成功后再进行目录遍历
- 发现新的存储桶和其中的文件
四、云凭证(AKSK)安全测试
1. AKSK泄漏场景
常见泄漏位置:
- GitHub:代码仓库中硬编码的AKSK
- 小程序反编译:反编译后的源码中泄漏
- APK反编译:Android应用中硬编码
- 接口响应内容:API接口返回中包含AKSK
- 前端显示:页面源码或JS中暴露
- 临时Key(STS):响应中包含临时凭证,特征为包含
STS字样
2. AKSK识别特征
必含字段:
AccessKeyIdAccessKeySecret
临时凭证额外特征:
- 包含
SecurityToken - 包含
Expiration - AccessKeyId以
STS.开头
3. AKSK利用方法
工具化利用
OSS Browser:
- 图形化管理工具,可直接连接对象存储
- 支持阿里云、AWS等主流云厂商
- 可视化浏览、上传、下载文件
CF(CloudFlare)框架:
- 云环境利用框架
- 支持自动化的云资源发现和利用
- 可执行命令、获取实例元数据等
CloudSword:
- 云安全综合测试工具
- 支持多云厂商的AKSK利用
- 提供图形化界面操作
手动利用思路
- 配置命令行工具:使用云厂商提供的CLI工具配置AKSK
- 列举资源:列举云账号下的所有资源(ECS、OSS、RDS等)
- 权限评估:评估AKSK的权限范围
- 横向移动:利用当前凭证访问其他云资源
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)
- 测试未授权访问或弱口令
- 获取文件列表并下载敏感文件
测试步骤:
- 访问MinIO管理界面
- 测试默认凭据(minioadmin/minioadmin)
- 如果登录成功,浏览所有存储桶和文件
- 下载敏感文件进行分析
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. 攻击链思维:
- 信息泄露 → 凭证获取 → 云资源接管
- 多个低危漏洞组合成高危攻击链
防御建议
对于防守方来说,云安全防护需要从架构设计入手:
- 最小权限原则:AKSK按最小权限原则分配,避免使用根账号凭证
- 存储桶权限管控:禁止公共读写权限,使用预签名URL临时授权
- 凭证安全管理:AKSK不硬编码在代码中,使用密钥管理服务(KMS)
- Actuator安全:生产环境禁用Actuator或严格限制访问
- 配置中心隔离:配置中心不暴露到公网,使用内网访问控制
- 监控与审计:对云资源的异常访问行为进行监控和告警
- 定期轮换:定期轮换AKSK和数据库密码
更多推荐
所有评论(0)