AWS - Cognito Enum

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

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 wie Facebook, Amazon, Google oder Apple anzumelden.

Zentral für Amazon Cognito sind zwei Hauptkomponenten:

  1. Benutzerpools: Dies sind Verzeichnisse für Ihre App-Benutzer, die Anmelde- 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 aber nach der Authentifizierung entscheidend für den Ressourcenzugriff.

Benutzerpools

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

Identitätspools

Um zu erfahren, 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-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>

Identitäts-Pools - Nicht authentifizierte Enumeration

Nur durch Kenntnis der Identitäts-Pool-ID könnten Sie in der Lage sein, Berechtigungen der Rolle zu erhalten, die nicht authentifizierten Benutzern zugeordnet ist (falls vorhanden). Überprüfen Sie hier, wie das geht.

Benutzer-Pools - Nicht authentifizierte Enumeration

Auch wenn Sie keinen gültigen Benutzernamen in Cognito kennen, könnten Sie in der Lage sein, gültige Benutzernamen zu enumerieren, BF die Passwörter oder sogar einen neuen Benutzer registrieren, indem Sie nur die App-Client-ID kennen (die normalerweise im Quellcode gefunden wird). Überprüfen Sie hier, wie das geht.

Privilege Escalation

Nicht authentifizierter Zugriff

Persistenz

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated