AWS - Cognito Enum

Support HackTricks

Cognito

Amazon Cognito는 웹 및 모바일 애플리케이션에서 인증, 권한 부여 및 사용자 관리를 위해 사용됩니다. 사용자는 사용자 이름과 비밀번호를 직접 사용하거나 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 - Unauthenticated Enumeration

Identity Pool ID만 알고 있어도 인증되지 않은 사용자와 연관된 역할의 자격 증명을 얻을 수 있습니다 (있는 경우). 여기에서 확인하세요.

User Pools - Unauthenticated Enumeration

Cognito 내부의 유효한 사용자 이름을 모른다 하더라도, 유효한 사용자 이름을 열거하고, 비밀번호를 BF하거나 새 사용자를 등록할 수 있습니다. 단지 App client ID만 알고 있으면 됩니다 (이는 보통 소스 코드에서 찾을 수 있습니다). 여기에서 확인하세요.

Privesc

AWS - Cognito Privesc

Unauthenticated Access

AWS - Cognito Unauthenticated Enum

Persistence

AWS - Cognito Persistence
Support HackTricks

Last updated