AWS - Cognito Enum

Support HackTricks

Cognito

Amazon Cognito wird für Authentifizierung, Autorisierung und Benutzerverwaltung in Web- und mobilen Anwendungen verwendet. Es ermöglicht Benutzern die Flexibilität, sich entweder direkt mit einem Benutzernamen und Passwort oder indirekt über einen Drittanbieter, einschließlich Facebook, Amazon, Google oder Apple, anzumelden.

Zentral für Amazon Cognito sind zwei Hauptkomponenten:

  1. Benutzerpools: Dies sind Verzeichnisse, die für Ihre App-Benutzer entworfen wurden und Anmelde- und Registrierungsfunktionen bieten.

  2. Identitätspools: 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, sind jedoch entscheidend für den Ressourcen Zugriff nach der Authentifizierung.

Benutzerpools

Um zu lernen, was ein Cognito-Benutzerpool ist, überprüfen Sie:

Identitätspools

Um zu lernen, was ein Cognito-Identitätspool ist, überprüfen Sie:

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 - Unauthenticated Enumeration

Nur das Wissen um die Identity Pool ID könnte es Ihnen ermöglichen, die Anmeldeinformationen der Rolle, die mit nicht authentifizierten Benutzern verbunden ist (falls vorhanden), zu erhalten. Hier überprüfen.

User Pools - Unauthenticated Enumeration

Selbst wenn Sie keinen gültigen Benutzernamen innerhalb von Cognito kennen, könnten Sie in der Lage sein, gültige Benutzernamen zu enumerieren, BF die Passwörter oder sogar einen neuen Benutzer zu registrieren, nur mit dem Wissen um die App-Client-ID (die normalerweise im Quellcode zu finden ist). Hier überprüfen.

Privesc

Unauthenticated Access

Persistence

Support HackTricks

Last updated