AWS - Cognito Enum

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie 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 Registrierungs- und Anmeldefunktionen 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 erfahren, was ein Cognito Benutzerpool ist, überprüfen Sie:

Cognito User Pools

Identitätspools

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

Cognito Identity Pools

Enumeration

bash
# 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 Ihnen ermöglichen, die Anmeldeinformationen der Rolle, die mit nicht authentifizierten Benutzern verbunden ist (falls vorhanden), zu erhalten. Überprüfen Sie hier, wie.

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). Überprüfen Sie hier, wie.

Privesc

AWS - Cognito Privesc

Unauthenticated Access

AWS - Cognito Unauthenticated Enum

Persistence

AWS - Cognito Persistence

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks