AWS - Cognito Unauthenticated Enum

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

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 :

AWS - Cognito Enum

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.

Voir comment faire ici.

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 & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks