AWS - Cognito Unauthenticated Enum

AWSハッキングの学習と練習:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングの学習と練習: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksのサポート

Unauthenticated Cognito

Cognitoは、開発者がアプリユーザーにAWSサービスへのアクセス権を付与できるようにするAWSサービスです。開発者は、アプリ内の認証済みユーザーにIAMロールを付与し(おそらく人々は単にサインアップすることができるかもしれません)、未認証ユーザーにIAMロールを付与することもできます。

Cognitoの基本情報については、以下をチェックしてください:

AWS - Cognito Enum

ペンテストと列挙のためのPacuモジュール

AWSのExploitationフレームワークであるPacuには、現在、アカウント内のすべてのCognitoアセットの列挙を自動化し、弱い構成、アクセス制御に使用されるユーザー属性などをフラグ付けし、ユーザーの作成(MFAサポートを含む)や、変更可能なカスタム属性に基づく特権昇格、使用可能なアイデンティティプール資格情報、IDトークン内の仮定可能なロールなどを自動化する"cognito__enum"および"cognito__attack"モジュールが含まれています。

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

使用方法

指定されたアイデンティティプールとユーザープールクライアントに対してユーザーの作成とすべての特権昇格ベクトルを試行するための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

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

Pacu (new:test) > run cognito__enum

Identity Pool ID

Identity Poolsは、未認証ユーザーにIAMロールを付与することができますが、これは単にIdentity Pool IDを知っているだけで(かなり見つけやすい)、この情報を持つ攻撃者はそのIAMロールにアクセスを試み、悪用することができます。 さらに、IAMロールは、Identity Poolにアクセスする認証済みユーザーにも割り当てることができます。攻撃者がユーザーを登録することができるか、またはIdentity Poolで使用されているIDプロバイダーにアクセスできる場合、認証済みユーザーに与えられているIAMロールにアクセスし、その権限を悪用することができます。

ここでその方法を確認.

User Pool ID

デフォルトでは、Cognitoは新しいユーザーを登録することを許可します。ユーザーを登録できるようになると、基盤となるアプリケーションや、CognitoユーザープールをIDプロバイダーとして受け入れているIdentity Poolの認証済みIAMアクセスロールにアクセスできるかもしれません。ここでその方法を確認.

Last updated