AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognito est un service AWS qui permet aux développeurs de donner à leurs utilisateurs d'application accès aux services AWS. Les développeurs accorderont des rôles IAM aux utilisateurs authentifiés dans leur application (potentiellement, les gens pourront simplement s'inscrire) et ils peuvent également accorder un rôle IAM aux utilisateurs non authentifiés.

Pour des informations de base sur Cognito, consultez :

AWS - Cognito Enum

Identity Pool ID

Les Identity Pools peuvent accorder des rôles IAM aux utilisateurs non authentifiés qui connaissent simplement l'Identity Pool ID (ce qui est assez courant à trouver), et un attaquant avec cette information pourrait essayer d'accéder à ce rôle IAM et de l'exploiter. De plus, des rôles IAM pourraient également être attribués à des utilisateurs authentifiés qui accèdent à l'Identity Pool. Si un attaquant peut enregistrer un utilisateur ou a déjà accès au fournisseur d'identité utilisé dans l'Identity Pool, il pourrait accéder au rôle IAM attribué aux utilisateurs authentifiés et abuser de ses privilèges.

Check how to do that here.

User Pool ID

Par défaut, Cognito permet de s'inscrire de nouveaux utilisateurs. Être capable d'enregistrer un utilisateur pourrait vous donner accès à l'application sous-jacente ou au rôle d'accès IAM authentifié d'un Identity Pool qui accepte comme fournisseur d'identité le Cognito User Pool. Check how to do that here.

Pacu modules for pentesting and enumeration

Pacu, le framework d'exploitation AWS, inclut maintenant les modules "cognito__enum" et "cognito__attack" qui automatisent l'énumération de tous les actifs Cognito dans un compte et signalent les configurations faibles, les attributs utilisateur utilisés pour le contrôle d'accès, etc., et automatisent également la création d'utilisateurs (y compris le support MFA) et l'escalade de privilèges basée sur des attributs personnalisables modifiables, des identifiants de pool d'identité utilisables, des rôles assumables dans les jetons d'identité, etc.

Pour une description des fonctions des modules, consultez la partie 2 du blog post. Pour des instructions d'installation, consultez la page principale Pacu.

Usage

Exemple d'utilisation de cognito__attack pour tenter la création d'utilisateur et tous les vecteurs de privesc contre un pool d'identité et un client de pool d'utilisateurs 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 groupes d'utilisateurs, les clients de groupes d'utilisateurs, les groupes d'identité, les utilisateurs, etc. visibles dans le compte AWS actuel :

Pacu (new:test) > run cognito__enum
Soutenir HackTricks

Last updated