第 87 章 云安全全景(AWS / Azure / GCP 权限与攻击面)
前几章讲了云元数据(68)、云原生容器(54);本章是云安全的"全景图":三大云厂商的权限模型、核心服务攻击面、云渗透方法论。云攻击的核心认知:云的边界是"身份与权限",不是"网络"。
📍 知识点地图 | 主题:云安全全景 | 前置:第54/68章 | 后续:— | 核心概念:IAM、Role、S3、凭证枚举、pacu
87.1 云安全模型(先懂范式转变)
传统 vs 云:
传统: 网络边界(防火墙)→ 信任"网络内"
云: 身份边界(IAM)→ 信任"谁有权限"
云的攻击面:
□ 身份与访问管理(IAM): 凭证/角色/策略 ← 核心
□ 计算: EC2/容器/函数
□ 存储: S3/Blob/对象存储(配置错误高发)
□ 数据库: RDS/托管 DB
□ 网络: VPC/安全组
□ 密钥管理: KMS/Secret
□ 配置: 云配置错误(CloudMisconfiguration)
共性: 一切围绕"凭证 + 权限"——拿到有效凭证 = 进入云
87.2 AWS 权限模型(最常用,重点学)
核心概念
IAM 身份:
IAM User(人/服务)
IAM Role(临时凭证,EC2/Lambda 等绑定)
IAM Policy(权限策略: 谁对什么资源有什么操作)
临时凭证链:
资源绑定 Role → 资源运行时通过元数据/凭证服务获取临时凭证
→ 凭证有效期短(1h 内)+ 自动刷新
访问方式:
AWS CLI(本地配置)/ 控制台 / API / SDK
攻击面与利用(按权限枚举)
拿到一组凭证后(第 68 章的起点):
1. 身份确认: sts get-caller-identity
2. 权限枚举: pacu / 手工(第 68.4)
3. 服务攻击:
S3: 列出/读/写(数据)
EC2: 读用户数据/创建实例/SSM
SecretsManager: 读密钥
Lambda: 读环境变量/创建函数
IAM: 加用户/加权限(持久化)
CloudTrail: 读日志(发现其他凭证)
4. 横向: 元数据凭证跳转/角色切换(sts assume-role)
5. 持久化: IAM 后门/备用凭证
S3 配置错误(最常被扫到)
□ 公开读(公有桶): 直接下载数据
□ 公开写: 上传恶意文件(钓鱼/投毒)
□ 列举权限: 枚举所有对象
□ 错误策略: 通配符权限
枚举工具: awscli / cloudfox / s3scanner(批量扫公开桶)
87.3 Azure 权限模型
核心概念
身份: Entra ID(原 Azure AD)用户/服务主体/托管身份
资源层级: 管理组 → 订阅 → 资源组 → 资源
角色: Azure RBAC(角色分配: 谁对什么范围有什么权限)
特权身份: PIM(特权身份管理,JIT 提权)
托管身份(Managed Identity): 类似 AWS Role
→ 元数据端点: 169.254.169.254/metadata/identity/oauth2/token
攻击面
□ 密码喷洒(第 59 章): 对 Entra ID 登录
□ OAuth 应用滥用(第 69 章): App Consent
□ 托管身份凭证: 元数据获取 → 以服务身份访问
□ 角色分配错误: 过大的 RBAC 角色
□ 资源攻击: Blob 公开/密钥保管库(Key Vault)读取
□ Azure DevOps: CI/CD 凭证
工具: MicroBurst(Azure 枚举)、az cli、Stormspotter(可视化)
87.4 GCP 权限模型
身份: Google 账号/服务账号(SA)
层级: 组织 → 项目 → 资源
角色: IAM 角色(预定义/自定义)
服务账号: 类似 AWS Role(元数据端点获取 token)
攻击面:
□ 服务账号密钥(JSON 文件,常泄露在 GitHub)
□ 元数据 token(第 68 章)
□ GCS 桶公开/错误配置
□ Cloud Functions 环境变量(密钥)
□ 组织策略错误
工具: gcloud CLI、GCPwn
87.5 云渗透方法论(通用流程)
Phase 1: 识别云环境
□ 目标是否在云(IP 归属/CDN/响应头)
□ 哪个厂商(AWS/Azure/GCP/阿里云)
□ 资产盘点(子域→云资源映射)
Phase 2: 获取凭证(入口)
□ 元数据(SSRF/容器内,第 68 章)
□ 泄露(GitHub/前端/配置文件)
□ 弱口令(云控制台/SSH 密钥)
□ 供应链(第三方云集成)
Phase 3: 凭证利用(枚举+扩大)
□ 身份确认 → 权限枚举(pacu/MicroBurst/GCPwn)
□ 服务级攻击(数据/计算/密钥)
□ 横向(角色切换/其他服务)
Phase 4: 持久化与影响
□ 后门凭证/角色
□ 数据影响评估
□ 报告: 完整路径
工具总览:
pacu(AWS 渗透框架)
MicroBurst(Azure)
GCPwn / gcloud
cloudfox(跨厂商权限可视化)
ScoutSuite(云配置审计,蓝队)
87.6 云配置审计(蓝队视角)
ScoutSuite / Prowler(AWS)/ 各云安全中心:
□ IAM 策略审计(过宽权限/根用户无 MFA)
□ 存储公开检查(S3/Blob/GCS)
□ 密钥轮换(长期密钥)
□ 日志缺失(CloudTrail 未开)
□ 网络配置(安全组过宽)
□ 托管身份滥用面
原则: 云安全 = 最小权限 + 全面审计 + 凭证保护
87.7 云攻击检查清单
□ 云环境识别(厂商/资产)
□ 凭证获取路径(元数据/泄露/弱口令)
□ 身份确认与权限枚举
□ 服务攻击(存储/计算/密钥/数据库)
□ 横向(角色/订阅/项目)
□ 持久化(后门凭证)
□ 数据影响评估
□ 报告: 完整攻击路径
动手练习
- 用 LocalStack 搭一个本地 AWS 模拟环境,练习 pacu 权限枚举。
- 分析一个公开的"云配置错误"案例(S3 数据泄露新闻),画出攻击面。
- 用 ScoutSuite 对本地云模拟环境做配置审计,找"超配"项。
- 对比三大云厂商的元数据端点与凭证获取方式(表格式整理)。
深入阅读
- 仓库:
CTF-Sandbox-Orchestrator/competition-cloud-metadata-path/(元数据路径) - 仓库:
CTF-Sandbox-Orchestrator/competition-agent-cloud/(Agent+云) - 仓库:
CTF-Sandbox-Orchestrator/competition-k8s-control-plane/(K8s 云) - 仓库:
CTF-Sandbox-Orchestrator/competition-ssrf-metadata-pivot/(SSRF→云) - 外部: pacu 文档、ScoutSuite、云厂商安全文档