AWS - STS Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
sts:AssumeRole
Chaque rôle est créé avec une politique de confiance de rôle, cette politique indique qui peut assumer le rôle créé. Si un rôle du même compte indique qu'un compte peut l'assumer, cela signifie que le compte pourra accéder au rôle (et potentiellement privesc).
Par exemple, la politique de confiance de rôle suivante indique que n'importe qui peut l'assumer, donc tout utilisateur pourra privesc aux permissions associées à ce rôle.
Vous pouvez usurper un rôle en exécutant :
Impact potentiel : Privesc au rôle.
Notez que dans ce cas, la permission sts:AssumeRole
doit être indiquée dans le rôle à abuser et non dans une politique appartenant à l'attaquant.
Avec une exception, afin de prendre un rôle d'un compte différent, le compte attaquant doit également avoir le sts:AssumeRole
sur le rôle.
sts:GetFederationToken
Avec cette permission, il est possible de générer des identifiants pour usurper n'importe quel utilisateur :
C'est ainsi que cette autorisation peut être accordée en toute sécurité sans donner accès à l'imitation d'autres utilisateurs :
sts:AssumeRoleWithSAML
Une politique de confiance avec ce rôle accorde aux utilisateurs authentifiés via SAML l'accès pour usurper le rôle.
Un exemple d'une politique de confiance avec cette permission est :
Pour générer des identifiants afin d'usurper le rôle, vous pourriez utiliser quelque chose comme :
Mais les fournisseurs peuvent avoir leurs propres outils pour faciliter cela, comme onelogin-aws-assume-role :
Impact potentiel : Privesc au rôle.
sts:AssumeRoleWithWebIdentity
Cette permission accorde le droit d'obtenir un ensemble de credentials de sécurité temporaires pour les utilisateurs qui ont été authentifiés dans une application mobile, web, EKS... avec un fournisseur d'identité web. En savoir plus ici.
Par exemple, si un compte de service EKS doit être capable de se faire passer pour un rôle IAM, il aura un jeton dans /var/run/secrets/eks.amazonaws.com/serviceaccount/token
et peut assumer le rôle et obtenir des credentials en faisant quelque chose comme :
Apprenez et pratiquez le hacking AWS :Formation HackTricks AWS Red Team Expert (ARTE) Apprenez et pratiquez le hacking GCP : Formation HackTricks GCP Red Team Expert (GRTE)