Project 01 β Enterprise AWS Penetration Testing Assessment
Welcome
Section titled βWelcomeβWelcome to Project 01 β Enterprise AWS Penetration Testing Assessment.
This is your first complete project inside:
09 β Enterprise Cloud Pentesting Projects
You are no longer working through isolated AWS techniques.
You are now performing a structured cloud penetration testing engagement against an authorised CloudNova AWS training environment.
Your objective is to operate like a professional Cloud Penetration Tester.
You will move through:
Engagement Planning βAWS Environment Discovery βIdentity Enumeration βIAM Analysis βResource Discovery βNetwork Assessment βEC2 Assessment βStorage Assessment βWorkload Identity Analysis βSecrets Review βLogging Review βPrivilege-Path Analysis βControlled Validation βEvidence Collection βRisk Analysis βReporting βRemediation βRetestingThe purpose of this project is not to find the largest number of issues.
The purpose is to answer:
Can a low-privileged identity or compromised workload move through AWS permissions and trust relationships toward sensitive enterprise resources?
Mission Information
Section titled βMission InformationβProject
Section titled βProjectβEnterprise AWS Penetration Testing Assessment
Platform
Section titled βPlatformβCloudNova
Difficulty
Section titled βDifficultyβIntermediate β Advanced
Estimated Time
Section titled βEstimated Timeβ4β6 hours
Primary Skills
Section titled βPrimary Skillsβ-
AWS reconnaissance
-
IAM enumeration
-
IAM policy analysis
-
Role and trust analysis
-
Effective permission analysis
-
EC2 security
-
Security Group review
-
S3 security
-
Workload identity review
-
Secrets analysis
-
Cloud logging
-
Attack-path development
-
Evidence collection
-
Professional reporting
Mission Objective
Section titled βMission ObjectiveβYou have been engaged by a fictional organisation to assess an AWS environment hosted in CloudNova.
The organisation suspects that:
-
IAM permissions may be broader than necessary
-
Workload roles may be overprivileged
-
Cloud resources may have unnecessary exposure
-
Storage permissions may be excessive
-
Trust policies may enable unintended privilege paths
-
Security logging may not provide sufficient visibility
Your objective is to determine whether these weaknesses can be combined into meaningful attack paths.
Engagement Scenario
Section titled βEngagement ScenarioβThe fictional organisation operates an AWS application environment resembling:
Internet β β Application Load Balancer β β WEB01 β β APP01 β βββββββββ΄ββββββββ β β S3 Data Database β β ApplicationRole β β APP01The environment also contains administrative and automation identities.
A simplified identity model may resemble:
AWS Accountββββ Human Identitiesβ βββ lab-developerβ βββ lab-operatorβ βββ lab-adminββββ Workload Identitiesβ βββ WebRoleβ βββ ApplicationRoleβ βββ AutomationRoleββββ Resources βββ EC2 βββ S3 βββ Secrets βββ Lambda βββ LoggingThe exact CloudNova environment may differ.
Your job is to discover it.
Starting Position
Section titled βStarting PositionβYou begin with an authorised low-privileged CloudNova AWS identity.
Example:
Identity:lab-developer
Environment:CloudNova AWS Training Account
Privilege:Limited
Objective:Determine whether available permissions or workload relationshipscreate a path toward sensitive cloud resources.Rules of Engagement
Section titled βRules of EngagementβBefore doing anything, confirm that all testing remains within the supplied CloudNova AWS account.
Allowed:
AWS identity enumeration
Resource enumeration
IAM policy review
Role and trust analysis
Security Group review
S3 permission review
EC2 configuration review
Workload identity analysis
Secrets permission review
Logging review
Controlled permission validation
Evidence collectionNot allowed unless specifically stated by the lab:
Denial of Service
Deleting resources
Stopping production-like workloads unnecessarily
Destroying data
Disabling logging
Changing IAM beyond lab requirements
Accessing accounts outside CloudNova scope
Testing third-party infrastructure
Downloading large quantities of dataGolden Rule
Section titled βGolden RuleβUse:
Minimum Necessary ValidationIf permissions, configuration, and safe evidence already prove a security path, do not perform unnecessary destructive actions.
Project Success Criteria
Section titled βProject Success CriteriaβBy the end of this project, you should be able to produce:
AWS Architecture Diagram
AWS Asset Inventory
IAM Identity Inventory
IAM Permission Matrix
Trust Relationship Map
EC2 Assessment
Network Exposure Matrix
S3 Assessment
Workload Identity Analysis
Secrets Review
Logging Review
Attack Path Register
Evidence Register
Findings Register
Enterprise AWS Pentest ReportPhase 01 β Prepare Your Project Workspace
Section titled βPhase 01 β Prepare Your Project WorkspaceβCreate:
Project 01 - Enterprise AWS Pentest/ββββ 01 Engagementβββ 02 Architectureβββ 03 Reconnaissanceβββ 04 IAMβββ 05 Computeβββ 06 Networkβββ 07 Storageβββ 08 Workload Identityβββ 09 Secretsβββ 10 Loggingβββ 11 Attack Pathsβββ 12 Evidenceβββ 13 Findingsβββ 14 Reportβββ 15 RetestInside 01 Engagement, create:
Scope.md
Rules-of-Engagement.md
Objectives.md
Testing-Notes.mdPhase 02 β Record the Engagement Scope
Section titled βPhase 02 β Record the Engagement ScopeβCreate:
Cloud Provider:AWS
Environment:CloudNova
Account:<ACCOUNT-ID>
Regions:<AUTHORISED-REGIONS>
Starting Identity:<IDENTITY>
In Scope:IAMEC2S3NetworkingSecretsLambdaLoggingApproved Resources
Out of Scope:Other AWS accountsThird-party systemsDoSDestructive operationsUnapproved resourcesPhase 03 β Confirm Your AWS Identity
Section titled βPhase 03 β Confirm Your AWS IdentityβYour first technical question should always be:
Who am I?
In the authorised CloudNova terminal:
aws sts get-caller-identityRecord:
Account
UserId
ARNExample:
Account:111122223333
ARN:arn:aws:iam::111122223333:user/lab-developerSave:
Evidence ID:AWS-EV-001Why This Matters
Section titled βWhy This MattersβAll subsequent actions occur within a security context.
Your attack path starts from:
Current IdentityWithout understanding the starting identity, permission analysis has no meaning.
Phase 04 β Confirm AWS CLI Context
Section titled βPhase 04 β Confirm AWS CLI ContextβReview:
aws configure listand:
aws configure get regionIf appropriate for the lab:
aws ec2 describe-regions --query 'Regions[].RegionName' --output tableRecord only regions relevant to the authorised scope.
Phase 05 β Create an Initial Identity Record
Section titled βPhase 05 β Create an Initial Identity RecordβCreate:
| Field | Value |
|---|---|
| Identity | lab-developer |
| Type | IAM User / Role |
| Account | <Account ID> |
| Authentication | CloudNova session |
| MFA | Lab dependent |
| Known Privilege | Limited |
| Effective Privilege | Unknown |
The important field is:
Effective Privilege:UnknownYour job is to determine it.
Phase 06 β Discover the Environment
Section titled βPhase 06 β Discover the EnvironmentβNow begin building the AWS asset inventory.
Do not start by attempting privilege escalation.
Start by answering:
What exists in this account?
Phase 07 β EC2 Inventory
Section titled βPhase 07 β EC2 InventoryβUse:
aws ec2 describe-instancesA more focused output:
aws ec2 describe-instances \ --query 'Reservations[].Instances[].{InstanceId:InstanceId,PrivateIP:PrivateIpAddress,PublicIP:PublicIpAddress,State:State.Name,IamProfile:IamInstanceProfile.Arn}' \ --output tableRecord:
-
Instance ID
-
Private IP
-
Public IP
-
State
-
Attached IAM instance profile
-
Tags
-
Security Groups
EC2 Asset Table
Section titled βEC2 Asset TableβCreate:
| Instance | Public IP | Private IP | IAM Role | Security Group | Purpose |
|---|---|---|---|---|---|
| WEB01 | Yes | 10.0.1.10 | WebRole | sg-web | Web |
| APP01 | No | 10.0.2.10 | ApplicationRole | sg-app | Application |
Do not assume purpose solely from names.
Validate with tags and architecture.
Phase 08 β Discover S3 Buckets
Section titled βPhase 08 β Discover S3 BucketsβUse:
aws s3api list-bucketsor:
aws s3 lsCreate:
| Bucket | Purpose | Public? | Encryption | Versioning | Logging |
|---|---|---|---|---|---|
| app-data-lab | Application data | Unknown | Unknown | Unknown | Unknown |
| backup-lab | Backup | Unknown | Unknown | Unknown | Unknown |
Your initial inventory should contain unknowns.
Do not fill gaps with assumptions.
Phase 09 β Discover Lambda Functions
Section titled βPhase 09 β Discover Lambda FunctionsβUse:
aws lambda list-functionsRecord:
Function Name
Runtime
Execution Role
Description
Environment ConfigurationDo not expose secrets unnecessarily in your notes.
Phase 10 β Discover IAM Users
Section titled βPhase 10 β Discover IAM UsersβIf authorised permissions allow:
aws iam list-usersRecord:
| Identity | Type | Purpose | Review |
|---|---|---|---|
| lab-developer | User | Development | Yes |
| automation-user | User | Automation | Yes |
Phase 11 β Discover IAM Roles
Section titled βPhase 11 β Discover IAM RolesβUse:
aws iam list-rolesFocus on:
Role Name
Role ARN
Trust Relationship
Purpose
Linked WorkloadCreate:
| Role | Trusted Entity | Used By | Privilege |
|---|---|---|---|
| WebRole | EC2 | WEB01 | Unknown |
| ApplicationRole | EC2 | APP01 | Unknown |
| AutomationRole | Service / Identity | Automation | Unknown |
Phase 12 β Build the First Architecture Diagram
Section titled βPhase 12 β Build the First Architecture DiagramβAt this point create an initial diagram.
Example:
AWS Training Accountββββ IAMβ βββ lab-developerβ βββ WebRoleβ βββ ApplicationRoleββββ EC2β βββ WEB01β βββ APP01ββββ S3β βββ app-data-labβ βββ backup-labββββ Lambdaβ βββ processor-labββββ Logging βββ CloudTrailThis diagram will change as you learn more.
Phase 13 β Assess the Current Identity
Section titled βPhase 13 β Assess the Current IdentityβNow investigate what the starting identity can do.
If permitted, identify attached policies.
For an IAM user:
aws iam list-attached-user-policies --user-name lab-developerand:
aws iam list-user-policies --user-name lab-developerFor a role, use the equivalent role-policy commands.
Phase 14 β Review Inline Policies
Section titled βPhase 14 β Review Inline PoliciesβExample:
aws iam get-user-policy \ --user-name lab-developer \ --policy-name <POLICY-NAME>Read the policy carefully.
Do not simply look for:
"Action": "*"Analyse:
Effect
Action
Resource
ConditionIAM Policy Model
Section titled βIAM Policy ModelβAlways read permissions as:
Identity βEffect βAction βResource βConditionPhase 15 β Managed Policies
Section titled βPhase 15 β Managed PoliciesβIf a managed policy is attached:
aws iam get-policy --policy-arn <POLICY-ARN>Identify the default version.
Then:
aws iam get-policy-version \ --policy-arn <POLICY-ARN> \ --version-id <VERSION>Document the effective permissions.
Phase 16 β Build a Permission Matrix
Section titled βPhase 16 β Build a Permission MatrixβCreate:
| Identity | Action | Resource | Condition | Risk Question |
|---|---|---|---|---|
| lab-developer | Lambda modification | Function A | β | Which role does function use? |
| lab-developer | Read EC2 | * | β | Recon only |
| lab-developer | Read S3 metadata | Selected | β | Data exposure? |
The fifth column is critical.
Do not ask only:
What permission exists?
Ask:
What security capability does this permission create?
Phase 17 β Permission Classification
Section titled βPhase 17 β Permission ClassificationβClassify permissions into:
Read
Write
Resource Creation
Resource Modification
Identity Modification
Policy Modification
Credential Management
Role Assumption
Secret Access
Logging ModificationPermissions involving identity or resource modification deserve particular attention.
Phase 18 β Identify Potential Privilege-Changing Permissions
Section titled βPhase 18 β Identify Potential Privilege-Changing PermissionsβLook for permissions that may allow an identity to influence something operating with greater privilege.
Examples of important concepts include:
Modify Workload
Pass Role
Assume Role
Attach Policy
Modify Policy
Create Credential
Read Secret
Create Resource With RoleDo not assume that any single permission automatically produces privilege escalation.
Analyse combinations.
Phase 19 β Role Trust Policies
Section titled βPhase 19 β Role Trust PoliciesβFor a role:
aws iam get-role --role-name ApplicationRoleReview:
"AssumeRolePolicyDocument"Ask:
Who Can Assume This Role?
Why?
Under Which Conditions?
Is Trust Broader Than Required?
Is Cross-Account Trust Present?Phase 20 β Build the Trust Map
Section titled βPhase 20 β Build the Trust MapβExample:
EC2 βApplicationRole
Lambda βProcessorRole
lab-developer βCan Modify βLambdaNow relationships become interesting.
Phase 21 β Understand Indirect Privilege
Section titled βPhase 21 β Understand Indirect PrivilegeβSuppose you observe:
lab-developer βCan Modify βprocessor-laband:
processor-lab βRuns As βApplicationRoleand:
ApplicationRole βCan Access βSensitive ResourcePotential attack path:
lab-developer βFunction Control βApplicationRole βSensitive ResourceThis is a hypothesis until validated.
Phase 22 β Create the Hypothesis Register
Section titled βPhase 22 β Create the Hypothesis Registerβ| ID | Hypothesis | Evidence | Status |
|---|---|---|---|
| H-001 | Developer may indirectly use ApplicationRole | Function permissions + role | Investigate |
| H-002 | ApplicationRole may access sensitive S3 | IAM policy | Investigate |
| H-003 | Storage may be public | Bucket config | Investigate |
This prevents assumptions from becoming findings.
Phase 23 β Assess Security Groups
Section titled βPhase 23 β Assess Security GroupsβUse:
aws ec2 describe-security-groupsCreate:
| SG | Source | Port | Target | Expected? |
|---|---|---|---|---|
| sg-web | Internet | 443 | WEB01 | Yes |
| sg-app | sg-web | 8080 | APP01 | Yes |
| sg-db | 0.0.0.0/0 | 3306 | DB | No / Investigate |
Do not report a rule until you understand the target resource and intent.
Phase 24 β Identify Public Exposure
Section titled βPhase 24 β Identify Public ExposureβFor each internet-facing resource ask:
Why Is It Public?
Which Ports?
Who Requires Access?
Is Authentication Present?
Could Access Be Restricted?
Is the Exposure Intentional?Phase 25 β Evaluate Administrative Exposure
Section titled βPhase 25 β Evaluate Administrative ExposureβPay particular attention to exposure of:
SSH
RDP
Database Services
Kubernetes Management
Administrative Web InterfacesBroad internet reachability may increase attack surface.
Phase 26 β Review EC2 IAM Profiles
Section titled βPhase 26 β Review EC2 IAM ProfilesβFor each EC2 instance:
aws ec2 describe-instances \ --instance-ids <INSTANCE-ID> \ --query 'Reservations[].Instances[].IamInstanceProfile'Map:
Instance βInstance Profile βRole βPolicies βResourcesPhase 27 β Workload Identity Analysis
Section titled βPhase 27 β Workload Identity AnalysisβFor every workload identity ask:
What Workload Uses It?
Who Can Modify That Workload?
What Permissions Does the Role Have?
What Secrets Can It Access?
Which Resources Can It Modify?
Can It Assume Another Role?This is one of the most important phases of the project.
Phase 28 β Build a Workload Identity Table
Section titled βPhase 28 β Build a Workload Identity Tableβ| Workload | Role | Permission | Sensitive Resource | Who Controls Workload? |
|---|---|---|---|---|
| APP01 | ApplicationRole | S3 Read | app-data-lab | App team |
| processor-lab | ProcessorRole | Secrets Read | app-secret | lab-developer? |
The last column often reveals the attack path.
Phase 29 β Assess S3 Bucket Configuration
Section titled βPhase 29 β Assess S3 Bucket ConfigurationβFor each approved bucket review configuration such as:
aws s3api get-public-access-block --bucket <BUCKET>aws s3api get-bucket-policy --bucket <BUCKET>aws s3api get-bucket-acl --bucket <BUCKET>aws s3api get-bucket-encryption --bucket <BUCKET>aws s3api get-bucket-versioning --bucket <BUCKET>Not every command will be permitted in every lab identity.
Record denied actions as part of your current security context.
Phase 30 β S3 Questions
Section titled βPhase 30 β S3 QuestionsβFor every bucket ask:
Who Can List?
Who Can Read?
Who Can Write?
Who Can Delete?
Is Public Access Possible?
Is Cross-Account Access Present?
Is Encryption Enabled?
Is Versioning Enabled?
Is Logging Enabled?
What Data Classification Applies?Phase 31 β Minimum Data Access
Section titled βPhase 31 β Minimum Data AccessβIf authorised validation shows that an identity can access a sensitive lab bucket:
Do not download everything.
Use:
Synthetic Markeror inspect the minimum object needed to prove access.
Example:
OBJECTIVE-VALIDATION.txtPhase 32 β S3 Finding Example
Section titled βPhase 32 β S3 Finding ExampleβAWS-001 β Workload Identity Has Excessive Access to Sensitive Storage
Section titled βAWS-001 β Workload Identity Has Excessive Access to Sensitive StorageβObservation
Section titled βObservationβThe application workload role possesses read permissions to an S3 bucket outside its documented application requirement.
Attack Scenario
Section titled βAttack ScenarioβIf an attacker compromises the application workload, the attacker could inherit the roleβs effective permissions and access unrelated sensitive application data.
Root Cause
Section titled βRoot CauseβExcessive IAM permissions assigned to the workload identity.
Recommendation
Section titled βRecommendationβScope the role to the specific S3 resources required by the workload and regularly review machine-identity permissions.
Phase 33 β Review Secrets
Section titled βPhase 33 β Review SecretsβIf the environment contains AWS Secrets Manager and your identity has authorised enumeration permissions:
aws secretsmanager list-secretsRecord metadata only initially.
Do not retrieve secret values simply because you can.
Secret Assessment Questions
Section titled βSecret Assessment QuestionsβWho Can Discover Secrets?
Who Can Read Secret Values?
Who Can Modify Secrets?
Which Workloads Use Them?
Are Access Permissions Narrow?
Are Secrets Rotated?
Are Sensitive Actions Logged?Phase 34 β Privilege Path Through Secrets
Section titled βPhase 34 β Privilege Path Through SecretsβExample:
Low-Privilege Identity βRead Secret βApplication Credential βHigher-Value ServiceSecret access often hides indirect privilege.
Phase 35 β Review Lambda Roles
Section titled βPhase 35 β Review Lambda RolesβFor each function:
aws lambda get-function-configuration \ --function-name <FUNCTION-NAME>Record:
Runtime
Role
Environment Variable Names
VPC Configuration
Function PurposeDo not copy sensitive environment-variable values into unrestricted notes.
Phase 36 β Lambda Control Analysis
Section titled βPhase 36 β Lambda Control AnalysisβAsk:
Who Can Modify the Function?
Who Can Invoke It?
Which Role Does It Use?
What Can the Role Access?
Does It Reach Internal Resources?
Does It Access Secrets?A function can become an important privilege bridge.
Phase 37 β Example IAM Attack Hypothesis
Section titled βPhase 37 β Example IAM Attack HypothesisβSuppose CloudNova reveals:
lab-developer βCan Update βprocessor-labThe function uses:
ProcessorRoleProcessorRole can:
Read:arn:aws:s3:::finance-lab/*Potential path:
lab-developer βControl Function βProcessorRole βfinance-labDo not jump directly into modifying the function.
First determine whether configuration evidence already proves the security relationship.
Phase 38 β Controlled Validation Decision
Section titled βPhase 38 β Controlled Validation DecisionβUse:
Do I Already Have Sufficient Evidence? βYes β Document and Stop
No βCan I Validate Safely? βYes β Minimal Approved Test
No βEscalate / Document Potential RiskPhase 39 β Validate Only in CloudNova
Section titled βPhase 39 β Validate Only in CloudNovaβIf the lab explicitly requires controlled validation, use the exact lab-specific instructions supplied by CloudNova.
Do not perform destructive or unrelated privilege actions.
The goal is to prove:
Permission Relationshipnot:
Maximum Possible DamagePhase 40 β Review Role Assumption
Section titled βPhase 40 β Review Role AssumptionβWhere permitted:
aws iam get-role --role-name <ROLE>Examine trust.
If your current identity has authorised role-assumption capabilities, document:
Source Identity
Target Role
Trust Requirement
Conditions
Resulting PrivilegePhase 41 β Cross-Account Trust
Section titled βPhase 41 β Cross-Account TrustβIf trust references another AWS account, confirm whether that account is in scope.
If not:
STOPDo not follow the trust relationship outside the authorised environment.
Document it for client review.
Phase 42 β Assess Logging
Section titled βPhase 42 β Assess LoggingβDetermine whether CloudTrail exists.
Where permitted:
aws cloudtrail describe-trailsand:
aws cloudtrail get-trail-status --name <TRAIL-NAME>Ask:
Is CloudTrail Enabled?
Which Regions?
Where Are Logs Stored?
Is Log Integrity Protected?
Who Can Disable Logging?
Who Can Delete Logs?Phase 43 β Logging Attack Surface
Section titled βPhase 43 β Logging Attack SurfaceβSecurity telemetry itself is a sensitive control.
Attack path:
Compromised Identity βModify Logging βReduced VisibilityIf the current identity can modify logging, determine whether that capability is operationally necessary.
Do not disable logging during the lab unless specifically required by an isolated exercise.
Phase 44 β AWS Config and Security Monitoring
Section titled βPhase 44 β AWS Config and Security MonitoringβIf present, document services such as:
AWS Config
GuardDuty
Security Hub
CloudWatch
CloudTrailYou are not trying to defeat them.
Ask:
Would the activities performed during this authorised assessment be visible to the security team?
Phase 45 β Build the AWS Attack Surface Map
Section titled βPhase 45 β Build the AWS Attack Surface MapβYour map may now look like:
Internetββββ ALBβ ββ WEB01ββββ Public APIββββ Exposed Services
AWS Identityββββ lab-developerβββ ApplicationRoleβββ ProcessorRole
Resourcesββββ EC2βββ Lambdaβββ S3βββ Secretsβββ LoggingPhase 46 β Build the Identity Graph
Section titled βPhase 46 β Build the Identity GraphβExample:
lab-developer β βββ Read EC2 β βββ Modify processor-lab β β ProcessorRole β βββ Read Secret β βββ Read finance-labThis provides far more insight than a raw permission list.
Phase 47 β Identify Choke Points
Section titled βPhase 47 β Identify Choke PointsβSuppose:
Attack Path 01 βProcessorRole
Attack Path 02 βProcessorRoleThen:
ProcessorRolemay be a high-value remediation choke point.
Reducing its privilege could break multiple attack paths.
Phase 48 β Attack Path 01
Section titled βPhase 48 β Attack Path 01βExample:
lab-developer βFunction Modification βProcessorRole βSensitive S3Document:
Initial Identity
Transition Permission
Target Workload
Workload Role
Role Permission
Sensitive Resource
EvidencePhase 49 β Attack Path 02
Section titled βPhase 49 β Attack Path 02βExample:
Application Workload βApplicationRole βSecrets Manager βDatabase Credential βSensitive DatabaseAgain, the secret is not the end.
Understand what the secret protects.
Phase 50 β Attack Path 03
Section titled βPhase 50 β Attack Path 03βExample:
Developer βBroad IAM Permission βRole Trust Modification βPrivileged Role βCloud AdministrationOnly report this as validated if the actual permission relationship supports it.
Phase 51 β Attack Path Register
Section titled βPhase 51 β Attack Path RegisterβCreate:
| Path ID | Start | Transition | Target | Status | Severity |
|---|---|---|---|---|---|
| AP-001 | lab-developer | Function control | S3 | Validated | High |
| AP-002 | APP01 | Workload role | Secret | Validated | High |
| AP-003 | developer | IAM relationship | Admin role | Hypothesis | TBD |
Do not assign final severity to unvalidated hypotheses.
Phase 52 β Evidence Standards
Section titled βPhase 52 β Evidence StandardsβEvery important claim should be supported by evidence.
Example:
AWS-EV-001Starting identity
AWS-EV-002Current IAM policy
AWS-EV-003Lambda configuration
AWS-EV-004ProcessorRole trust policy
AWS-EV-005ProcessorRole permission
AWS-EV-006S3 bucket configuration
AWS-EV-007Controlled synthetic-object accessPhase 53 β Evidence Record
Section titled βPhase 53 β Evidence RecordβUse:
Evidence ID:AWS-EV-005
Timestamp:<DATE/TIME>
Resource:ProcessorRole
Observation:ProcessorRole has authorised read access to finance-lab.
Source:IAM policy review.
Attack Path:AP-001
Sensitive Data:No real sensitive data collected.Phase 54 β Findings Register
Section titled βPhase 54 β Findings RegisterβCreate:
| ID | Finding | Severity | Attack Path |
|---|---|---|---|
| AWS-001 | Workload role has excessive S3 access | High | AP-001 |
| AWS-002 | Developer can control higher-privilege workload | High | AP-001 |
| AWS-003 | Administrative network exposure is overly broad | High | β |
| AWS-004 | Cloud logging permissions are excessive | Medium/High | AP-002 |
Your actual CloudNova findings should determine the final register.
Phase 55 β Finding Example 01
Section titled βPhase 55 β Finding Example 01βAWS-001 β Developer Permissions Create an Indirect Path to a Higher-Privilege Workload Identity
Section titled βAWS-001 β Developer Permissions Create an Indirect Path to a Higher-Privilege Workload IdentityβObservation
Section titled βObservationβThe authorised development identity can modify a cloud workload operating under a role with privileges exceeding those assigned directly to the developer.
Attack Scenario
Section titled βAttack ScenarioβCompromise of the development identity could allow an attacker to influence the higher-privilege workload context and indirectly exercise permissions assigned to the workload role.
This may allow expansion from a development identity into sensitive AWS resources accessible to the workload.
Root Cause
Section titled βRoot CauseβInsufficient separation between workload-management permissions and workload IAM privilege.
Recommendation
Section titled βRecommendationβRestrict modification rights to privileged workloads, minimise the workload roleβs permissions, and implement separation of duties between application development and privileged cloud administration.
Phase 56 β Finding Example 02
Section titled βPhase 56 β Finding Example 02βAWS-002 β Application Role Has Unnecessary Access to Sensitive S3 Data
Section titled βAWS-002 β Application Role Has Unnecessary Access to Sensitive S3 DataβObservation
Section titled βObservationβThe application role possesses access to an S3 resource unrelated to its expected operational requirements.
If the application or its execution context is compromised, the roleβs excessive permission could increase the blast radius of the incident.
Recommendation
Section titled βRecommendationβApply least privilege using resource-specific S3 permissions and periodically review workload-role access.
Phase 57 β Finding Example 03
Section titled βPhase 57 β Finding Example 03βAWS-003 β Administrative Service Is Accessible From Broad Network Sources
Section titled βAWS-003 β Administrative Service Is Accessible From Broad Network SourcesβObservation
Section titled βObservationβAn administrative service is reachable from network sources broader than those required for legitimate administration.
Broad exposure increases the attack surface and may enable credential-based or vulnerability-based attacks against management infrastructure.
Recommendation
Section titled βRecommendationβRestrict administrative access to approved management paths such as private connectivity, trusted administrative networks, or controlled access services.
Phase 58 β Finding Example 04
Section titled βPhase 58 β Finding Example 04βAWS-004 β Security Logging Configuration Can Be Modified by Non-Security Identity
Section titled βAWS-004 β Security Logging Configuration Can Be Modified by Non-Security IdentityβObservation
Section titled βObservationβAn identity outside the dedicated security administration function possesses permissions capable of modifying security telemetry configuration.
Compromise of the identity could reduce the organisationβs ability to detect or investigate malicious cloud activity.
Recommendation
Section titled βRecommendationβRestrict logging administration to dedicated security identities and monitor all changes to audit infrastructure.
Phase 59 β Risk Analysis
Section titled βPhase 59 β Risk AnalysisβDo not prioritise based only on policy names.
Consider:
Exposure
Initial Privilege Required
Permission Combination
Critical Asset
Sensitive Data
Blast Radius
Business Impact
Existing Detection
Ease of RemediationPhase 60 β Root Cause Analysis
Section titled βPhase 60 β Root Cause AnalysisβYour findings may reveal themes such as:
Overprivileged Workload Identities
Weak Separation of Duties
Excessive Resource Exposure
Inconsistent IAM Governance
Weak Logging GovernanceLook beyond individual findings.
Phase 61 β Identify Positive Controls
Section titled βPhase 61 β Identify Positive ControlsβRecord controls that worked.
Examples:
S3 Public Access Block Enabled β
CloudTrail Enabled β
Database Not Publicly Exposed β
Administrative MFA Enforced βA professional assessment reports strengths as well as weaknesses.
Phase 62 β Remediation Prioritisation
Section titled βPhase 62 β Remediation PrioritisationβImmediate
Section titled βImmediateβBreak validated critical privilege paths
Remove unnecessary sensitive-resource access
Restrict broad administrative exposure
Rotate any intentionally exposed lab credentials if applicableShort Term
Section titled βShort TermβReview workload IAM
Review developer permissions
Review trust policies
Strengthen network segmentation
Review machine identitiesStrategic
Section titled βStrategicβIAM Governance
Permission Boundaries
Privileged Access Management
Machine Identity Governance
Cloud Security Monitoring
Continuous Attack-Path AnalysisPhase 63 β Build the Remediation Matrix
Section titled βPhase 63 β Build the Remediation Matrixβ| Finding | Immediate | Long-Term | Owner |
|---|---|---|---|
| AWS-001 | Remove excessive workload access | IAM governance | Cloud Security |
| AWS-002 | Restrict function control | Separation of duties | DevOps |
| AWS-003 | Restrict network rule | Network baseline | Cloud Network |
| AWS-004 | Restrict log permissions | Security account architecture | SOC/Cloud |
Phase 64 β Retesting
Section titled βPhase 64 β RetestingβAfter remediation, repeat only the necessary tests.
Example:
Before:
lab-developer βModify Workload βPrivileged Role βSensitive S3After:
lab-developer βRequired Development Actions β
lab-developer βPrivileged Workload Control XThis demonstrates successful remediation.
Phase 65 β Retest Status
Section titled βPhase 65 β Retest StatusβUse:
Resolved
Partially Resolved
Not Resolved
Risk AcceptedDo not mark an issue resolved simply because the policy text changed.
Verify the attack path.
Phase 66 β Final Architecture Diagram
Section titled βPhase 66 β Final Architecture DiagramβUpdate your original diagram with the confirmed security relationships.
Example:
Internet β β ALB β β WEB01 β WebRole β β APP01 β ApplicationRole / \ β β S3 Data Secrets β β DB01
lab-developer β βββββ Modify ββββ> processor-lab β β ProcessorRole β β Sensitive S3Phase 67 β Final Attack Narrative
Section titled βPhase 67 β Final Attack NarrativeβYour narrative should tell a story.
Example:
The assessment began with an authorised low-privileged development identity. IAM analysis identified that the identity could modify a serverless workload operating under a more privileged execution role. The workload role possessed access to a sensitive synthetic storage resource outside the developerβs direct permissions. This created an indirect privilege path in which compromise of the development identity could potentially expand into access to sensitive AWS data. The path resulted from the combination of excessive workload-management permission and overprivileged workload IAM.
That is stronger than:
Lambda is vulnerable.
Phase 68 β Enterprise AWS Report Structure
Section titled βPhase 68 β Enterprise AWS Report StructureβCreate:
Enterprise AWS Penetration Testing Report
1. Executive Summary
2. Engagement Objectives
3. Scope
4. Rules of Engagement
5. AWS Environment Overview
6. Architecture
7. Methodology
8. Asset Inventory
9. Identity & IAM Assessment
10. Network Security Assessment
11. Compute Assessment
12. Storage Assessment
13. Workload Identity Assessment
14. Secrets Assessment
15. Logging & Monitoring Assessment
16. Attack Paths
17. Validated Findings
18. Positive Security Observations
19. Root Cause Themes
20. Remediation Roadmap
21. Retest Plan
22. Evidence AppendixPhase 69 β Executive Summary Questions
Section titled βPhase 69 β Executive Summary QuestionsβYour executive summary should answer:
What Was Tested?
What Was the Main Risk?
Could Privilege Expand?
Which Business Assets Were Exposed?
Which Controls Worked?
Which Controls Failed?
What Should Be Fixed First?Phase 70 β Technical Report Standard
Section titled βPhase 70 β Technical Report StandardβEvery finding should include:
Finding ID
Title
Severity
Affected Resources
Observation
Evidence
Attack Scenario
Impact
Root Cause
Recommendation
Retest GuidancePhase 71 β Project Deliverables
Section titled βPhase 71 β Project DeliverablesβComplete all of these:
Project 01 - Enterprise AWS Pentest/ββββ 01 Engagementβ βββ Scope.mdβ βββ Rules-of-Engagement.mdβ βββ Objectives.mdββββ 02 Architectureβ βββ Initial-AWS-Architecture.mdβ βββ Final-AWS-Architecture.mdββββ 03 Reconnaissanceβ βββ Asset-Inventory.mdββββ 04 IAMβ βββ Identity-Inventory.mdβ βββ Permission-Matrix.mdβ βββ Trust-Map.mdββββ 05 Computeβ βββ EC2-Assessment.mdββββ 06 Networkβ βββ Security-Group-Matrix.mdββββ 07 Storageβ βββ S3-Assessment.mdββββ 08 Workload Identityβ βββ Workload-Identity-Map.mdββββ 09 Secretsβ βββ Secrets-Assessment.mdββββ 10 Loggingβ βββ Logging-Assessment.mdββββ 11 Attack Pathsβ βββ Attack-Path-Register.mdββββ 12 Evidenceβ βββ Evidence-Register.mdββββ 13 Findingsβ βββ Findings-Register.mdββββ 14 Reportβ βββ Enterprise-AWS-Pentest-Report.mdββββ 15 Retest βββ Retest-Report.mdPhase 72 β Student Submission Checklist
Section titled βPhase 72 β Student Submission ChecklistβBefore marking Project 01 complete:
ENGAGEMENT
[ ] Scope documented[ ] Starting identity documented[ ] ROE understood[ ] Stop conditions understood
DISCOVERY
[ ] Account identified[ ] Regions reviewed[ ] EC2 inventoried[ ] S3 inventoried[ ] Lambda inventoried[ ] IAM identities inventoried[ ] IAM roles inventoried
IAM
[ ] Starting permissions analysed[ ] Managed policies reviewed[ ] Inline policies reviewed[ ] Trust policies reviewed[ ] Effective permissions mapped[ ] Workload identities mapped[ ] Potential privilege paths identified
NETWORK
[ ] Security Groups reviewed[ ] Public exposure reviewed[ ] Administrative exposure reviewed[ ] Segmentation considered
COMPUTE
[ ] EC2 configurations reviewed[ ] Instance profiles mapped[ ] Workload roles reviewed
STORAGE
[ ] S3 permissions reviewed[ ] Public-access controls reviewed[ ] Encryption reviewed[ ] Versioning reviewed[ ] Sensitive synthetic data handled safely
SECRETS
[ ] Secret inventory reviewed where authorised[ ] Secret access permissions analysed[ ] No unnecessary secret values collected
LOGGING
[ ] CloudTrail reviewed[ ] Logging permissions reviewed[ ] Monitoring capability considered
ATTACK PATHS
[ ] Hypotheses documented[ ] Hypotheses distinguished from findings[ ] Validated attack paths documented[ ] Minimum necessary proof followed[ ] Choke points identified
REPORTING
[ ] Evidence register completed[ ] Findings register completed[ ] Positive controls documented[ ] Root causes identified[ ] Recommendations prioritised[ ] Final report completed[ ] Retest plan completedPhase 73 β Skills You Should Demonstrate
Section titled βPhase 73 β Skills You Should DemonstrateβAfter completing this project, you should be able to explain:
How do you start an AWS penetration test?
How do you establish your current AWS identity?
How do you inventory AWS resources?
How do you analyse IAM policies?
What is the difference between direct and indirect privilege?
Why are workload identities important?
How do role trust policies affect attack paths?
How do you assess S3 security?
How do you assess Security Groups?
Why should Secrets Manager access be reviewed?
Why is CloudTrail important?
How do you validate a privilege path without causing unnecessary impact?
How do you translate an IAM weakness into business risk?
Phase 74 β Interview Story
Section titled βPhase 74 β Interview StoryβYou should now be able to explain this project professionally.
Example:
In a CloudNova enterprise AWS lab, I started with a limited development identity and first established the AWS account and permission context. I created an asset and identity inventory covering IAM, EC2, S3, Lambda, networking, secrets, and logging. During IAM analysis, I identified a relationship where the developer could control a workload operating under a more privileged execution role. I mapped the roleβs effective access to sensitive synthetic storage, validated only the minimum evidence required, documented the attack path, and recommended separation of duties and least-privilege workload IAM. I then defined a retest to confirm the path had been broken after remediation.
That demonstrates:
AWS Knowledge +Cloud Pentest Methodology +IAM Analysis +Attack-Path Thinking +Professional ReportingKey Takeaways
Section titled βKey TakeawaysβProject 01 is about learning to assess AWS as a connected security system.
Remember:
Start with identity.
Understand the environment before testing deeper.
Inventory resources before forming conclusions.
IAM policy names do not tell you effective privilege.
Always analyse action, resource, effect, and condition together.
Trust policies are as important as permission policies.
Cloud privilege can be indirect.
Who controls the workload may matter as much as the workloadβs permissions.
Workload identities must be treated as privileged security principals.
Public exposure is not automatically a vulnerability.
S3 risk depends on data, access, and business context.
Secrets can create hidden privilege paths.
Security logging is itself a high-value security control.
A hypothesis is not a finding.
Validate the minimum necessary evidence.
Do not perform destructive cloud actions simply to prove privilege.
Attack paths provide more context than isolated IAM findings.
Look for remediation choke points that break multiple attack paths.
Report controls that worked as well as controls that failed.
Retest the attack path, not merely the changed configuration.
Your AWS penetration testing methodology is:
Scope βEstablish Identity βInventory Environment βAnalyse IAM βMap Trust βAssess Network βAssess Compute βAssess Storage βAssess Workload Identities βAssess Secrets βAssess Logging βBuild Hypotheses βDevelop Attack Paths βValidate Safely βCollect Evidence βAssess Business Risk βRecommend Controls βReport βRetestWhatβs Next?
Section titled βWhatβs Next?ββ‘οΈ Project 02 β Enterprise Azure Identity & Cloud Penetration Test
In the next CloudNova project, you will move from AWS IAM into the Microsoft cloud identity model.
You will assess:
-
Microsoft Entra ID
-
Azure subscriptions
-
Resource groups
-
Azure RBAC
-
Role assignments
-
Managed identities
-
Virtual machines
-
Network Security Groups
-
Storage
-
Key Vault
-
Application identities
-
Enterprise identity relationships
-
Privilege paths
-
Logging and monitoring
The major shift will be:
AWS IAM βAzure Enterprise IdentityYou will move from asking:
Can AWS permissions and workload roles create an unintended privilege path?
to asking:
Can Microsoft Entra identities, Azure RBAC, managed identities, and resource control combine into a path toward privileged Azure resources?