AWS - Identity Center & SSO 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)
Inizialmente proposto in questo post del blog, è possibile inviare un link a un utente che utilizza AWS SSO che, se l'utente accetta, l'attaccante sarà in grado di ottenere un token per impersonare l'utente e accedere a tutti i ruoli a cui l'utente può accedere nel Identity Center.
Per eseguire questo attacco, i requisiti sono:
La vittima deve utilizzare Identity Center
L'attaccante deve conoscere il sottodominio utilizzato dalla vittima <victimsub>.awsapps.com/start
Solo con le informazioni precedenti, l'attaccante sarà in grado di inviare un link all'utente che, se accettato, concederà all'attaccante l'accesso all'account utente AWS.
Trovare il sottodominio
Il primo passo dell'attaccante è scoprire il sottodominio che l'azienda vittima sta utilizzando nel loro Identity Center. Questo può essere fatto tramite OSINT o indovinando + BF, poiché la maggior parte delle aziende utilizzerà il proprio nome o una variazione del proprio nome qui.
Con queste informazioni, è possibile ottenere la regione in cui è stato configurato l'Identity Center:
Genera il link per la vittima e invialo
Esegui il seguente codice per generare un link di accesso AWS SSO in modo che la vittima possa autenticarsi. Per la demo, esegui questo codice in una console python e non uscire, poiché in seguito avrai bisogno di alcuni oggetti per ottenere il token:
Invia il link generato alla vittima utilizzando le tue fantastiche abilità di ingegneria sociale!
Aspetta che la vittima lo accetti
Se la vittima era già loggata in AWS dovrà solo accettare di concedere i permessi, se non lo era, dovrà effettuare il login e poi accettare di concedere i permessi. Questo è come appare il prompt al giorno d'oggi:
Ottieni il token di accesso SSO
Se la vittima ha accettato il prompt, esegui questo codice per generare un token SSO impersonando l'utente:
Il token di accesso SSO è valido per 8h.
Impersonare l'utente
È divertente sapere che il precedente attacco funziona anche se viene utilizzato un "MFA unphishable" (webAuth). Questo perché il workflow precedente non esce mai dal dominio OAuth utilizzato. A differenza di altri attacchi di phishing in cui l'utente deve sostituire il dominio di accesso, nel caso il workflow del codice dispositivo è preparato in modo che un codice sia conosciuto da un dispositivo e l'utente può accedere anche su una macchina diversa. Se accetta il prompt, il dispositivo, semplicemente conoscendo il codice iniziale, sarà in grado di recuperare le credenziali per l'utente.
Per ulteriori informazioni su questo controlla questo post.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)