AWS - Cognito Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

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.

Au cƓur d’Amazon Cognito se trouvent 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 apprendre ce qu’est un Cognito User Pool check :

Cognito User Pools

Identity pools

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

Cognito Identity Pools

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 en connaissant 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 d’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

AWS - Cognito Privesc

AccÚs non authentifié

AWS - Cognito Unauthenticated Enum

Persistance

AWS - Cognito Persistence

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks