Cloud Pivot Finder
From external domains to cloud infrastructure compromise paths.
Important
CRITICAL: Only test cloud infrastructure you have explicit authorization to test. Unauthorized access to cloud resources is a criminal offense.
Instructions
Step 1: Cloud Provider Detection
python scripts/cloud_detector.py --domain {target_domain}
Identify cloud hosting:
- IP range analysis: Match IPs against AWS, GCP, Azure published IP ranges
- DNS analysis: CNAME patterns (*.amazonaws.com, *.googleusercontent.com, *.azurewebsites.net)
- Header analysis: Server headers, X-Amz-, X-GUploader-, x-ms-* headers
- Certificate analysis: Issuer and SAN entries pointing to cloud services
- CDN detection: CloudFront, Cloud CDN, Azure CDN distributions
Output: Map of domain -> cloud provider -> service type.
Step 2: Storage Bucket Enumeration
python scripts/bucket_enum.py --domain {target_domain} --provider {aws|gcp|azure|all}
Naming pattern brute-force:
- {domain}, {domain}-backup, {domain}-dev, {domain}-staging
- {company}-assets, {company}-uploads, {company}-data
- {project}-{env} combinations
Per-provider testing:
- S3: Check for public ListBucket, GetObject, PutObject
- GCS: Check for allUsers/allAuthenticatedUsers permissions
- Azure Blob: Check for public container access
For each accessible bucket:
- List contents (if ListBucket allowed)
- Check for sensitive files (.env, credentials, backups, database dumps)
- Test write access (attempt to upload test file, delete immediately)
- Check bucket policy for overly permissive configurations
Step 3: Subdomain Takeover Detection
python scripts/takeover_scanner.py --subdomains {subdomain_list}
Check every subdomain's CNAME for dangling references:
- AWS: S3, CloudFront, Elastic Beanstalk, ELB
- Azure: Azure Websites, Traffic Manager, CDN, Blob
- GCP: Cloud Storage, App Engine, Firebase
- Other: Heroku, GitHub Pages, Fastly, Shopify, Zendesk, Unbounce, Surge.sh
For each dangling CNAME:
- Verify the target is actually unclaimed
- Determine the takeover method
- Assess impact (cookie scope, same-origin policy implications)
- Generate takeover PoC instructions
Step 4: Serverless and Container Discovery
python scripts/serverless_finder.py --domain {target_domain}
Discover:
- Lambda Function URLs: {function-id}.lambda-url.{region}.on.aws
- API Gateway: {api-id}.execute-api.{region}.amazonaws.com
- Cloud Functions: {region}-{project}.cloudfunctions.net
- Cloud Run: *.run.app
- Azure Functions: {app}.azurewebsites.net/api/
- Container registries: ECR, GCR, ACR public images
Test each for:
- Unauthenticated access
- Error messages revealing internal details
- Excessive function output (debug mode)
Step 5: CI/CD and IaC Exposure
python scripts/cicd_finder.py --domain {target_domain}
Search for:
- Exposed CI/CD: Jenkins, GitLab CI, GitHub Actions artifacts
- Terraform state files: .tfstate files on S3/GCS/HTTP
- CloudFormation templates: Exposed template files
- Docker/K8s configs: docker-compose.yml, kubernetes manifests
- Helm charts: values.yaml with secrets
- Environment files: .env files with cloud credentials
Step 6: Cloud Metadata Pivot Paths
python scripts/metadata_paths.py --recon-data {recon_json}
For each web application on cloud infrastructure:
- Identify potential SSRF vectors (URL parameters, PDF generators, webhooks)
- Map the SSRF -> metadata -> credential chain
- Assess what the IAM role/service account can access
- Document the complete pivot path
Step 7: Report Generation
python scripts/cloud_report.py --project {name}
Output:
- Cloud infrastructure map
- Accessible storage buckets with content inventory
- Subdomain takeover opportunities
- Serverless/container exposure
- CI/CD and IaC exposure
- Pivot paths from web to cloud
- Prioritized remediation plan
Error Handling
Rate Limiting on Cloud APIs
- S3 listing: Built-in exponential backoff
- DNS resolution: Use multiple resolvers
- If blocked: Reduce concurrency with
--threads 5
No Cloud Infrastructure Detected
If domain appears to be on-premise:
- Still check for cloud storage buckets (may use S3 for backups)
- Check for CI/CD exposure (GitHub Actions, etc.)
- Inform user and suggest alternative approaches
Examples
Example 1: Full Cloud Assessment
User says: "Map the cloud infrastructure for example.com"
Actions:
- Detect cloud providers
- Enumerate storage buckets
- Check for subdomain takeover
- Find serverless endpoints
- Check CI/CD exposure
- Map pivot paths
- Generate comprehensive report
Example 2: S3 Bucket Hunt
User says: "Find S3 buckets for example.com"
Actions:
- Generate naming patterns from domain/company name
- Test each pattern for existence
- Check permissions on found buckets
- List accessible contents
- Report findings
Example 3: Subdomain Takeover Scan
User says: "Check for subdomain takeover on these 50 subdomains"
Actions:
- Resolve CNAME for each subdomain
- Check each CNAME against takeover fingerprints
- Verify dangling references
- Generate takeover PoC for confirmable targets