mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-28 13:43:24 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-
This commit is contained in:
@@ -35,21 +35,21 @@ print(response)
|
||||
```
|
||||
### Cognito Sync
|
||||
|
||||
Identity Pool セッションを生成するには、まず **Identity ID を生成する必要があります**。この Identity ID は **そのユーザーのセッションの識別子です**。これらの識別子は、最大 20 のデータセットを持ち、最大 1MB のキーと値のペアを保存できます。
|
||||
Identity Pool セッションを生成するには、まず **Identity ID を生成する** 必要があります。この Identity ID は **そのユーザーのセッションの識別** です。これらの識別は最大 20 のデータセットを持ち、最大 1MB のキーと値のペアを保存できます。
|
||||
|
||||
これは **ユーザーの情報を保持するのに便利です**(常に同じ Identity ID を使用するユーザー)。
|
||||
これは **ユーザーの情報を保持するのに便利です** (常に同じ Identity ID を使用するユーザー)。
|
||||
|
||||
さらに、サービス **cognito-sync** は **この情報を管理および同期することを可能にするサービスです**(データセット内で、ストリームや SNS メッセージで情報を送信するなど)。
|
||||
さらに、サービス **cognito-sync** は **この情報を管理および同期する** サービスです(データセット内で、ストリームや SNS メッセージで情報を送信するなど)。
|
||||
|
||||
### Tools for pentesting
|
||||
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) は、AWS のエクスプロイトフレームワークで、現在 "cognito\_\_enum" および "cognito\_\_attack" モジュールが含まれており、アカウント内のすべての Cognito アセットの列挙を自動化し、弱い構成、アクセス制御に使用されるユーザー属性などをフラグ付けし、またユーザー作成(MFA サポートを含む)や、変更可能なカスタム属性に基づく特権昇格、使用可能なアイデンティティプールの資格情報、ID トークン内の引き受け可能なロールなどを自動化します。
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu) は、AWS のエクスプロイトフレームワークで、現在 "cognito\_\_enum" および "cognito\_\_attack" モジュールが含まれており、アカウント内のすべての Cognito アセットの列挙を自動化し、弱い構成、アクセス制御に使用されるユーザー属性などをフラグ付けし、またユーザー作成(MFA サポートを含む)や、変更可能なカスタム属性、使用可能なアイデンティティプールの資格情報、ID トークン内の引き受け可能なロールに基づく特権昇格を自動化します。
|
||||
|
||||
モジュールの機能の説明については、[ブログ記事](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2)のパート 2 を参照してください。インストール手順については、メインの [Pacu](https://github.com/RhinoSecurityLabs/pacu) ページを参照してください。
|
||||
モジュールの機能の説明については、[ブログ記事](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2) のパート 2 を参照してください。インストール手順については、メインの [Pacu](https://github.com/RhinoSecurityLabs/pacu) ページを参照してください。
|
||||
|
||||
#### Usage
|
||||
|
||||
サンプルの cognito\_\_attack 使用法は、特定のアイデンティティプールおよびユーザープールクライアントに対してユーザー作成とすべての特権昇格ベクターを試みるものです:
|
||||
サンプルの cognito\_\_attack 使用法は、特定のアイデンティティプールおよびユーザープールクライアントに対してユーザー作成とすべての特権昇格ベクターを試みるものです:
|
||||
```bash
|
||||
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
|
||||
@@ -78,7 +78,7 @@ For more information check https://github.com/padok-team/cognito-scanner
|
||||
攻撃者がCognitoアプリで認証されていないユーザーとして**AWS資格情報**を取得するために知っておくべき唯一のことは**アイデンティティプールID**であり、この**IDはウェブ/モバイル**アプリケーションにハードコーディングされている必要があります。IDは次のようになります: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b`(ブルートフォース攻撃はできません)。
|
||||
|
||||
> [!TIP]
|
||||
> **IAM Cognitoの認証されていないロールは、デフォルトで** `Cognito_<Identity Pool name>Unauth_Role` と呼ばれます。
|
||||
> **IAM Cognitoの認証されていないロールは、デフォルトで** `Cognito_<Identity Pool name>Unauth_Role` **と呼ばれます**
|
||||
|
||||
ハードコーディングされたアイデンティティプールIDが見つかり、認証されていないユーザーを許可している場合、次の方法でAWS資格情報を取得できます:
|
||||
```python
|
||||
@@ -112,13 +112,13 @@ aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --no-sign
|
||||
```
|
||||
> [!WARNING]
|
||||
> デフォルトでは、認証されていないcognito **ユーザーはポリシーを介して割り当てられていても、いかなる権限も持つことができません**。次のセクションを確認してください。
|
||||
> デフォルトでは、認証されていないcognito **ユーザーは、ポリシーを介して割り当てられていても、いかなる権限も持つことができません**。次のセクションを確認してください。
|
||||
|
||||
### 強化された認証フローと基本認証フロー
|
||||
|
||||
前のセクションでは、**デフォルトの強化された認証フロー**に従いました。このフローは、生成されたIAMロールセッションに**制限的な** [**セッションポリシー**](../../aws-basic-information/index.html#session-policies)を設定します。このポリシーは、セッションが[**このリストのサービスを使用することを許可する**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services)だけです(ロールが他のサービスにアクセスできた場合でも)。
|
||||
|
||||
ただし、これを回避する方法があります。**アイデンティティプールに「基本(クラシック)フロー」が有効になっている場合**、ユーザーはそのフローを使用してセッションを取得でき、**その制限的なセッションポリシーは適用されません**。
|
||||
ただし、これを回避する方法があります。**アイデンティティプールに「基本(クラシック)フロー」が有効になっている場合**、ユーザーはそのフローを使用してセッションを取得でき、**制限的なセッションポリシーを持たない**ことになります。
|
||||
```bash
|
||||
# Get auth ID
|
||||
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
@@ -131,7 +131,7 @@ aws cognito-identity get-open-id-token --identity-id <identity_id> --no-sign
|
||||
aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<role_name>" --role-session-name sessionname --web-identity-token <token> --no-sign
|
||||
```
|
||||
> [!WARNING]
|
||||
> この**エラー**が表示された場合、**基本フローが有効になっていない(デフォルト)**ためです。
|
||||
> この**エラー**が表示される場合、**基本フローが有効になっていない(デフォルト)**ためです。
|
||||
|
||||
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
|
||||
|
||||
@@ -144,7 +144,7 @@ IAM資格情報のセットを持っている場合は、[どのアクセス権
|
||||
|
||||
**認証済みユーザーがIdentity Poolにアクセスするための役割**も利用可能な場合があります。
|
||||
|
||||
そのためには、**アイデンティティプロバイダー**へのアクセスが必要です。もしそれが**Cognitoユーザープール**であれば、デフォルトの動作を悪用して**自分で新しいユーザーを作成**できるかもしれません。
|
||||
これには**アイデンティティプロバイダー**へのアクセスが必要です。もしそれが**Cognitoユーザープール**であれば、デフォルトの動作を悪用して**自分で新しいユーザーを作成**できるかもしれません。
|
||||
|
||||
> [!TIP]
|
||||
> **IAM Cognito認証済みロールはデフォルトで** `Cognito_<Identity Pool name>Auth_Role` と呼ばれます。
|
||||
@@ -184,6 +184,6 @@ aws cognito-identity get-credentials-for-identity \
|
||||
</code></pre>
|
||||
|
||||
> [!WARNING]
|
||||
> **アイデンティティプロバイダー**によってユーザーがログインしている場合や、**ユーザー**(クレームを使用)によって異なるIAMロールを**構成することが可能**です。したがって、同じまたは異なるプロバイダーを通じて異なるユーザーにアクセスできる場合は、**すべてのユーザーのIAMロールにログインしてアクセスする価値があるかもしれません**。
|
||||
> **アイデンティティプロバイダー**によってユーザーがログインしている場合や、単に**ユーザー**(クレームを使用)によって異なるIAMロールを**構成することが可能**です。したがって、同じまたは異なるプロバイダーを通じて異なるユーザーにアクセスできる場合は、**すべてのユーザーのIAMロールにログインしてアクセスする価値があるかもしれません**。
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -28,7 +28,7 @@ gcloud tasks run projects/<project_id>/locations/us-central1/queues/<queue_name>
|
||||
|
||||
### `cloudtasks.queues.setIamPolicy`
|
||||
|
||||
この権限を持つ攻撃者は、特定のキューに対して **自分自身または他の主体に Cloud Tasks ロールを付与** することができ、`roles/cloudtasks.admin` に昇格する可能性があります。これにはタスクを作成および実行する能力が含まれます。
|
||||
この権限を持つ攻撃者は、特定のキューに対して **自分自身または他の主体に Cloud Tasks の役割を付与** することができ、`roles/cloudtasks.admin` に昇格する可能性があります。これにはタスクを作成および実行する能力が含まれます。
|
||||
```bash
|
||||
gcloud tasks queues add-iam-policy-binding \
|
||||
<queue_name> \
|
||||
@@ -36,7 +36,7 @@ gcloud tasks queues add-iam-policy-binding \
|
||||
--member serviceAccount:<account>@<project_id>.iam.gserviceaccount.com \
|
||||
--role roles/cloudtasks.admin
|
||||
```
|
||||
これにより、攻撃者は自分が制御する任意のサービスアカウントに対して、キューの完全なCloud Tasks管理権限を付与することができます。
|
||||
これにより、攻撃者は自分が制御する任意のサービスアカウントに対して、キューの完全なCloud Tasks管理権限を付与できます。
|
||||
|
||||
## 参考文献
|
||||
|
||||
|
||||
Reference in New Issue
Block a user