AWS - Cognito Enum

Apoya a HackTricks

Cognito

Amazon Cognito se utiliza para autenticación, autorización y gestión de usuarios en aplicaciones web y móviles. Permite a los usuarios la flexibilidad de iniciar sesión directamente usando un nombre de usuario y contraseña o indirectamente a través de un tercero, incluyendo Facebook, Amazon, Google o Apple.

Central a Amazon Cognito son dos componentes principales:

  1. User Pools: Estos son directorios diseñados para los usuarios de tu aplicación, ofreciendo funcionalidades de registro e inicio de sesión.

  2. Identity Pools: Estos grupos son fundamentales para autorizar a los usuarios a acceder a diferentes servicios de AWS. No están directamente involucrados en el proceso de inicio de sesión o registro, pero son cruciales para el acceso a recursos después de la autenticación.

User pools

Para aprender qué es un Cognito User Pool verifica:

Identity pools

Para aprender qué es un Cognito Identity Pool verifica:

Enumeración

# List Identity Pools
aws cognito-identity list-identity-pools --max-results 60
aws cognito-identity describe-identity-pool --identity-pool-id "eu-west-2:38b294756-2578-8246-9074-5367fc9f5367"
aws cognito-identity list-identities --identity-pool-id <ident-pool-id> --max-results 60
aws cognito-identity get-identity-pool-roles --identity-pool-id <ident-pool-id>

# Identities Datasets
## Get dataset of identity id (inside identity pool)
aws cognito-sync list-datasets --identity-pool-id <ident-pool-id> --identity-id <ident-id>
## Get info of the dataset
aws cognito-sync describe-dataset --identity-pool-id <value> --identity-id <value> --dataset-name <value>
## Get dataset records
aws cognito-sync list-records --identity-pool-id <value> --identity-id <value> --dataset-name <value>

# User Pools
## Get pools
aws cognito-idp list-user-pools --max-results 60

## Get users
aws cognito-idp list-users --user-pool-id <user-pool-id>

## Get groups
aws cognito-idp list-groups --user-pool-id <user-pool-id>

## Get users in a group
aws cognito-idp list-users-in-group --user-pool-id <user-pool-id> --group-name <group-name>

## List App IDs of a user pool
aws cognito-idp list-user-pool-clients --user-pool-id <user-pool-id>

## List configured identity providers for a user pool
aws cognito-idp list-identity-providers --user-pool-id <user-pool-id>

## List user import jobs
aws cognito-idp list-user-import-jobs --user-pool-id <user-pool-id> --max-results 60

## Get MFA config of a user pool
aws cognito-idp get-user-pool-mfa-config --user-pool-id <user-pool-id>

## Get risk configuration
aws cognito-idp describe-risk-configuration --user-pool-id <user-pool-id>

Identity Pools - Enumeración No Autenticada

Solo conocer el ID del Pool de Identidad podrías obtener credenciales del rol asociado a usuarios no autenticados (si los hay). Consulta cómo aquí.

User Pools - Enumeración No Autenticada

Incluso si no conoces un nombre de usuario válido dentro de Cognito, podrías enumerar nombres de usuario válidos, BF las contraseñas o incluso registrar un nuevo usuario solo conociendo el ID del cliente de la aplicación (que generalmente se encuentra en el código fuente). Consulta cómo aquí.

Privesc

Acceso No Autenticado

Persistencia

Apoya a HackTricks

Last updated