# AWS - Cognito Persistenza

{{#include ../../../../banners/hacktricks-training.md}}

## Cognito

Per maggiori informazioni, accedi a:

{{#ref}}
../../aws-services/aws-cognito-enum/
{{#endref}}

### Persistenza utente

Cognito è un servizio che permette di assegnare ruoli ad utenti non autenticati e autenticati e di controllare una directory di utenti. Diversi tipi di configurazioni possono essere modificati per mantenere una persistenza, come:

- **Adding a User Pool** controllato dall'utente in un Identity Pool
- Assegnare un **IAM role to an unauthenticated Identity Pool and allow Basic auth flow**
- O a un **authenticated Identity Pool** se l'attacker può login
- Oppure **improve the permissions** dei ruoli assegnati
- **Create, verify & privesc** tramite attributi di utenti controllati o nuovi utenti in un **User Pool**
- **Allowing external Identity Providers** per permettere il login in un User Pool o in un Identity Pool

Vedi come eseguire queste azioni in

{{#ref}}
../../aws-privilege-escalation/aws-cognito-privesc/README.md
{{#endref}}

### `cognito-idp:SetRiskConfiguration`

Un attacker con questo privilegio potrebbe modificare la risk configuration per poter effettuare il login come utente Cognito senza far scattare gli allarmi. [**Check out the cli**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/set-risk-configuration.html) to check all the options:
```bash
aws cognito-idp set-risk-configuration --user-pool-id <pool-id> --compromised-credentials-risk-configuration EventFilter=SIGN_UP,Actions={EventAction=NO_ACTION}
```
Per impostazione predefinita, questo è disabilitato:

<figure><img src="https://lh6.googleusercontent.com/EOiM0EVuEgZDfW3rOJHLQjd09-KmvraCMssjZYpY9sVha6NcxwUjStrLbZxAT3D3j9y08kd5oobvW8a2fLUVROyhkHaB1OPhd7X6gJW3AEQtlZM62q41uYJjTY1EJ0iQg6Orr1O7yZ798EpIJ87og4Tbzw=s2048" alt=""><figcaption></figcaption></figure>

{{#include ../../../../banners/hacktricks-training.md}}
