# AWS - Cognito Persistence

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

## Cognito

For more information, access:

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

### ユーザー永続化

Cognito は、unauthenticated および authenticated users に roles を付与し、ユーザーのディレクトリを管理するサービスです。永続性を維持するために変更できる設定はいくつかあり、例えば:

- **Adding a User Pool** をユーザーが制御する形で Identity Pool に追加する
- unauthenticated Identity Pool に **IAM role を付与し、Basic auth flow を許可する**
- あるいは攻撃者がログイン可能な場合は **authenticated Identity Pool** に対して同様の操作を行う
- または与えられたロールの **permissions を向上** させる
- **Create, verify & privesc** を、属性を制御する既存ユーザーや **User Pool** の新規ユーザー経由で行う
- **Allowing external Identity Providers** からのログインを User Pool または Identity Pool に対して許可する

これらの操作のやり方は以下を参照してください

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

### `cognito-idp:SetRiskConfiguration`

この権限を持つ攻撃者は、リスク設定を変更して Cognito ユーザーとしてログインできるようにし、**アラームが発生しないように**することが可能です。 [**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}
```
デフォルトではこれは無効になっています:

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

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