Skip to content

Lab 01 — AWS IAM Enumeration

Item Value
Module 02 — AWS Cloud Penetration Testing
Lab 01 — AWS IAM Enumeration
Difficulty Intermediate
Estimated Time 90 Minutes
Lab Type AWS Offensive Security
Tools AWS CLI, IAM, IAM Access Analyzer, PMapper (Optional), Pacu (Optional)
Prerequisites AWS Account, AWS CLI Configured, Read-Only IAM Permissions
Assessment Type Enterprise IAM Security Review

You are a Cloud Penetration Tester at CloudNova Technologies.

Your client, FinSecure Bank Ltd, has requested an enterprise IAM security assessment to determine whether attackers could abuse AWS identities to gain unauthorized access.

Your mission is to enumerate the AWS IAM environment, identify privileged identities, analyze IAM policies, discover trust relationships and identify potential privilege escalation opportunities.


After completing this lab, you will be able to:

  • Enumerate IAM users, groups and roles.
  • Review IAM policies and permissions.
  • Identify privileged identities.
  • Discover trust relationships.
  • Review access keys and MFA configuration.
  • Identify privilege escalation opportunities.
  • Produce an enterprise IAM assessment report.

The AWS environment contains:

  • AWS Organizations
  • Multiple AWS Accounts
  • IAM Users
  • IAM Groups
  • IAM Roles
  • Cross-Account Roles
  • EC2 Instance Profiles
  • Lambda Execution Roles
  • Amazon EKS IRSA Roles

Your objective is to map the complete IAM attack surface.


AWS Account
IAM
├── Users
├── Groups
├── Roles
├── Policies
├── Access Keys
├── MFA
├── Instance Profiles
├── Cross-Account Roles
└── Service Roles

You successfully complete this lab when you can:

  • Enumerate all IAM users.
  • Enumerate all IAM roles.
  • Review IAM policies.
  • Identify administrator accounts.
  • Identify excessive permissions.
  • Review trust relationships.
  • Produce an IAM security assessment.

Confirm your AWS CLI configuration.

Terminal window
aws sts get-caller-identity

Expected Output

Account ID
User ARN
User ID

Questions

  • Which AWS account are you assessing?
  • Which identity are you using?
  • Is this an IAM User or IAM Role?

List all IAM users.

Terminal window
aws iam list-users

Document:

  • User Name
  • ARN
  • Creation Date
  • Path

Questions

  • How many IAM users exist?
  • Are any unused?
  • Are naming conventions consistent?

List IAM groups.

Terminal window
aws iam list-groups

For each group:

Terminal window
aws iam get-group \
--group-name GROUP_NAME

Review:

  • Members
  • Attached policies
  • Purpose

Questions

  • Which groups have administrator privileges?
  • Are developers separated from administrators?

List all IAM roles.

Terminal window
aws iam list-roles

Review a role.

Terminal window
aws iam get-role \
--role-name ROLE_NAME

Identify:

  • Administrator roles
  • EC2 roles
  • Lambda roles
  • EKS IRSA roles
  • Cross-account roles

List managed policies.

Terminal window
aws iam list-policies

Review attached policies.

Terminal window
aws iam list-attached-role-policies \
--role-name ROLE_NAME

Questions

  • Which roles use AdministratorAccess?
  • Which policies contain wildcard permissions?
  • Are custom policies documented?

Retrieve inline policies.

Terminal window
aws iam list-role-policies \
--role-name ROLE_NAME

Retrieve policy.

Terminal window
aws iam get-role-policy \
--role-name ROLE_NAME \
--policy-name POLICY_NAME

Review:

  • Wildcard Actions
  • Wildcard Resources
  • Dangerous IAM permissions

Search for permissions such as:

  • iam:PassRole
  • sts:AssumeRole
  • iam:AttachRolePolicy
  • iam:CreatePolicyVersion
  • iam:SetDefaultPolicyVersion
  • iam:PutRolePolicy
  • iam:CreateAccessKey

Document every identity with these permissions.


Retrieve trust policy.

Terminal window
aws iam get-role \
--role-name ROLE_NAME

Review:

Principal
Action
Condition

Questions

  • Are external AWS accounts trusted?
  • Are wildcard principals used?
  • Are trust conditions present?

List virtual MFA devices.

Terminal window
aws iam list-virtual-mfa-devices

Review administrator users.

Determine:

  • MFA Enabled
  • MFA Missing

Questions

  • Which privileged users do not use MFA?

List access keys.

Terminal window
aws iam list-access-keys \
--user-name USERNAME

Review:

  • Active Keys
  • Key Age
  • Unused Keys

Questions

  • Which keys should be rotated?
  • Which users have multiple active keys?

List analyzers.

Terminal window
aws accessanalyzer list-analyzers

Retrieve findings.

Terminal window
aws accessanalyzer list-findings \
--analyzer-name ANALYZER_NAME

Document:

  • Public Access
  • Cross-Account Access
  • Resource Sharing

Create an attack graph similar to:

Developer User
PassRole
EC2 Administrator Role
AdministratorAccess
Amazon S3
Sensitive Customer Data

Identify all privilege escalation opportunities.


Classify findings.

Finding Severity
Administrator Without MFA Critical
Wildcard IAM Policy High
iam:PassRole Abuse Critical
Cross-Account Trust High
Long-Lived Access Keys High
Shared IAM Users Medium

Recommend improvements including:

  • Enable MFA
  • Remove wildcard permissions
  • Implement least privilege
  • Rotate access keys
  • Enable IAM Access Analyzer
  • Review trust relationships
  • Separate administrative duties
  • Perform quarterly IAM reviews

Use PMapper to visualize privilege escalation paths.

Example:

Terminal window
pmapper graph create

Or use Pacu to enumerate IAM permissions.

Document any additional attack paths identified.


Prepare an assessment containing:

  • IAM User Inventory
  • IAM Role Inventory
  • Administrator Accounts
  • High-Risk Permissions
  • Trust Relationship Review
  • Privilege Escalation Opportunities
  • Executive Summary
  • Remediation Plan

After completing this lab, you will have:

  • Enumerated the enterprise IAM environment.
  • Identified privileged identities.
  • Discovered excessive IAM permissions.
  • Mapped trust relationships.
  • Identified privilege escalation paths.
  • Produced a professional enterprise IAM assessment report.

  • IAM is the foundation of AWS security and the primary target for cloud attackers.
  • Enumeration is the first step in identifying privilege escalation opportunities.
  • High-risk permissions such as iam:PassRole and sts:AssumeRole require careful review.
  • Trust relationships should be regularly audited to prevent unauthorized access.
  • Continuous IAM governance and least-privilege principles significantly reduce enterprise cloud risk.

➡️ Lab 02 — Amazon S3 Misconfiguration Assessment