AWS - Cognito Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cognito est un service AWS qui permet aux développeurs de donner à leurs utilisateurs d'application accès aux services AWS. Les développeurs attribueront des rôles IAM aux utilisateurs authentifiés dans leur application (potentiellement, les gens pourront simplement s'inscrire) et ils peuvent également attribuer un rôle IAM aux utilisateurs non authentifiés.
Pour des informations de base sur Cognito, consultez :
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.
Par défaut, Cognito permet de s'inscrire en tant que nouvel utilisateur. Ê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, 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 de Pacu.
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 :
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 :
Apprenez et pratiquez le hacking AWS :HackTricks Formation Expert Red Team AWS (ARTE) Apprenez et pratiquez le hacking GCP : HackTricks Formation Expert Red Team GCP (GRTE)