AWS - Cognito Unauthenticated Enum

Support HackTricks

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 zu Cognito siehe:

AWS - Cognito Enum

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 wird 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
Unterstütze HackTricks

Last updated