AWS enumeration is the process of discovering what resources, permissions, and attack surfaces exist in an AWS environment. Think of it like casing a building before a heist - you need to know where the doors are, which ones are locked, and what's inside. In AWS, enumeration helps you understand the blast radius of compromised credentials.
Enumeration can be done with no credentials (finding public resources), with limited credentials (understanding what you can access), or from outside (discovering an organization's AWS footprint). Each approach reveals different information and attack opportunities.
Enumeration vs Exploitation
Enumeration is about discovery and mapping. You're not exploiting anything yet - you're building a picture of the environment. Good enumeration often reveals misconfigurations that are immediately exploitable.
Unauthenticated Enumeration
Authenticated Enumeration
Enumerate Everything
When you have credentials, enumerate all services systematically. The permissions may allow unexpected access. An "s3 read-only" user might also have EC2 describe permissions you didn't expect.
Service-Specific Enumeration
Permission Enumeration
Permission Errors Are Information
Access Denied errors tell you the permission exists but you don't have it. No error + empty result might mean no resources exist. Track all responses - they map out the security boundaries.
Account-Level Enumeration
Enumeration Tools
AWS Enumeration Methodology
Systematic AWS Enumeration
1
External ReconnaissanceFind AWS resources from outside: S3 buckets via DNS/brute force, subdomains on AWS, GitHub credential leaks, Shodan for AWS IPs.
2
Validate CredentialsIf you have credentials, run sts get-caller-identity. Understand what identity you have (user/role/assumed role).
3
Permission DiscoveryUse enumerate-iam or Pacu to brute force permissions. Document what API calls succeed vs fail.
4
Service EnumerationEnumerate each accessible service: EC2, S3, Lambda, RDS, IAM. Look for public resources, sensitive data.
5
Privilege Escalation PathsCheck IAM permissions for privesc: iam:PassRole, lambda:CreateFunction, policy modification permissions.
6
Data DiscoverySearch for secrets in Lambda env vars, Secrets Manager, Parameter Store, S3 buckets, CloudFormation templates.
Knowledge Check
Challenges
Key Takeaways
- Enumeration maps the attack surface - do it thoroughly before exploitation
- Public S3 buckets can be accessed with --no-sign-request flag
- sts get-caller-identity is your first command with any credentials
- Tools like Pacu, ScoutSuite, and enumerate-iam automate enumeration
- Check Secrets Manager, Parameter Store, Lambda env vars for credentials
- Access Denied errors still provide information about permission boundaries