AssumeRolePolicy Update
Lab: IAM vulnerable
Última actualización
Lab: IAM vulnerable
Última actualización
Una AssumeRolePolicy (también denominada política de confianza), define qué entidades pueden asumir un rol. El permiso para actualizar una AssumeRolePolicy cae técnicamente en la categoría de escalada de privilegios "Permisos sobre políticas". Sin embargo, AssumeRolePolicy merece una categoría aparte debido a su importancia en los entornos de AWS, además del hecho de que a menudo se malinterpreta.
La política llamada MiPoliticaEC2, especifica que el rol solamente puede ser asumida por el servicio EC2, como se indica en el objeto del JSON: “service”: “ec2.amazonaws.com”.
Cuando otra entidad del entorno (como un usuario u otro servicio) que intente asumir este rol AWS denegará la solicitud. Esta es una protección importante contra los intentos de escalar privilegios asumiendo un rol de privilegios elevados.
El permiso iam:UpdateAssumeRolePolicy proporciona a una entidad la capacidad de cambiar la AssumeRolePolicy de un rol. Por lo tanto, si un usuario no está incluido en esta política, pero tiene la capacidad de actualizarla, simplemente puede agregar su cuenta de usuario AssumeRolePolicy, y en consecuencia, asumir el rol. Según los permisos asociados con el rol, esto podría proporcionar una ruta para la escalada de privilegios.
Usuario del laboratorio:privesc14-UpdatingAssumeRolePolicy-user con el rol:
Listar las políticas asociadas al usuario:
Después, usando el ARN del nombre de la política se puede listar los permisos:
Ahora se tiene que generar llaves de acceso para trabajar con el usuario:
Y configurar el acceso con AWS configure:
Y validar las llaves:
En este escenario, se tiene que crear un documento de política que contenga el permiso sts:AssumeRole sobre el ARN del usuario atacante
El ARN del usuario que se encuentra en nuestra política maliciosa es el valor resultante del comando aws sts get-caller-identity
A continuación, se tiene que modificar la política para un rol administrativo con el permiso update-assume-role-policy , con el objetivo de que el usuario privesc14 pueda asumir dicho rol:
Listando el rol que se acaba de de actualizar se puede observar que tiene capacidades de administrador
Dado que el rol apunta ahora a nuestro usuario y el usuario tiene capacidades de asumir roles, procedemos a asumir el rol actualizado malicioso:
Con las nuevas credenciales se proceden a configurar en aws configure con un nuevo perfil
Y dado que este rol ahora tiene permisos de administrador, podemos decir que se a comprometido exitosamente.