Lab 03 — Cloud Enumeration
Lab Information
Section titled “Lab Information”| Item | Details |
|---|---|
| Lab ID | CPS-LAB-003 |
| Difficulty | Beginner → Intermediate |
| Duration | 2–3 Hours |
| Cloud Provider | AWS |
| Tools Required | AWS CLI, jq, kubectl, ScoutSuite, PMapper (Optional) |
| Estimated Cost | Free Tier Eligible |
Lab Overview
Section titled “Lab Overview”Reconnaissance tells us what exists publicly.
Enumeration tells us what exists inside the cloud environment after authenticated access.
Professional Cloud Penetration Testers spend a significant amount of time enumerating cloud resources before attempting any validation or exploitation.
Poor enumeration leads to missed attack paths.
Good enumeration leads to complete security assessments.
In this lab, you will enumerate an AWS environment exactly as a Cloud Security Consultant would during an enterprise penetration test.
Learning Objectives
Section titled “Learning Objectives”After completing this lab, you will be able to:
- Enumerate AWS identities.
- Identify IAM permissions.
- Discover EC2 instances.
- Enumerate S3 buckets.
- Review VPC networking.
- Identify Lambda functions.
- Discover EKS clusters.
- Document attack surfaces.
- Produce an enterprise asset inventory.
Enterprise Scenario
Section titled “Enterprise Scenario”CloudNova Technologies has received temporary read-only access to FinSecure Bank’s AWS Development Account.
Your objective is to discover:
- Cloud resources
- Cloud identities
- Network architecture
- Kubernetes clusters
- Storage
- Compute resources
No exploitation is permitted.
Only enumeration.
Lab Architecture
Section titled “Lab Architecture” AWS Account
│
┌───────────────┼───────────────┐ │ │ │
IAM VPC S3
│ │ │
EC2 Lambda CloudTrail
│
Amazon EKS
│
Kubernetes ClusterLab Prerequisites
Section titled “Lab Prerequisites”Complete:
- Lab 01 — Build Your Cloud Pentesting Lab
- Lab 02 — Cloud Reconnaissance
Verify:
aws sts get-caller-identityMission 1 — Verify Authentication
Section titled “Mission 1 — Verify Authentication”Run:
aws sts get-caller-identityExpected Output
{ "Account":"123456789012", "Arn":"arn:aws:iam::123456789012:user/student"}Mission 2 — Enumerate IAM Users
Section titled “Mission 2 — Enumerate IAM Users”List users.
aws iam list-usersDocument:
- User Names
- Creation Date
- Path
Questions:
- Which users appear inactive?
- Which users may be administrative?
Mission 3 — Enumerate IAM Roles
Section titled “Mission 3 — Enumerate IAM Roles”Run:
aws iam list-rolesDocument:
- Role Name
- Trusted Entity
- Description
Review:
- Administrator roles
- EC2 roles
- Lambda roles
- EKS roles
Mission 4 — Review IAM Policies
Section titled “Mission 4 — Review IAM Policies”List policies.
aws iam list-policies --scope LocalReview:
- AdministratorAccess
- PowerUserAccess
- Custom Policies
Identify overly permissive policies.
Mission 5 — Enumerate IAM Groups
Section titled “Mission 5 — Enumerate IAM Groups”Run:
aws iam list-groupsIdentify:
- Administrators
- Developers
- DevOps
- ReadOnly
Mission 6 — Enumerate Access Keys
Section titled “Mission 6 — Enumerate Access Keys”Run:
aws iam list-access-keys --user-name USERNAMEReview:
- Active Keys
- Key Age
- Rotation Status
Mission 7 — Enumerate EC2 Instances
Section titled “Mission 7 — Enumerate EC2 Instances”Run:
aws ec2 describe-instancesDocument:
- Instance ID
- Public IP
- Private IP
- IAM Role
- Operating System
- Security Group
Mission 8 — Enumerate Security Groups
Section titled “Mission 8 — Enumerate Security Groups”Run:
aws ec2 describe-security-groupsReview:
- Open Ports
- Source CIDRs
- Internet Access
Questions:
- Is SSH exposed?
- Is RDP public?
- Are database ports exposed?
Mission 9 — Enumerate Amazon S3
Section titled “Mission 9 — Enumerate Amazon S3”List buckets.
aws s3 lsReview bucket settings.
aws s3api get-bucket-policy \--bucket BUCKET_NAMECheck:
- Public Access
- Encryption
- Versioning
Mission 10 — Enumerate VPC
Section titled “Mission 10 — Enumerate VPC”Run:
aws ec2 describe-vpcsReview:
- CIDR
- Internet Gateway
- Route Tables
Mission 11 — Enumerate Subnets
Section titled “Mission 11 — Enumerate Subnets”Run:
aws ec2 describe-subnetsDocument:
- Public Subnets
- Private Subnets
- Availability Zones
Mission 12 — Enumerate Lambda Functions
Section titled “Mission 12 — Enumerate Lambda Functions”Run:
aws lambda list-functionsReview:
- Runtime
- IAM Role
- Environment Variables
Mission 13 — Enumerate Amazon EKS
Section titled “Mission 13 — Enumerate Amazon EKS”List clusters.
aws eks list-clustersDescribe cluster.
aws eks describe-cluster \--name CLUSTER_NAMEReview:
- Endpoint
- Logging
- Version
- IAM Authentication
Mission 14 — Enumerate Kubernetes
Section titled “Mission 14 — Enumerate Kubernetes”Update kubeconfig.
aws eks update-kubeconfig \--name CLUSTER_NAMEVerify access.
kubectl get nodesContinue with:
kubectl get namespaces
kubectl get pods -A
kubectl get services -A
kubectl get secrets -A
kubectl get clusterrolesDocument findings.
Mission 15 — Enumerate CloudTrail
Section titled “Mission 15 — Enumerate CloudTrail”Run:
aws cloudtrail describe-trailsReview:
- Enabled Trails
- Multi-Region Logging
- Encryption
- Log Validation
Mission 16 — Enumerate AWS Config
Section titled “Mission 16 — Enumerate AWS Config”Run:
aws configservice describe-configuration-recordersVerify:
- Recorder Enabled
- Recording Scope
Mission 17 — Generate Asset Inventory
Section titled “Mission 17 — Generate Asset Inventory”Create a spreadsheet containing:
| Asset | Quantity | Risk |
|---|---|---|
| IAM Users | ||
| IAM Roles | ||
| EC2 | ||
| Security Groups | ||
| S3 Buckets | ||
| Lambda | ||
| EKS Clusters | ||
| VPCs |
Mission 18 — Identify Potential Attack Paths
Section titled “Mission 18 — Identify Potential Attack Paths”Example:
Developer IAM User
↓
Administrator Role
↓
EC2 Instance
↓
S3 Bucket
↓
Sensitive DataIdentify at least three possible attack paths.
Deliverables
Section titled “Deliverables”Produce:
- Cloud Asset Inventory
- IAM Inventory
- EC2 Inventory
- Storage Inventory
- Kubernetes Inventory
- Network Inventory
- Attack Path Diagram
- Enumeration Report
Validation Checklist
Section titled “Validation Checklist”Verify:
- IAM Users enumerated
- IAM Roles documented
- IAM Policies reviewed
- EC2 inventory created
- Security Groups reviewed
- S3 buckets documented
- VPC reviewed
- Lambda enumerated
- Amazon EKS discovered
- Kubernetes resources documented
- CloudTrail reviewed
- Asset inventory completed
Troubleshooting
Section titled “Troubleshooting”Access Denied
Section titled “Access Denied”Check:
aws sts get-caller-identityConfirm the IAM role has read permissions.
No EKS Clusters Found
Section titled “No EKS Clusters Found”Run:
aws configure get regionEnsure you are using the correct AWS Region.
kubectl Cannot Connect
Section titled “kubectl Cannot Connect”Update kubeconfig again.
aws eks update-kubeconfig \--name CLUSTER_NAMEEmpty Results
Section titled “Empty Results”Verify that resources exist within the selected AWS account and region.
Lab Challenge
Section titled “Lab Challenge”Without following the guided steps:
- Discover every IAM identity.
- Build a complete network inventory.
- Identify all storage resources.
- Enumerate every Kubernetes object.
- Produce an enterprise asset inventory.
- Create three realistic cloud attack paths.
- Write an executive summary of your findings.
Knowledge Check
Section titled “Knowledge Check”1. Why is enumeration important after reconnaissance?
Section titled “1. Why is enumeration important after reconnaissance?”Answer: Reconnaissance identifies publicly visible assets, while enumeration provides authenticated insight into cloud identities, services, permissions and configurations required for a complete security assessment.
2. Which AWS service provides identity and access management?
Section titled “2. Which AWS service provides identity and access management?”Answer: AWS Identity and Access Management (IAM).
3. Why should Security Groups be reviewed during enumeration?
Section titled “3. Why should Security Groups be reviewed during enumeration?”Answer: Security Groups define network access to cloud resources. Misconfigured rules may expose management ports, applications or databases to unauthorized users.
4. Why should CloudTrail be included in an enumeration exercise?
Section titled “4. Why should CloudTrail be included in an enumeration exercise?”Answer: CloudTrail provides audit logs of AWS API activity, helping assess monitoring capabilities and supporting incident investigations.
5. What is the primary outcome of a cloud enumeration phase?
Section titled “5. What is the primary outcome of a cloud enumeration phase?”Answer: A comprehensive inventory of cloud assets, identities, configurations and potential attack paths that guides the remainder of the penetration test.
Key Takeaways
Section titled “Key Takeaways”- Enumeration is the foundation of every professional cloud penetration test.
- IAM, compute, storage, networking and Kubernetes should all be systematically reviewed.
- A complete asset inventory enables accurate attack-path analysis and risk prioritization.
- Cloud enumeration focuses on visibility and documentation rather than exploitation.
- High-quality enumeration significantly improves the effectiveness of later penetration testing phases.
What’s Next?
Section titled “What’s Next?”In the next lab, you will perform Lab 04 — Cloud Identity Assessment, where you will analyse IAM users, roles, policies, trust relationships and privilege escalation opportunities using enterprise cloud security assessment methodologies.
➡️ Next Lab: Lab 04 — Cloud Identity Assessment