AWS - Cognito Enum

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar 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 ya sea directamente utilizando un nombre de usuario y contraseña o indirectamente a través de un tercero, incluyendo Facebook, Amazon, Google o Apple.

Dos componentes principales de Amazon Cognito son:

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

  2. Grupos de identidad: Estos grupos son instrumentales en autorizar a los usuarios para 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.

Grupos de usuarios

Para aprender qué es un Grupo de Usuarios de Cognito, consulta:

pageCognito User Pools

Grupos de identidad

Para aprender qué es un Grupo de Identidad de Cognito, consulta:

pageCognito Identity Pools

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-poo

## 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>

Piscinas de identidad - Enumeración no autenticada

Simplemente conocer el ID de la piscina de identidad podría permitirte obtener credenciales del rol asociado a usuarios no autenticados (si los hay). Ver cómo aquí.

Piscinas de usuarios - Enumeración no autenticada

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

Escalada de privilegios

pageAWS - Cognito Privesc

Acceso no autenticado

pageAWS - Cognito Unauthenticated Enum

Persistencia

pageAWS - Cognito Persistence
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización