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
Cada rol se crea con una política de confianza del rol, esta política indica quién puede asumir el rol creado. Si un rol de la misma cuenta dice que una cuenta puede asumirlo, significa que la cuenta podrá acceder al rol (y potencialmente privesc).
Por ejemplo, la siguiente política de confianza del rol indica que cualquiera puede asumirlo, por lo tanto cualquier usuario podrá privesc a los permisos asociados con ese rol.
Puedes suplantar un rol ejecutando:
Impacto Potencial: Privesc al rol.
Tenga en cuenta que en este caso el permiso sts:AssumeRole
debe ser indicado en el rol a abusar y no en una política perteneciente al atacante.
Con una excepción, para asumir un rol de una cuenta diferente la cuenta del atacante también necesita tener el sts:AssumeRole
sobre el rol.
sts:GetFederationToken
Con este permiso es posible generar credenciales para suplantar a cualquier usuario:
Esta es la forma en que se puede otorgar este permiso de manera segura sin dar acceso para suplantar a otros usuarios:
sts:AssumeRoleWithSAML
Una política de confianza con este rol otorga a los usuarios autenticados a través de SAML acceso para suplantar el rol.
Un ejemplo de una política de confianza con este permiso es:
Para generar credenciales para suplantar el rol, en general podrías usar algo como:
Pero los proveedores pueden tener sus propias herramientas para facilitar esto, como onelogin-aws-assume-role:
Impacto Potencial: Privesc al rol.
sts:AssumeRoleWithWebIdentity
Este permiso otorga la capacidad de obtener un conjunto de credenciales de seguridad temporales para usuarios que han sido autenticados en una aplicación móvil, web, EKS... con un proveedor de identidad web. Aprende más aquí.
Por ejemplo, si una cuenta de servicio de EKS debería poder suplantar un rol de IAM, tendrá un token en /var/run/secrets/eks.amazonaws.com/serviceaccount/token
y puede asumir el rol y obtener credenciales haciendo algo como:
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)