GWS - Google Platforms Phishing

ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)

HackTricksをサポートする他の方法:

一般的なフィッシング手法

Google Groups フィッシング

見たところ、ワークスペースメンバーはグループを作成 してそこに人を招待できます。その後、ユーザーに送信されるメールを変更して、いくつかのリンクを追加できます。メールはGoogleアドレスから送信されるため、正規に見え、人々はリンクをクリックするかもしれません。

また、FROMアドレスをGoogleグループのメールアドレスとして設定して、グループのメンバー全員にメールを送信することも可能です。次の画像のように、グループ**google--support@googlegroups.com**が作成され、グループのメンバー全員にメールが送信されました(同意なしに追加されたメンバー)。

Google Chat フィッシング

メールアドレスを持っている人とチャットを開始するか、トークの招待を送信できるかもしれません。さらに、任意の名前(例:「Googleサポート」)のスペースを作成し、メンバーを招待することも可能です。彼らが承諾すれば、Googleサポートと話していると思うかもしれません。

ただし、私のテストでは招待されたメンバーは招待状を受け取っていませんでした。

これが過去にどのように機能したかを確認できます:https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s

Google Doc フィッシング

過去には、見かけ上正当なドキュメントを作成し、コメントで**@user@gmail.comのようなメールを言及**することが可能でした。Googleはそのメールアドレスにメールを送信して、そのドキュメントで言及されたことを通知しました。 現在はこれは機能しませんが、被害者にドキュメントへのアクセス権を与えると、Googleはそのことを通知するメールを送信します。これは、誰かを言及するときに表示されるメッセージです:

被害者は、外部ドキュメントが共有されたことを示すメールが届かないようにする保護メカニズムを持っているかもしれません。

Google Calendar フィッシング

攻撃対象の企業のメールアドレスをいくつか追加してカレンダーイベントを作成できます。このカレンダーイベントを現在時刻から5分または15分後にスケジュールします。イベントを正規に見せ、コメントとタイトルを追加して、何かを読む必要があることを示しますフィッシングリンクを含む)。

これは、ブラウザに表示される「人員削減」という会議タイトルのアラートです。よりフィッシングらしいタイトルを設定できます(さらに、メールに関連付けられた名前を変更することもできます)。

疑わしいと思われないようにするために:

  • 受信者が招待された他の人を見ることができないように設定

  • イベントに関する通知メールを送信しない。そのため、人々は5分後の会議についての警告と、そのリンクを読む必要があることだけを見ることになります。

  • APIを使用して、人々がイベントを受け入れたことをTrueに設定し、彼らの代わりにコメントを作成することさえできるようです。

App Scripts リダイレクトフィッシング

https://script.google.com/でスクリプトを作成し、誰でもアクセスできるWebアプリケーションとして公開し、**script.google.com**の正規ドメインを使用することが可能です。 次のようなコードを使用すると、攻撃者はこのページで任意のコンテンツを読み込み続けるスクリプトを作成できます:

function doGet() {
return HtmlService.createHtmlOutput('<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.xyz/pentesting-cloud/workspace-security/gws-google-platforms-phishing#app-scripts-redirect-phishing">')
.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}

たとえば、https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec にアクセスすると、次のように表示されます:

コンテンツがiframe内で読み込まれるため、警告が表示されることに注意してください。

App Scripts OAuth フィッシング

被害者のOAuthトークンにアクセスしようとするために、ドキュメントにアタッチされたApp Scriptsを作成することが可能です。詳細については、次を確認してください:

OAuth Apps フィッシング

前述のいずれかのテクニックを使用して、ユーザーにGoogle OAuthアプリケーションにアクセスさせることができます。ユーザーがソース信頼する場合、そのアプリケーションを信頼するかもしれません(たとえ高い権限が求められていても)。

Googleは、アプリケーションが信頼されていないことを警告する醜いプロンプトを表示し、ワークスペース管理者はOAuthアプリケーションを受け入れることを防ぐことさえできます。

Googleは、ユーザーを代表して複数のGoogleサービス(Gmail、Drive、GCPなど)とやり取りできるアプリケーションを作成することを許可しています。 他のユーザーを代表して動作するアプリケーションを作成する場合、開発者はGCP内でOAuthアプリを作成し、ユーザーデータにアクセスするために必要なスコープ(権限)を指定する必要があります。 ユーザーがそのアプリケーション使用したい場合、スコープで指定されたデータにアクセスする権限を受け入れるように求められます

これは、非技術者をフィッシングして、重要な情報にアクセスするアプリケーションを使用させる非常に魅力的な方法です。ただし、組織アカウントでは、これを防ぐ方法があります。

未検証アプリプロンプト

前述のように、Googleは常にユーザーにアプリケーションに与える権限を受け入れるように求めるプロンプトを表示します。ただし、アプリケーションが危険と見なされる場合、Googleは最初にそのアプリケーションが危険であることを示すプロンプトを表示し、ユーザーにアプリに権限を与えることをより困難にします。

このプロンプトは、次のようなアプリで表示されます:

  • プライベートデータにアクセスできるスコープを使用するアプリ(Gmail、Drive、GCP、BigQueryなど)

  • 100人未満のユーザーを持つアプリ(100人以上の場合、未検証プロンプトを表示しないようにするためにレビュープロセスも必要)

興味深いスコープ

こちら で、すべてのGoogle OAuthスコープのリストを見つけることができます。

  • cloud-platform: Google Cloud Platformサービス全体でデータを表示および管理します。GCPでユーザーを偽装できます。

  • admin.directory.user.readonly: 組織のGSuiteディレクトリを表示およびダウンロードします。すべてのユーザーの名前、電話番号、カレンダーURLを取得します。

OAuthアプリを作成する

OAuthクライアントIDを作成を開始します

  1. https://console.cloud.google.com/apis/credentials/oauthclient に移動し、同意画面を構成するをクリックします。

  2. 次に、ユーザータイプ内部(組織内の人のみ)か外部かを尋ねられます。必要に応じて選択します

  • 内部は、組織のユーザーをすでに侵害しており、別のユーザーをフィッシングするためにこのアプリを作成している場合に興味があります。

  1. アプリに名前サポートメール(Googleグループのメールを設定して、より匿名性を高めることもできます)、ロゴ承認されたドメイン更新用の別のメールを指定します。

  2. OAuthスコープ選択します。

  • このページは、非機密権限、機密権限、制限された権限に分かれています。新しい権限を追加するたびに、そのカテゴリに追加されます。要求された権限に応じて、異なるプロンプトがユーザーに表示され、これらの権限がどれだけ機密性が高いかを示します。

  • admin.directory.user.readonlycloud-platform は機密権限です。

  1. テストユーザーを追加します。 アプリのステータスがテスト中である限り、これらのユーザーだけがアプリにアクセスできるようになりますので、フィッシングするメールアドレスを追加することを忘れないでください。

次に、以前に作成したOAuthクライアントIDを使用して、Webアプリケーションの資格情報を取得しましょう:

  1. https://console.cloud.google.com/apis/credentials/oauthclient に戻り、今回は異なるオプションが表示されます。

  2. Webアプリケーションの資格情報を作成するように選択します

  3. 必要なJavascript originsリダイレクトURIを設定します

  • テスト用に http://localhost:8000/callback のようなものを両方に設定できます

  1. アプリケーションの資格情報を取得します

最後に、OAuthアプリケーションの資格情報を使用するWebアプリケーションを実行しましょう。https://github.com/carlospolop/gcp_oauth_phishing_example に例があります。

git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
cd gcp_oauth_phishing_example
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"

http://localhost:8000 に移動し、Google ログインボタンをクリックすると、次のようなメッセージが表示されます:

アプリケーションは簡単に使用できる アクセスとリフレッシュトークン を表示します。これらのトークンの使用方法について詳細は次を参照してください:

glcoud を使用する

Web コンソールの代わりに gcloud を使用して何かを行うことが可能です。詳細は次を確認してください:

参考文献

ゼロからヒーローまでのAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert)!

HackTricks をサポートする他の方法:

最終更新