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 è un servizio AWS che consente agli sviluppatori di concedere ai loro utenti dell'app accesso ai servizi AWS. Gli sviluppatori concederanno ruoli IAM agli utenti autenticati nella loro app (potenzialmente le persone potranno semplicemente registrarsi) e possono anche concedere un ruolo IAM agli utenti non autenticati.
Per informazioni di base su Cognito controlla:
Gli Identity Pool possono concedere ruoli IAM agli utenti non autenticati che conoscono semplicemente l'ID dell'Identity Pool (che è abbastanza comune trovare), e un attaccante con queste informazioni potrebbe provare ad accedere a quel ruolo IAM e sfruttarlo. Inoltre, i ruoli IAM potrebbero anche essere assegnati a utenti autenticati che accedono all'Identity Pool. Se un attaccante può registrare un utente o ha già accesso al provider di identità utilizzato nell'identity pool, potrebbe accedere al ruolo IAM assegnato agli utenti autenticati e abusare dei suoi privilegi.
Per impostazione predefinita, Cognito consente di registrare nuovi utenti. Essere in grado di registrare un utente potrebbe darti accesso all'applicazione sottostante o al ruolo di accesso IAM autenticato di un Identity Pool che accetta come provider di identità il Cognito User Pool. Controlla come fare qui.
Pacu, il framework di sfruttamento AWS, ora include i moduli "cognito__enum" e "cognito__attack" che automatizzano l'enumerazione di tutte le risorse Cognito in un account e segnalano configurazioni deboli, attributi utente utilizzati per il controllo degli accessi, ecc., e automatizzano anche la creazione di utenti (incluso il supporto MFA) e l'escalation dei privilegi basata su attributi personalizzati modificabili, credenziali di pool di identità utilizzabili, ruoli assumibili nei token di identità, ecc.
Per una descrizione delle funzioni dei moduli, vedere la parte 2 del post del blog. Per le istruzioni di installazione, vedere la pagina principale di Pacu.
Esempio di utilizzo di cognito__attack
per tentare la creazione di un utente e tutti i vettori di privesc contro un dato identity pool e client di user pool:
Esempio di utilizzo di cognito__enum per raccogliere tutti i pool utenti, i client dei pool utenti, i pool di identità, gli utenti, ecc. visibili nell'attuale account AWS:
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)