AWS - Cognito Unauthenticated Enum
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Unauthenticated Cognito
Cognito est un service AWS qui permet aux développeurs de donner à leurs utilisateurs d'application l'accès aux services AWS. Les développeurs attribuent des IAM roles to authenticated users dans leur application (potentiellement les gens pourront simplement s'inscrire) et ils peuvent aussi attribuer un IAM role to unauthenticated users.
Pour des informations de base sur Cognito, consultez :
Identity Pool ID
Les Identity Pools peuvent accorder des IAM roles to unauthenticated users à des personnes qui se contentent de know the Identity Pool ID (ce qui est assez courant à find), et un attaquant disposant de cette information pourrait tenter de access that IAM role et l'exploiter.
De plus, des IAM roles peuvent aussi être assignés à des authenticated users qui accèdent à l'Identity Pool. Si un attaquant peut register a user ou a déjà access to the identity provider utilisé dans l'identity pool, il pourrait accéder au IAM role being given to authenticated users et abuser de ses privilèges.
User Pool ID
Par défaut, Cognito permet de register new user. Pouvoir enregistrer un utilisateur peut vous donner access à l'underlaying application ou au authenticated IAM access role of an Identity Pool qui accepte comme fournisseur d'identité le Cognito User Pool. Voir comment faire ici.
Pacu modules for pentesting and enumeration
Pacu, le framework d'exploitation AWS, inclut désormais les modules "cognito__enum" et "cognito__attack" qui automatisent l'enumeration de tous les Cognito assets dans un compte et signalent les configurations faibles, les attributs utilisateur utilisés pour le contrôle d'accès, etc., et automatisent aussi la création d'utilisateurs (incluant le support MFA) et l'escalade de privilèges basée sur des attributs personnalisés modifiables, des usable identity pool credentials, des assumable roles dans les id tokens, etc.
Pour une description des fonctions des modules, voyez la partie 2 du blog post. Pour les instructions d'installation, voyez la page principale de Pacu.
Usage
Exemple d'utilisation de cognito__attack pour tenter la création d'utilisateurs et tous les privesc vectors contre un identity pool et user pool client donnés:
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
Exemple d'utilisation de cognito__enum pour rassembler tous les user pools, user pool clients, identity pools, users, etc. visibles dans le compte AWS actuel:
Pacu (new:test) > run cognito__enum
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud