# AWS - IAM Persistence {{#include ../../../banners/hacktricks-training.md}} ## IAM For more information access: {{#ref}} ../aws-services/aws-iam-enum.md {{#endref}} ### Common IAM Persistence - Create a user - Add a controlled user to a privileged group - Create access keys (of the new user or of all users) - Grant extra permissions to controlled users/groups (attached policies or inline policies) - Disable MFA / Add you own MFA device - Create a Role Chain Juggling situation (more on this below in STS persistence) ### Backdoor Role Trust Policies You could backdoor a trust policy to be able to assume it for an external resource controlled by you (or to everyone): ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": ["*", "arn:aws:iam::123213123123:root"] }, "Action": "sts:AssumeRole" } ] } ``` ### Backdoor Policy Version Give Administrator permissions to a policy in not its last version (the last version should looks legit), then assign that version of the policy to a controlled user/group. ### Backdoor / Create Identity Provider If the account is already trusting a common identity provider (such as Github) the conditions of the trust could be increased so the attacker can abuse them. {{#include ../../../banners/hacktricks-training.md}}