# AWS - Cognito Enum {{#include ../../../../banners/hacktricks-training.md}} ## 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** : {{#ref}} cognito-user-pools.md {{#endref}} ### **Identity pools** Pour apprendre ce qu'est un **Cognito Identity Pool check** : {{#ref}} cognito-identity-pools.md {{#endref}} ## Enumeration ```bash # 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 --max-results 60 aws cognito-identity get-identity-pool-roles --identity-pool-id # Identities Datasets ## Get dataset of identity id (inside identity pool) aws cognito-sync list-datasets --identity-pool-id --identity-id ## Get info of the dataset aws cognito-sync describe-dataset --identity-pool-id --identity-id --dataset-name ## Get dataset records aws cognito-sync list-records --identity-pool-id --identity-id --dataset-name # User Pools ## Get pools aws cognito-idp list-user-pools --max-results 60 ## Get users aws cognito-idp list-users --user-pool-id ## Get groups aws cognito-idp list-groups --user-pool-id ## Get users in a group aws cognito-idp list-users-in-group --user-pool-id --group-name ## List App IDs of a user pool aws cognito-idp list-user-pool-clients --user-pool-id ## List configured identity providers for a user pool aws cognito-idp list-identity-providers --user-pool-id ## List user import jobs aws cognito-idp list-user-import-jobs --user-pool-id --max-results 60 ## Get MFA config of a user pool aws cognito-idp get-user-pool-mfa-config --user-pool-id ## Get risk configuration aws cognito-idp describe-risk-configuration --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**](cognito-identity-pools.md#accessing-iam-roles). ### 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**](cognito-user-pools.md#registration)**.** ## Privesc {{#ref}} ../../aws-privilege-escalation/aws-cognito-privesc.md {{#endref}} ## Accès non authentifié {{#ref}} ../../aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md {{#endref}} ## Persistance {{#ref}} ../../aws-persistence/aws-cognito-persistence.md {{#endref}} {{#include ../../../../banners/hacktricks-training.md}}