AWS - Cognito Unauthenticated 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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Unauthenticated Cognito
Cognito ist ein AWS-Dienst, der Entwicklern ermöglicht, ihren App-Nutzern Zugriff auf AWS-Services zu gewähren. Entwickler werden in ihrer App IAM roles an authentifizierte Nutzer vergeben (potenziell können sich Personen einfach registrieren) und sie können auch eine IAM role an nicht-authentifizierte Nutzer vergeben.
Für grundlegende Informationen zu Cognito siehe:
Identity Pool ID
Identity Pools können IAM roles an nicht-authentifizierte Nutzer vergeben, die lediglich die Identity Pool ID kennen (was recht häufig gefunden wird), und ein Angreifer mit dieser Information könnte versuchen, auf diese IAM role zuzugreifen und sie auszunutzen.
Außerdem können IAM roles auch authentifizierten Nutzern zugewiesen werden, die auf den Identity Pool zugreifen. Wenn ein Angreifer einen Nutzer registrieren kann oder bereits Zugriff auf den Identity Provider hat, der im Identity Pool verwendet wird, könnte er auf die IAM role, die authentifizierten Nutzern gegeben wird, zugreifen und deren Berechtigungen missbrauchen.
User Pool ID
Standardmäßig erlaubt Cognito die Registrierung neuer Nutzer. Die Möglichkeit, einen Nutzer zu registrieren, kann Ihnen Zugriff auf die zugrundeliegende Anwendung oder auf die authentifizierte IAM access role eines Identity Pools verschaffen, der den Cognito User Pool als Identity Provider akzeptiert. Check how to do that here.
Pacu modules for pentesting and enumeration
Pacu (https://github.com/RhinoSecurityLabs/pacu), das AWS exploitation framework, enthält jetzt die Module "cognito__enum" und "cognito__attack", die die Enumeration aller Cognito-Ressourcen in einem Account automatisieren und schwache Konfigurationen, für Zugriffskontrolle verwendete Benutzerattribute usw. markieren. Sie automatisieren außerdem die Benutzererstellung (inkl. MFA-Unterstützung) und Privilegieneskalation basierend auf modifizierbaren benutzerdefinierten Attributen, nutzbaren Identity Pool Credentials, annehmbaren Rollen in id tokens usw.
Für eine Beschreibung der Funktionen der Module siehe Teil 2 des Blogposts. Für Installationsanweisungen siehe die Hauptseite von Pacu.
Usage
Sample cognito__attack usage to attempt user creation and all privesc vectors against a given identity pool and user pool client:
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
Beispielhafte Nutzung von cognito__enum, um alle user pools, user pool clients, identity pools, users usw. zu sammeln, die im aktuellen AWS-Konto sichtbar sind:
Pacu (new:test) > run cognito__enum
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
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud