
关于
对 Microsoft Azure、AWS 和 GCP 云基础设施进行全面的安全评估。
name: cloud-penetration-testing description: "对 Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 的云基础设施进行全面安全评估。" risk: offensive source: community author: zebbern date_added: "2026-02-27"
仅限授权使用:此技能仅用于授权的安全评估、防御验证或受控教育环境。
云渗透测试
目的
对 Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP) 的云基础设施进行全面安全评估。此技能涵盖授权云安全评估中的侦察、认证测试、资源枚举、权限提升、数据提取和持久化技术。
前置条件
所需工具
# Azure 工具
Install-Module -Name Az -AllowClobber -Force
Install-Module -Name MSOnline -Force
Install-Module -Name AzureAD -Force
# AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip && sudo ./aws/install
# GCP CLI
curl -fsSLo /tmp/google-cloud-sdk-install.sh https://sdk.cloud.google.com
sed -n '1,160p' /tmp/google-cloud-sdk-install.sh
bash /tmp/google-cloud-sdk-install.sh
gcloud init
# 其他工具
pip install scoutsuite pacu
所需知识
- 云架构基础
- 身份和访问管理(IAM)
- API 认证机制
- DevOps 和自动化概念
所需访问权限
- 测试的书面授权
- 测试凭据或访问令牌
- 定义的范围和参与规则
输出和交付物
- 云安全评估报告 - 全面的发现和风险评级
- 资源清单 - 枚举的服务、存储和计算实例
- 凭据发现 - 暴露的密钥、密钥和错误配置
- 修复建议 - 每个平台的加固指导
核心工作流
阶段 1:侦察
收集目标云存在的初始信息:
# Azure:获取联合信息
curl "https://login.microsoftonline.com/getuserrealm.srf?login=user@target.com&xml=1"
# Azure:获取租户 ID
curl "https://login.microsoftonline.com/target.com/v2.0/.well-known/openid-configuration"
# 按公司名称枚举云资源
python3 cloud_enum.py -k targetcompany
# 检查 IP 对应的云提供商
cat ips.txt | python3 ip2provider.py
阶段 2:Azure 认证
对 Azure 环境进行认证:
# Az PowerShell 模块
Import-Module Az
Connect-AzAccount
# 使用凭据(可能绕过 MFA)
$credential = Get-Credential
Connect-AzAccount -Credential $credential
# 导入窃取的上下文
Import-AzContext -Profile 'C:\Temp\StolenToken.json'
# 导出上下文用于持久化
Save-AzContext -Path C:\Temp\AzureAccessToken.json
# MSOnline 模块
Import-Module MSOnline
Connect-MsolService
阶段 3:Azure 枚举
发现 Azure 资源和权限:
# 列出上下文和订阅
Get-AzContext -ListAvailable
Get-AzSubscription
# 当前用户角色分配
Get-AzRoleAssignment
# 列出资源
Get-AzResource
Get-AzResourceGroup
# 存储账户
Get-AzStorageAccount
# Web 应用
Get-AzWebApp
# SQL 服务器和数据库
Get-AzSQLServer
Get-AzSqlDatabase -ServerName $Server -ResourceGroupName $RG
# 虚拟机
Get-AzVM
$vm = Get-AzVM -Name "VMName"
$vm.OSProfile
# 列出所有用户
Get-MSolUser -All
# 列出所有组
Get-MSolGroup -All
# 全局管理员
Get-MsolRole -RoleName "Company Administrator"
Get-MSolGroupMember -GroupObjectId $GUID
# 服务主体
Get-MsolServicePrincipal
阶段 4:Azure 利用
利用 Azure 错误配置:
# 在用户属性中搜索密码
$users = Get-MsolUser -All
foreach($user in $users){
$props = @()
$user | Get-Member | foreach-object{$props+=$_.Name}
foreach($prop in $props){
if($user.$prop -match "password"){
Write-Output "$($user.UserPrincipalName) - $prop - $($user.$prop)"
}
}
}
阶段 5:AWS 评估
AWS 环境的安全评估:
# 配置 AWS CLI
aws configure
# 枚举 IAM
aws iam get-user
aws iam list-users
aws iam list-roles
aws iam list-policies --scope Local
# S3 存储桶
aws s3 ls
aws s3 ls s3://bucket-name --recursive
# EC2 实例
aws ec2 describe-instances
# Lambda 函数
aws lambda list-functions
阶段 6:GCP 评估
GCP 环境的安全评估:
# 认证
gcloud auth login
# 项目枚举
gcloud projects list
# IAM 策略
gcloud projects get-iam-policy PROJECT_ID
# 计算实例
gcloud compute instances list
# 存储桶
gsutil ls
限制
- 仅在任务明确匹配上述范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停下来要求澄清。
兼容工具
Claude CodeCursor
标签
运维部署

