AWS - Cognito Enum

Unterstütze HackTricks

Cognito

Amazon Cognito wird für Authentifizierung, Autorisierung und Benutzerverwaltung in Web- und mobilen Anwendungen genutzt. Es ermöglicht Benutzern, sich entweder direkt mit einem Benutzernamen und Passwort oder indirekt über einen Drittanbieter wie Facebook, Amazon, Google oder Apple anzumelden.

Zentral für Amazon Cognito sind zwei Hauptkomponenten:

  1. User Pools: Diese sind Verzeichnisse für Ihre App-Benutzer und bieten Anmelde- und Registrierungsfunktionen.

  2. Identity Pools: Diese Pools sind entscheidend für die Autorisierung von Benutzern zum Zugriff auf verschiedene AWS-Dienste. Sie sind nicht direkt am Anmelde- oder Registrierungsprozess beteiligt, aber entscheidend für den Ressourcenzugriff nach der Authentifizierung.

User pools

Um zu erfahren, was ein Cognito User Pool ist, siehe:

Cognito User Pools

Identity pools

Um zu erfahren, was ein Cognito Identity Pool ist, siehe:

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

Nur durch Kenntnis der Identity Pool ID könnten Sie in der Lage sein, Anmeldeinformationen der Rolle zu erhalten, die mit nicht authentifizierten Benutzern verknüpft ist (falls vorhanden). Hier nachsehen, wie.

User Pools - Unauthenticated Enumeration

Selbst wenn Sie keinen gültigen Benutzernamen in Cognito kennen, könnten Sie in der Lage sein, gültige Benutzernamen zu enumerieren, Passwörter zu BF oder sogar einen neuen Benutzer zu registrieren, nur durch Kenntnis der App-Client-ID (die normalerweise im Quellcode zu finden ist). Hier nachsehen, wie.

Privesc

AWS - Cognito Privesc

Unauthenticated Access

AWS - Cognito Unauthenticated Enum

Persistence

AWS - Cognito Persistence
Unterstützen Sie HackTricks

Last updated