SuperAPI AI 工具集

cloud-pentest

安全与审计

查看项目

更新于 10-18 04:37

技能介绍

该技能聚焦云环境后渗透测试,适用于已获得云凭据或能够访问元数据端点的场景。内容按云平台与操作阶段组织,强调授权检查、只读枚举、无害验证和影响证明。

用途与前提:技能首先要求确认目标云账户或订阅在授权范围内,并具备书面授权;在任何状态变更前进行只读枚举;禁止导出真实客户数据,建议使用无害的 canary 对象或自有账户对象证明访问权限;发现可横向转移的账户或角色不自动视为已授权,需再次确认范围。

身份识别:首先识别当前凭据对应的身份。AWS 使用 aws sts get-caller-identity 获取账户 ID、主体 ARN 及用户或角色类型;AWS 元数据端点可获取临时凭据与角色名;GCP 通过 gcloud auth 或元数据端点获取项目、服务账户与作用域;Azure 通过 IMDS 获取租户、对象 ID 与资源访问权限。技能强调不得假设权限,需先枚举实际权限。

AWS 枚举与提权:列出只读枚举命令,如 get-caller-identity、get-account-authorization-details、list-attached-user-policies、list-role-policies 等。若缺少 IAM 读取权限,可使用 enumerate-iam 等工具暴力枚举有效权限。常见提权路径包括:持有 iam:CreatePolicyVersion 可写入新策略版本;iam:PassRole 配合 ec2:RunInstances 或 lambda:CreateFunction 以管理员角色启动计算资源;iam:AttachUserPolicy 或 PutUserPolicy 可将 AdministratorAccess 附加至自身;sts:AssumeRole 可假定权限更高的角色;iam:CreateAccessKey 可为其他用户创建访问密钥;lambda:UpdateFunctionCode 可以函数角色运行代码;iam:UpdateAssumeRolePolicy 可重写信任策略。影响证明建议使用范围内存储桶列表、假定管理员角色后调用 get-caller-identity 展示新 ARN,或读取 canary 对象。

元数据(IMDS):说明 IMDSv1 与 IMDSv2 的请求方式,包括获取令牌与携带令牌的 GET 请求;GCP 元数据端点需携带 Metadata-Flavor: Google 头;Azure 元数据端点需携带 Metadata: true 头。获得临时凭据后应跳转至对应平台章节继续枚举。技能指出 SSRF 本身为中等风险,但 SSRF 获取元数据凭据并导致数据或管理员访问则为严重风险。

GCP 提权:通过 gcloud auth activate-service-account 或使用令牌进行身份激活,枚举项目 IAM 策略与服务账户列表。常见提权路径包括:iam.serviceAccounts.getAccessToken 或 actAs 可模拟更高权限服务账户;iam.serviceAccountKeys.create 可为高权限服务账户创建密钥;iam.roles.update 可向自定义角色添加权限;cloudfunctions.functions.update 或 deploy 可以函数服务账户运行代码;storage.objects.get 可读取敏感存储桶。项目级 Owner 或 Editor 等效于管理员,需检查默认 Compute 服务账户是否具有 Editor 权限。

Azure 提权:使用 az account show、az role assignment list 与 az resource list 枚举。常见路径包括:具有 Contributor 的托管身份可部署或修改资源、通过 az vm run-command 在虚拟机上执行命令;Microsoft.Authorization/*/write 可将自身分配为 Owner;Key Vault 访问策略或 RBAC 可读取机密、证书与密钥;自动化账户或 Runbook 可以自动化身份执行;读取存储账户密钥可获得完整 Blob 访问权限。

存储检查:列出公开存储桶检查、ACL 读写测试(仅使用自有 canary 文件)、存储桶策略是否允许通配符或跨账户访问、版本控制或日志是否暴露旧机密、静态网站托管是否可能子域名接管。可写公开存储桶服务于在线站点为严重风险;可读存储桶包含机密或个人数据为高或严重风险。

机密收集与报告:检查 Lambda、云函数或应用环境变量中的 API 密钥与数据库凭据;检查 SSM Parameter Store 或 Secrets Manager;检查 EC2 user-data 与实例标签;检查存储桶中的 Terraform 状态文件;检查可从当前身份访问的 CI/CD 变量。每发现新凭据应重新执行身份识别,链式推进直至管理员或关键数据,然后停止并撰写报告。报告行包含入口、身份、提权路径、已证明影响、影响范围与修复建议,影响必须通过具体调用与无害对象证明。