AWS - Cognito Enum

Support HackTricks

Cognito

Amazon Cognito est utilisé pour l'authentification, l'autorisation et la gestion des utilisateurs dans les applications web et mobiles. Il permet aux utilisateurs de se connecter soit directement en utilisant un nom d'utilisateur et un mot de passe, soit indirectement via un tiers, y compris Facebook, Amazon, Google ou Apple.

Au cœur d'Amazon Cognito se trouvent deux composants principaux :

  1. User Pools : Ce sont des annuaires conçus pour les utilisateurs de votre application, offrant des fonctionnalités d'inscription et de connexion.

  2. Identity Pools : Ces pools sont essentiels pour autoriser les utilisateurs à accéder à différents services AWS. Ils ne sont pas directement impliqués dans le processus de connexion ou d'inscription, mais sont cruciaux pour l'accès aux ressources après l'authentification.

User pools

Pour apprendre ce qu'est un Cognito User Pool check :

Identity pools

Pour apprendre ce qu'est un Cognito Identity Pool check :

Enumeration

# 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 - Énumération non authentifiée

Juste savoir l'ID du pool d'identité vous pourriez être en mesure d'obtenir les identifiants du rôle associé aux utilisateurs non authentifiés (le cas échéant). Vérifiez comment ici.

User Pools - Énumération non authentifiée

Même si vous ne connaissez pas un nom d'utilisateur valide dans Cognito, vous pourriez être en mesure de énumérer des noms d'utilisateur valides, BF les mots de passe ou même enregistrer un nouvel utilisateur juste en connaissant l'ID du client de l'application (qui se trouve généralement dans le code source). Vérifiez comment ici.

Privesc

Accès non authentifié

Persistance

Soutenir HackTricks

Last updated