Files
hacktricks-cloud/src/pentesting-cloud/aws-security/aws-unauthenticated-enum-access/aws-cognito-unauthenticated-enum.md

3.4 KiB

AWS - Cognito Unauthenticated Enum

{{#include ../../../banners/hacktricks-training.md}}

Unauthenticated Cognito

Cognito ist ein AWS-Dienst, der Entwicklern ermöglicht, ihren App-Nutzern Zugang zu AWS-Diensten zu gewähren. Entwickler werden IAM-Rollen an authentifizierte Benutzer in ihrer App vergeben (potenziell können sich Personen einfach anmelden) und sie können auch eine IAM-Rolle an nicht authentifizierte Benutzer vergeben.

Für grundlegende Informationen über Cognito siehe:

{{#ref}} ../aws-services/aws-cognito-enum/ {{#endref}}

Identity Pool ID

Identity Pools können IAM-Rollen an nicht authentifizierte Benutzer vergeben, die nur die Identity Pool ID kennen (was ziemlich häufig zu finden ist), und ein Angreifer mit diesen Informationen könnte versuchen, auf diese IAM-Rolle zuzugreifen und sie auszunutzen.
Darüber hinaus könnten IAM-Rollen auch an authentifizierte Benutzer vergeben werden, die auf den Identity Pool zugreifen. Wenn ein Angreifer einen Benutzer registrieren kann oder bereits Zugriff auf den Identitätsanbieter hat, der im Identity Pool verwendet wird, könnte er auf die IAM-Rolle zugreifen, die authentifizierten Benutzern zugewiesen ist und deren Berechtigungen missbrauchen.

Überprüfen Sie hier, wie das geht.

User Pool ID

Standardmäßig erlaubt Cognito, neue Benutzer zu registrieren. Die Möglichkeit, einen Benutzer zu registrieren, könnte Ihnen Zugriff auf die unterliegende Anwendung oder auf die authentifizierte IAM-Zugriffsrolle eines Identity Pools geben, der den Cognito User Pool als Identitätsanbieter akzeptiert. Überprüfen Sie hier, wie das geht.

Pacu-Module für Pentesting und Enumeration

Pacu, das AWS-Exploitation-Framework, umfasst jetzt die Module "cognito__enum" und "cognito__attack", die die Enumeration aller Cognito-Ressourcen in einem Konto automatisieren und schwache Konfigurationen, Benutzerattribute, die für die Zugriffskontrolle verwendet werden, usw. kennzeichnen, sowie die Benutzererstellung (einschließlich MFA-Unterstützung) und Privilegieneskalation basierend auf modifizierbaren benutzerdefinierten Attributen, verwendbaren Identitätspool-Anmeldeinformationen, übernehmbaren Rollen in ID-Token usw. automatisieren.

Für eine Beschreibung der Funktionen der Module siehe Teil 2 des Blogbeitrags. Für Installationsanweisungen siehe die Hauptseite von Pacu.

Nutzung

Beispiel für die Nutzung von cognito__attack, um die Benutzererstellung und alle Privilegieneskalationsvektoren gegen einen bestimmten Identity Pool und Benutzerpool-Client zu versuchen:

Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX

Beispiel für die Verwendung von cognito__enum, um alle Benutzerpools, Benutzerpool-Clients, Identitätspools, Benutzer usw. zu sammeln, die im aktuellen AWS-Konto sichtbar sind:

Pacu (new:test) > run cognito__enum

{{#include ../../../banners/hacktricks-training.md}}