AWS - Cognito Unauthenticated Enum

Soutenez HackTricks

Cognito non authentifié

Cognito est un service AWS qui permet aux développeurs de accorder à leurs utilisateurs d'application l'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

Modules Pacu pour les tests d'intrusion et l'énumération

Pacu, le framework d'exploitation AWS, inclut désormais 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 d'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'élévation de privilèges basée sur des attributs personnalisés modifiables, des informations d'identification de pool d'identités utilisables, des rôles assumables dans les jetons d'identité, etc.

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

Utilisation

Exemple d'utilisation de l'attaque cognito__attack pour tenter la création d'utilisateur et tous les vecteurs de privilège contre un pool d'identités donné et un client de pool d'utilisateurs :

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 pools d'utilisateurs, les clients de pool d'utilisateurs, les pools d'identités, les utilisateurs, etc. visibles dans le compte AWS actuel :

Pacu (new:test) > run cognito__enum

ID de pool d'identité

Les pools d'identité peuvent accorder des rôles IAM aux utilisateurs non authentifiés qui connaissent simplement l'ID du pool d'identité (qui est assez courant à trouver), et un attaquant avec ces informations pourrait essayer d'accéder à ce rôle IAM et l'exploiter. De plus, des rôles IAM pourraient également être attribués à des utilisateurs authentifiés qui accèdent au pool d'identité. Si un attaquant peut enregistrer un utilisateur ou a déjà accès au fournisseur d'identité utilisé dans le pool d'identité, vous pourriez accéder au rôle IAM attribué aux utilisateurs authentifiés et en abuser.

Consultez comment faire cela ici.

ID de pool d'utilisateurs

Par défaut, Cognito permet de enregistrer un nouvel utilisateur. Pouvoir enregistrer un utilisateur pourrait vous donner accès à l'application sous-jacente ou au rôle d'accès IAM authentifié d'un pool d'identité qui accepte en tant que fournisseur d'identité le pool d'utilisateurs Cognito. Consultez comment faire cela ici.

Soutenez HackTricks

Last updated