AWS - Cognito Unauthenticated Enum
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Cognito non authentifié
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 :
ID de Pool d'Identité
Les Pools d'Identité peuvent accorder des rôles IAM aux utilisateurs non authentifiés qui connaissent l'ID de Pool d'Identité (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 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 abuser de ses privilèges.
Vérifiez comment faire cela ici.
ID de Pool d'Utilisateurs
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 Pool d'Identité qui accepte comme fournisseur d'identité le Pool d'Utilisateurs Cognito. Vérifiez comment faire cela ici.
Modules Pacu pour le pentesting et l'énumération
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 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'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, voir la partie 2 du blog. Pour des instructions d'installation, voir la page principale Pacu.
Utilisation
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
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.