AWS - Cognito Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cognitoは、開発者がアプリのユーザーにAWSサービスへのアクセスを付与することを可能にするAWSサービスです。開発者は、アプリ内の認証されたユーザーにIAMロールを付与し(潜在的に人々は単にサインアップできる)、認証されていないユーザーにもIAMロールを付与することができます。
Cognitoに関する基本情報は以下を確認してください:
アイデンティティプールは、アイデンティティプールIDを知っているだけの認証されていないユーザーにIAMロールを付与できます(これは比較的一般的に見つけることができます)。この情報を持つ攻撃者は、そのIAMロールにアクセスし、悪用しようとする可能性があります。 さらに、IAMロールはアイデンティティプールにアクセスする認証されたユーザーにも割り当てられる可能性があります。攻撃者がユーザーを登録できるか、アイデンティティプールで使用されるアイデンティティプロバイダーに既にアクセスしている場合、認証されたユーザーに付与されるIAMロールにアクセスし、その特権を悪用することができます。
デフォルトでは、Cognitoは新しいユーザーを登録することを許可します。ユーザーを登録できることは、基盤となるアプリケーションや、Cognitoユーザープールをアイデンティティプロバイダーとして受け入れているアイデンティティプールの認証されたIAMアクセスロールへのアクセスを提供する可能性があります。ここでその方法を確認してください。
Pacu、AWSの悪用フレームワークは、アカウント内のすべてのCognito資産の列挙を自動化し、弱い構成、アクセス制御に使用されるユーザー属性などをフラグ付けする「cognito__enum」と「cognito__attack」モジュールを含むようになりました。また、ユーザー作成(MFAサポートを含む)や、変更可能なカスタム属性、使用可能なアイデンティティプールの資格情報、IDトークン内の引き受け可能なロールに基づく特権昇格も自動化します。
モジュールの機能の説明については、ブログ記事のパート2を参照してください。インストール手順については、メインのPacuページを参照してください。
サンプルcognito__attack
を使用して、特定のアイデンティティプールとユーザープールクライアントに対してユーザー作成とすべての特権昇格ベクターを試みます:
サンプル cognito__enum の使用法:現在の AWS アカウントで表示されるすべてのユーザープール、ユーザープールクライアント、アイデンティティプール、ユーザーなどを収集します。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)