Not affiliated with AWS

AWS Attack Technique Library

A reference of AWS-native attack techniques the hackaws agent runs against your account, covering privilege escalation and credential access. Each page lists the required permissions, impact, detection, and mitigation.

Privilege Escalation

iam:PutRolePolicy

An attacker with iam:PutRolePolicy writes an inline admin policy onto an IAM role, giving every principal that can assume the role full account access.

  • iam:PutRolePolicy

iam:AttachRolePolicy

An attacker with iam:AttachRolePolicy attaches the AWS-managed AdministratorAccess policy to any IAM role.

  • iam:AttachRolePolicy

iam:PutUserPolicy

An attacker with iam:PutUserPolicy writes an inline admin policy onto an IAM user, including the attacker's own user.

  • iam:PutUserPolicy

iam:AttachUserPolicy

An attacker with iam:AttachUserPolicy attaches AdministratorAccess to any IAM user, including the attacker's own user.

  • iam:AttachUserPolicy

iam:PutGroupPolicy

An attacker with iam:PutGroupPolicy writes an inline admin policy onto an IAM group they belong to, escalating every user in that group.

  • iam:PutGroupPolicy

iam:AttachGroupPolicy

An attacker with iam:AttachGroupPolicy attaches AdministratorAccess to a group they belong to, escalating every member of that group.

  • iam:AttachGroupPolicy

iam:AddUserToGroup

An attacker with iam:AddUserToGroup adds their user to a more privileged group, inheriting its policies.

  • iam:AddUserToGroup

iam:CreatePolicyVersion

An attacker with iam:CreatePolicyVersion uploads a new admin version of a customer-managed policy they already use and promotes it to default in a single API call, escalating every attached principal.

  • iam:CreatePolicyVersion

iam:SetDefaultPolicyVersion

An attacker with iam:SetDefaultPolicyVersion switches a managed policy back to an older, broader version, escalating every attached principal.

  • iam:SetDefaultPolicyVersion

iam:SetDefaultPolicyVersion (lossy)

An attacker with iam:SetDefaultPolicyVersion switches a managed policy to any older version that broadens their access, even when the switch strips permissions other attached principals rely on.

  • iam:SetDefaultPolicyVersion
  • iam:ListPolicyVersions
  • iam:GetPolicyVersion

iam:DeleteRolePermissionsBoundary

An attacker with iam:DeleteRolePermissionsBoundary removes the permissions boundary capping a role, so the role's identity policies take full effect.

  • iam:DeleteRolePermissionsBoundary
  • iam:GetPolicy
  • iam:GetPolicyVersion

iam:DeleteUserPermissionsBoundary

An attacker with iam:DeleteUserPermissionsBoundary removes the permissions boundary capping a user, so the user's identity policies take full effect.

  • iam:DeleteUserPermissionsBoundary
  • iam:GetPolicy
  • iam:GetPolicyVersion

iam:UpdateAssumeRolePolicy

An attacker with iam:UpdateAssumeRolePolicy modifies a role's trust policy to let their current foothold assume it, reaching roles they could not reach before.

  • iam:UpdateAssumeRolePolicy

iam:CreateAccessKey

An attacker with iam:CreateAccessKey mints long-term CLI credentials for a more privileged user.

  • iam:CreateAccessKey

iam:CreateLoginProfile

An attacker with iam:CreateLoginProfile sets a password on a programmatic-only user, then signs in to the console as that user.

  • iam:CreateLoginProfile

iam:UpdateLoginProfile

An attacker with iam:UpdateLoginProfile resets a privileged user's console password, signs in as that user, and mints a long-term access key.

  • iam:UpdateLoginProfile

lambda:CreateFunction + iam:PassRole

An attacker with lambda:CreateFunction and iam:PassRole creates a Lambda function with a privileged execution role and invokes it to run code as that role.

  • lambda:CreateFunction
  • iam:PassRole
  • lambda:InvokeFunction

lambda:UpdateFunctionConfiguration (layer injection)

An attacker with lambda:UpdateFunctionConfiguration attaches a hostile layer to an existing function, running code with the function's execution role on the next invocation.

  • lambda:UpdateFunctionConfiguration
  • lambda:GetFunctionConfiguration

Credential Access