AWS - Cognito Enum

Soutenez 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.

Amazon Cognito repose sur deux composants principaux :

  1. User Pools : Ce sont des répertoires 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 savoir ce qu'est un Cognito User Pool, consultez :

Cognito User Pools

Identity pools

Pour savoir ce qu'est un Cognito Identity Pool, consultez :

Cognito Identity Pools

Énumération

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

Identity Pools - Énumération non authentifiée

En connaissant simplement l'ID du Identity Pool, vous pourriez être capable 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 capable d'énumérer des noms d'utilisateur valides, de BF les mots de passe ou même de s'inscrire en tant que nouvel utilisateur en connaissant simplement l'ID du client App (qui se trouve généralement dans le code source). Vérifiez comment ici.

Privesc

AWS - Cognito Privesc

Accès non authentifié

AWS - Cognito Unauthenticated Enum

Persistance

AWS - Cognito Persistence
Soutenez HackTricks

Last updated