AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

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:

AWS - Cognito Enum

Identity Pool ID

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.

Controlla come fare qui.

User Pool ID

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 modules for pentesting and enumeration

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 assunti 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.

Usage

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:

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
Supporta HackTricks

Last updated