AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognito es un servicio de AWS que permite a los desarrolladores otorgar a los usuarios de su aplicación acceso a los servicios de AWS. Los desarrolladores otorgarán roles de IAM a los usuarios autenticados en su aplicación (potencialmente las personas podrán simplemente registrarse) y también pueden otorgar un rol de IAM a los usuarios no autenticados.

Para información básica sobre Cognito, consulta:

Identity Pool ID

Los Identity Pools pueden otorgar roles de IAM a usuarios no autenticados que solo conocen el Identity Pool ID (que es bastante común encontrar), y un atacante con esta información podría intentar acceder a ese rol de IAM y explotarlo. Además, los roles de IAM también podrían ser asignados a usuarios autenticados que acceden al Identity Pool. Si un atacante puede registrar un usuario o ya tiene acceso al proveedor de identidad utilizado en el identity pool, podría acceder al rol de IAM que se otorga a los usuarios autenticados y abusar de sus privilegios.

Consulta cómo hacer eso aquí.

User Pool ID

Por defecto, Cognito permite registrar nuevos usuarios. Poder registrar un usuario podría darte acceso a la aplicación subyacente o al rol de acceso IAM autenticado de un Identity Pool que está aceptando como proveedor de identidad el Cognito User Pool. Consulta cómo hacer eso aquí.

Pacu modules for pentesting and enumeration

Pacu, el marco de explotación de AWS, ahora incluye los módulos "cognito__enum" y "cognito__attack" que automatizan la enumeración de todos los activos de Cognito en una cuenta y marcan configuraciones débiles, atributos de usuario utilizados para el control de acceso, etc., y también automatizan la creación de usuarios (incluido el soporte de MFA) y la escalada de privilegios basada en atributos personalizados modificables, credenciales de pool de identidad utilizables, roles asumibles en tokens de id, etc.

Para una descripción de las funciones de los módulos, consulta la parte 2 del blog post. Para instrucciones de instalación, consulta la página principal de Pacu.

Usage

Ejemplo de uso de cognito__attack para intentar la creación de usuarios y todos los vectores de privesc contra un pool de identidad y cliente de pool de usuarios dados:

Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX

Ejemplo de uso de cognito__enum para recopilar todos los grupos de usuarios, clientes de grupos de usuarios, grupos de identidades, usuarios, etc. visibles en la cuenta de AWS actual:

Pacu (new:test) > run cognito__enum
Apoya a HackTricks

Last updated