# AWS - Cognito Unauthenticated Enum {{#include ../../../banners/hacktricks-training.md}} ## Unauthenticated Cognito Cognito ist ein AWS-Dienst, der Entwicklern ermöglicht, **ihren App-Nutzern Zugriff auf AWS-Dienste zu gewähren**. Entwickler gewähren **IAM-Rollen für authentifizierte Benutzer** in ihrer App (potenziell können sich Personen einfach anmelden) und sie können auch eine **IAM-Rolle für nicht authentifizierte Benutzer** gewähren. Für grundlegende Informationen über Cognito siehe: {{#ref}} ../aws-services/aws-cognito-enum/ {{#endref}} ### Identity Pool ID Identity Pools können **IAM-Rollen für nicht authentifizierte Benutzer** gewähren, 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 **authentifizierten Benutzern** zugewiesen 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**](../aws-services/aws-cognito-enum/cognito-identity-pools.md). ### 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**](../aws-services/aws-cognito-enum/cognito-user-pools.md#registration). ### Pacu-Module für Pentesting und Enumeration [Pacu](https://github.com/RhinoSecurityLabs/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](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Für Installationsanweisungen siehe die Hauptseite von [Pacu](https://github.com/RhinoSecurityLabs/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: ```bash 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: ```bash Pacu (new:test) > run cognito__enum ``` {{#include ../../../banners/hacktricks-training.md}}