AWS - Cognito Enum

支持 HackTricks

Cognito

Amazon Cognito 被用于认证、授权和用户管理在 web 和移动应用中。它允许用户灵活地直接使用用户名和密码或间接通过第三方(包括 Facebook、Amazon、Google 或 Apple)登录。

Amazon Cognito 的核心有两个主要组件:

  1. User Pools: 这些是为您的应用用户设计的目录,提供注册和登录功能

  2. Identity Pools: 这些池在授权用户访问不同的 AWS 服务中起着重要作用。它们不直接参与登录或注册过程,但在认证后资源访问中至关重要。

User pools

要了解什么是 Cognito User Pool 请查看:

Cognito User Pools

Identity pools

要了解什么是 Cognito Identity Pool 请查看:

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-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 - 未认证枚举

只要知道 Identity Pool ID,你可能就能获取与未认证用户关联的角色的凭证(如果有的话)。查看方法

User Pools - 未认证枚举

即使你不知道 Cognito 中的有效用户名,你可能也能枚举有效的用户名暴力破解密码,甚至注册新用户,只要知道 App client ID(通常在源代码中找到)。查看方法

权限提升

AWS - Cognito Privesc

未认证访问

AWS - Cognito Unauthenticated Enum

持久性

AWS - Cognito Persistence
支持 HackTricks

Last updated