AWS - Cognito Unauthenticated Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)!

Autres façons de soutenir 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 :

pageAWS - Cognito Enum

Modules Pacu pour les tests de pénétration 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 personnalisables 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, clients de pool d'utilisateurs, pools d'identités, 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é, il pourrait 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.

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour