AWS - Cognito Enum

Supporta HackTricks

Cognito

Amazon Cognito è utilizzato per autenticazione, autorizzazione e gestione degli utenti in applicazioni web e mobile. Consente agli utenti la flessibilità di accedere sia direttamente utilizzando un nome utente e password sia indirettamente tramite un terzo, inclusi Facebook, Amazon, Google o Apple.

Centrale per Amazon Cognito sono due componenti principali:

  1. User Pools: Questi sono directory progettate per gli utenti della tua app, offrendo funzionalità di registrazione e accesso.

  2. Identity Pools: Questi pool sono strumentali per autorizzare gli utenti ad accedere a diversi servizi AWS. Non sono direttamente coinvolti nel processo di accesso o registrazione, ma sono cruciali per l'accesso alle risorse post-autenticazione.

User pools

Per sapere cosa è un Cognito User Pool controlla:

Cognito User Pools

Identity pools

Per sapere cosa è un Cognito Identity Pool controlla:

Cognito Identity Pools

Enumerazione

# 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 - Enumerazione Non Autenticata

Solo conoscendo l'Identity Pool ID potresti essere in grado di ottenere le credenziali del ruolo associato agli utenti non autenticati (se presenti). Controlla come qui.

User Pools - Enumerazione Non Autenticata

Anche se non conosci un username valido all'interno di Cognito, potresti essere in grado di enumerare username validi, BF le password o persino registrare un nuovo utente solo conoscendo l'App client ID (che di solito si trova nel codice sorgente). Controlla come qui.

Privesc

AWS - Cognito Privesc

Accesso Non Autenticato

AWS - Cognito Unauthenticated Enum

Persistenza

AWS - Cognito Persistence
Supporta HackTricks

Last updated