AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognitoは、開発者がアプリのユーザーにAWSサービスへのアクセスを付与することを可能にするAWSサービスです。開発者は、アプリ内の認証されたユーザーIAMロールを付与し(潜在的に誰でもサインアップできる可能性があります)、認証されていないユーザーにもIAMロールを付与することができます。

Cognitoに関する基本情報は以下を確認してください:

Identity Pool ID

Identity Poolは、Identity Pool ID知っているだけの認証されていないユーザーIAMロールを付与することができ(これは比較的一般的に見つけることができます)、この情報を持つ攻撃者はそのIAMロールにアクセスし、悪用しようとする可能性があります。 さらに、IAMロールは、Identity Poolにアクセスする認証されたユーザーにも割り当てられる可能性があります。攻撃者がユーザーを登録できるか、すでにIdentity Poolで使用されているアイデンティティプロバイダーアクセスしている場合、認証されたユーザーに付与されるIAMロールにアクセスし、その特権を悪用することができます。

ここでその方法を確認してください

User Pool ID

デフォルトでは、Cognitoは新しいユーザーを登録することを許可します。ユーザーを登録できることは、基盤となるアプリケーションや、Cognito User Poolをアイデンティティプロバイダーとして受け入れているIdentity Poolの認証されたIAMアクセスロールへのアクセスを提供する可能性があります。ここでその方法を確認してください

Pacu modules for pentesting and enumeration

Pacu、AWSの悪用フレームワークは、アカウント内のすべてのCognito資産の列挙を自動化し、弱い構成、アクセス制御に使用されるユーザー属性などをフラグ付けする「cognito__enum」と「cognito__attack」モジュールを含むようになりました。また、ユーザー作成(MFAサポートを含む)や、変更可能なカスタム属性、使用可能なアイデンティティプールの資格情報、IDトークン内の引き受け可能なロールに基づく特権昇格も自動化します。

モジュールの機能の説明については、ブログ記事のパート2を参照してください。インストール手順については、メインのPacuページを参照してください。

Usage

サンプルcognito__attackを使用して、特定のアイデンティティプールとユーザープールクライアントに対してユーザー作成とすべての特権昇格ベクターを試みます:

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

サンプル cognito__enum の使用法:現在の AWS アカウントで表示されるすべてのユーザープール、ユーザープールクライアント、アイデンティティプール、ユーザーなどを収集します:

Pacu (new:test) > run cognito__enum
HackTricksをサポートする

Last updated