AWS - Identity Center & SSO Unauthenticated Enum
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)
AWS Device Code Phishing
Initialement proposé dans cet article de blog, il est possible d'envoyer un lien à un utilisateur utilisant AWS SSO qui, si l'utilisateur accepte, permettra à l'attaquant d'obtenir un jeton pour usurper l'identité de l'utilisateur et accéder à tous les rôles auxquels l'utilisateur peut accéder dans le Identity Center.
Pour réaliser cette attaque, les prérequis sont :
La victime doit utiliser Identity Center
L'attaquant doit connaître le sous-domaine utilisé par la victime
<victimsub>.awsapps.com/start
Avec les informations précédentes, l'attaquant pourra envoyer un lien à l'utilisateur qui, s'il est accepté, accordera à l'attaquant l'accès au compte utilisateur AWS.
Attaque
Trouver le sous-domaine
La première étape de l'attaquant est de découvrir le sous-domaine utilisé par l'entreprise victime dans leur Identity Center. Cela peut être fait via OSINT ou devinette + BF car la plupart des entreprises utiliseront leur nom ou une variation de leur nom ici.
Avec cette information, il est possible d'obtenir la région où l'Identity Center a été configuré avec :
Générer le lien pour la victime et l'envoyer
Exécutez le code suivant pour générer un lien de connexion AWS SSO afin que la victime puisse s'authentifier. Pour la démonstration, exécutez ce code dans une console python et ne la quittez pas car plus tard, vous aurez besoin de certains objets pour obtenir le token :
Envoyez le lien généré à la victime en utilisant vos compétences exceptionnelles en ingénierie sociale !
Attendez que la victime l'accepte
Si la victime est déjà connectée à AWS, elle devra simplement accepter l'octroi des permissions. Si elle ne l'est pas, elle devra se connecter puis accepter l'octroi des permissions. Voici à quoi ressemble le prompt de nos jours :
![](https://cloud.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F2597608130-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F0fTBDNDP65sXMI73beHl%252Fuploads%252Fgit-blob-56486f01a15443b98d9469d60db1ea565ace761a%252Fimage%2520%28343%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=4c5da54b&sv=1)
Obtenez le jeton d'accès SSO
Si la victime a accepté le prompt, exécutez ce code pour générer un jeton SSO en impersonnant l'utilisateur :
Le jeton d'accès SSO est valide pendant 8h.
Usurper l'identité de l'utilisateur
Phishing the unphisable MFA
C'est amusant de savoir que l'attaque précédente fonctionne même si un "MFA non-phisable" (webAuth) est utilisé. Cela est dû au fait que le workflow précédent ne quitte jamais le domaine OAuth utilisé. Contrairement à d'autres attaques de phishing où l'utilisateur doit remplacer le domaine de connexion, dans ce cas, le workflow du code de l'appareil est préparé de sorte qu'un code soit connu par un appareil et que l'utilisateur puisse se connecter même sur une machine différente. Si l'invite est acceptée, l'appareil, simplement en connaissant le code initial, pourra récupérer les identifiants de l'utilisateur.
Pour plus d'informations à ce sujet consultez cet article.
Outils Automatiques
Références
Apprenez & pratiquez le Hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez le Hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Last updated