AWS - STS Privesc
STS
sts:AssumeRole
sts:AssumeRole
Cada rol se crea con una política de confianza de rol, esta política indica quién puede asumir el rol creado. Si un rol del mismo cuenta dice que una cuenta puede asumirlo, significa que la cuenta podrá acceder al rol (y potencialmente escalada de privilegios).
Por ejemplo, la siguiente política de confianza de rol indica que cualquiera puede asumirlo, por lo tanto cualquier usuario podrá realizar una escalada de privilegios a los permisos asociados con ese rol.
Puedes suplantar un rol ejecutando:
Impacto Potencial: Escalada de privilegios al rol.
Tenga en cuenta que en este caso, el permiso sts:AssumeRole
debe estar 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 permiso sts:AssumeRole
sobre el rol.
sts:GetFederationToken
sts:GetFederationToken
Con este permiso es posible generar credenciales para suplantar a cualquier usuario:
Esto es cómo se puede otorgar este permiso de forma segura sin dar acceso a suplantar a otros usuarios:
sts:AssumeRoleWithSAML
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 podrían tener sus propias herramientas para facilitar esto, como onelogin-aws-assume-role:
Impacto potencial: Escalada de privilegios al rol.
sts:AssumeRoleWithWebIdentity
sts:AssumeRoleWithWebIdentity
Esta permisión otorga el permiso para 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. Más información aquí.
Por ejemplo, si una cuenta de servicio EKS debería poder suplantar a un rol IAM, tendrá un token en /var/run/secrets/eks.amazonaws.com/serviceaccount/token
y puede asumir el rol y obtener credenciales haciendo algo como:
Abuso de Federación
AWS - Federation AbuseLast updated