
GCP Pentesting
GCP 云环境渗透测试总体方法论。当目标使用 Google Cloud Platform、发现 GCP 相关资产(GCS Bucket/Compute...
Install
npx skills add wgpsec/AboutSecurity --skill gcp-pentesting -g -a claude-code -y- Repository
- wgpsec/AboutSecurity1.8k
- Category
- DevOps
- Updated
- 11d ago
- License
- See repository
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
GCP 云环境渗透测试总体方法论。当目标使用 Google Cloud Platform、发现 GCP 相关资产(GCS Bucket/Compute Engine/Cloud Functions/GKE)、获取 GCP 凭据(Service Account Key/OAuth Token/Metadata Token)、或需要对 GCP 环境进行安全评估时使用。提供从未授权枚举到提权、后渗透、GCP-to-Workspace 穿越的全流程决策树。覆盖 37+ GCP 服务攻击面
GCP 云环境渗透测试方法论
GCP 是全球三大公有云之一,承载了大量企业核心业务。其独特的资源层级模型(Organization → Folder → Project → Resource)、Service Account 机制和 IAM 权限继承模型构成了与 AWS/Azure 截然不同的攻击面。本技能以攻击阶段(Phase)为主线,组织从"零凭据"到"完全控制"的完整渗透路径。
GCP 与 AWS 的核心区别
| 概念 | GCP | AWS |
|---|---|---|
| 资源层级 | Organization → Folder → Project → Resource | Account → OU → Resource |
| 身份主体 | Google Account、Service Account、Group | IAM User、IAM Role |
| 凭据类型 | SA Key (JSON)、OAuth Token、Metadata Token | AK/SK、STS Token、Instance Profile |
| 权限绑定 | 在资源上绑定(get-iam-policy) | 在主体上附加策略(Policy) |
| PassRole 等价 | iam.serviceAccounts.actAs | iam:PassRole |
| 元数据端点 | 需要 Metadata-Flavor: Google 头 | IMDSv1 无需头 / IMDSv2 需 Token |
| 访问范围 | OAuth Scopes 限制 Token 能力 | 无等价机制 |
深入参考
识别到具体攻击阶段后,加载对应参考文档获取完整技术细节:
- 37 服务提权路径(按集群分组) → 读 references/iam-privesc.md
- 后渗透与持久化技术清单(20+ 服务) → 读 references/post-exploit-persistence.md
Phase 0: 攻击面判断
拿到一个 GCP 相关目标后,首先判断当前手持的资产类型,决定进入哪个攻击阶段:
当前持有什么?
├── 无任何凭据
│ ├── 有目标域名/IP → Phase 1(未授权枚举)
│ ├── 有 SSRF 漏洞 → 直接打 Metadata 获取 SA Token → Phase 2
│ └── 仅知道组织名称 → OSINT + Phase 1
│
├── 有 Service Account Key(JSON 格式,含 private_key 字段)
│ └── → Phase 2(凭据验证与权限评估)
│
├── 有 OAuth Access Token(ya29. 开头)
│ └── → Phase 2(注意:有效期通常 1 小时,需快速行动)
│
├── 有 Refresh Token(从 gcloud 本地配置窃取)
│ └── → 生成新 Access Token → Phase 2(可长期维持)
│
├── 在 Compute Engine / Cloud Functions / Cloud Run 实例内部
│ └── → 通过 Metadata 获取绑定 SA 的 Token → Phase 2
│
└── 有 gcloud CLI 配置目录(~/.config/gcloud/)
└── → 提取 access_tokens.db / credentials.db → Phase 2

