AWS - STS Enum
STS
AWS Security Token Service (STS) está diseñado principalmente para emitir credenciales temporales y de privilegios limitados. Estas credenciales pueden ser solicitadas para AWS Identity and Access Management (IAM) usuarios o para usuarios autenticados (usuarios federados).
Dado que el propósito de STS es emitir credenciales para la suplantación de identidad, el servicio es inmensamente valioso para escalar privilegios y mantener persistencia, aunque no tenga una amplia gama de opciones.
Suplantación de Asunción de Rol
La acción AssumeRole proporcionada por AWS STS es crucial ya que permite a un principal adquirir credenciales para otro principal, esencialmente suplantándolos. Al invocarse, responde con un ID de clave de acceso, una clave secreta y un token de sesión correspondiente al ARN especificado.
Para los Penetration Testers o miembros del Red Team, esta técnica es instrumental para la escalada de privilegios (como se detalla aquí). Sin embargo, vale la pena señalar que esta técnica es bastante conspicua y puede no sorprender a un atacante.
Lógica de Asunción de Rol
Para asumir un rol en la misma cuenta si el rol a asumir está permitiendo específicamente un ARN de rol como en:
El rol priv-role
en este caso, no necesita ser específicamente permitido para asumir ese rol (con ese permiso es suficiente).
Sin embargo, si un rol está permitiendo a una cuenta asumirlo, como en:
El rol que intenta asumirlo necesitará un permiso específico sts:AssumeRole
sobre ese rol para asumirlo.
Si intentas asumir un rol de una cuenta diferente, el rol asumido debe permitirlo (indicando el rol ARN o la cuenta externa), y el rol que intenta asumir el otro DEBE tener permisos para asumirlo (en este caso, esto no es opcional, incluso si el rol asumido está especificando un ARN).
Enumeración
Privesc
En la siguiente página puedes ver cómo abusar de los permisos de STS para escalar privilegios:
AWS - STS PrivescPost Exploitation
AWS - STS Post ExploitationPersistence
AWS - STS PersistenceReferences
Last updated