AWS - Cognito Unauthenticated Enum
Reading time: 4 minutes
tip
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)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Cognito non autenticato
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:
ID del Pool di Identità
I Pool di Identità possono concedere ruoli IAM agli utenti non autenticati che conoscono semplicemente l'ID del Pool di Identità (che è abbastanza comune trovare), e un attaccante con queste informazioni potrebbe cercare di accedere a quel ruolo IAM e sfruttarlo.
Inoltre, i ruoli IAM potrebbero anche essere assegnati a utenti autenticati che accedono al Pool di Identità. Se un attaccante può registrare un utente o ha già accesso al fornitore di identità utilizzato nel pool di identità, potrebbe accedere al ruolo IAM assegnato agli utenti autenticati e abusare dei suoi privilegi.
ID del Pool Utenti
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 Pool di Identità che accetta come fornitore di identità il Pool Utenti di Cognito. Controlla come fare qui.
Moduli Pacu per pentesting e enumerazione
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 del pool di identità utilizzabili, ruoli assunti nei token id, 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.
Utilizzo
Esempio di utilizzo di cognito__attack
per tentare la creazione di utenti e tutti i vettori di privesc contro un dato pool di identità e client del pool utenti:
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
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:
Pacu (new:test) > run cognito__enum
tip
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)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.