AWS - Cognito Enum
Reading time: 5 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Cognito
O 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:
- User Pools: Estes são diretórios projetados para os usuários do seu aplicativo, oferecendo funcionalidades de cadastro e login.
- Identity Pools: Esses pools são instrumentais na autorização de usuários para acessar diferentes serviços da 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 conhecendo o ID do Pool de Identidade, você pode ser capaz de obter 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, você pode ser capaz de enumerar nomes de usuários válidos, BF as senhas ou até mesmo registrar um novo usuário apenas conhecendo o ID do cliente do App (que geralmente é encontrado no código-fonte). Veja como aqui.
Privesc
Acesso Não Autenticado
AWS - Cognito Unauthenticated Enum
Persistência
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.