# AWS - Cognito Persistence

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

## Cognito

Pour plus d'informations, accédez à :

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

### Persistance des utilisateurs

Cognito est un service qui permet d'attribuer des rôles aux utilisateurs non authentifiés et authentifiés et de contrôler un annuaire d'utilisateurs. Plusieurs configurations différentes peuvent être modifiées pour maintenir une certaine persistance, comme :

- **Ajouter un User Pool** contrôlé par l'utilisateur à un Identity Pool
- Donner un **rôle IAM à un Identity Pool non authentifié et permettre le flux d'authentification de base**
- Ou à un **Identity Pool authentifié** si l'attaquant peut se connecter
- Ou **améliorer les permissions** des rôles donnés
- **Créer, vérifier & privesc** via des utilisateurs contrôlés par des attributs ou de nouveaux utilisateurs dans un **User Pool**
- **Permettre aux fournisseurs d'identité externes** de se connecter dans un User Pool ou dans un Identity Pool

Vérifiez comment effectuer ces actions dans

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

### `cognito-idp:SetRiskConfiguration`

Un attaquant avec ce privilège pourrait modifier la configuration des risques pour pouvoir se connecter en tant qu'utilisateur Cognito **sans que des alarmes ne soient déclenchées**. [**Consultez le cli**](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/set-risk-configuration.html) pour vérifier toutes les options :
```bash
aws cognito-idp set-risk-configuration --user-pool-id <pool-id> --compromised-credentials-risk-configuration EventFilter=SIGN_UP,Actions={EventAction=NO_ACTION}
```
Par défaut, cela est désactivé :

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

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