AWS - Cognito Enum

Support HackTricks

Cognito

Amazon Cognito é utilizado para autenticação, autorização e gerenciamento de usuários em aplicações web e móveis. Ele permite que os usuários tenham a flexibilidade de fazer login diretamente usando um nome de usuário e senha ou indiretamente através de um terceiro, incluindo Facebook, Amazon, Google ou Apple.

Central ao Amazon Cognito estão dois componentes principais:

  1. User Pools: Estes são diretórios projetados para os usuários do seu aplicativo, oferecendo funcionalidades de cadastro e login.

  2. Identity Pools: Esses pools são instrumentais na autorização de usuários para acessar diferentes serviços AWS. Eles não estão diretamente envolvidos no processo de login ou cadastro, mas são cruciais para o acesso a recursos após a autenticação.

User pools

Para aprender o que é um Cognito User Pool check:

Identity pools

Para aprender o que é um 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 - Enumeração Não Autenticada

Apenas saber o ID do Pool de Identidade pode permitir que você obtenha credenciais do papel associado a usuários não autenticados (se houver). Veja como aqui.

User Pools - Enumeração Não Autenticada

Mesmo que você não conheça um nome de usuário válido dentro do Cognito, pode ser possível enumerar nomes de usuários válidos, BF as senhas ou até mesmo registrar um novo usuário apenas sabendo o ID do cliente do App (que geralmente é encontrado no código-fonte). Veja como aqui.

Privesc

Acesso Não Autenticado

Persistência

Support HackTricks

Last updated