OAuthSeeker は、Microsoft Azure および Office365 内のユーザー ID を侵害するために、悪意のある OAuth アプリケーションを用いたフィッシング攻撃を実行するレッドチーム向けのツールです。
機能
OAuthSeeker は、以下の主要な機能を提供します。
- Azure アプリ OAuth フィッシング: Microsoft Azure および Office365 ユーザーを標的とした OAuth フィッシング攻撃を実行し、Microsoft Graph API および Microsoft Azure リソースへのアクセスを取得します。
- 管理用コントロールパネル: デフォルトでローカルホストインターフェースからアクセス可能な管理用コントロールパネルを提供し、標準で認証機能を備えています。
- トークンリフレッシャー: 取得した認証情報に紐づくリフレッシュトークンを有効な状態に保つため、自動でトークンの更新処理を行います。
- カスタムスキン: フィッシング攻撃で使用するさまざまなカバーアイデンティティに合わせて、ユーザー向けフロントエンドコンポーネントの外観を変更できます。
- LetsEncrypt 連携: LetsEncrypt を用いた HTTPS サポートを構成でき、ユーザー提供の証明書や自己署名証明書にも対応します。
- 容易なデプロイ: ほとんどの操作に対して妥当なデフォルト設定を備えた単一の Go バイナリで、すべての組み込み機能を含めて簡単にデプロイできます。
管理インターフェース
OAuthSeeker は、オペレーターが収集した認証情報を閲覧し、アクセストークンを更新し、埋め込み版 GraphRunner を通じて Microsoft Graph API を利用できる管理パネルを提供します。オペレーターは個々の認証情報を調査し、必要に応じてアクセストークンを更新することで、Microsoft Graph リソースへのアクセスを維持できます。組み込みの GraphRunner インターフェースは OneDrive、SharePoint、Teams、Outlook へのナビゲーションを簡素化し、OAuthSeeker のナビゲーションバーにある「GraphRunner」タブからアクセスできます。
侵害されたアクセストークンの活用
OAuthSeeker は、アプリケーションとの OAuth フローが正常に完了すると、JWT とリフレッシュトークンを含む有効な Microsoft Graph API 認証情報を取得します。OAuthSeeker は、リフレッシュトークンが有効期間全体を通してアクティブな状態を維持し、早期に失効しないように、24 時間ごとに自動でトークン更新処理を行います。ただし、OAuthSeeker 自体には、OAuth 同意フィッシングキャンペーンを通じてトークンを取得した後に、それらを直接オペレーションに活用する手段は含まれていません。一方で、これらのトークンをポストエクスプロイトに活用するために利用できる既存ツールがいくつか存在します。
GraphRunner
GraphRunner は Microsoft 365 向けのポストエクスプロイト用ツールキットであり、攻撃者が認証済みの Microsoft Graph API アクセスを活用できるようにします。GraphRunner を使用すると、オペレーターはメール、SharePoint、Teams からデータを検索・エクスポートし、ユーザー権限を列挙し、悪意のあるアプリケーションをデプロイするなどの操作が可能です。これは、侵害されたアカウントから情報を収集し、Microsoft 365 環境内で永続性を維持するための強力な手段です。このツールは Black Hills Information Security によって開発されており、ツールの使い方や一般的な攻撃パスについて解説したウェブキャスト GraphRunner: A Post-Exploitation Toolset for M365 も公開されています。
GraphSpy
GraphSpy は、Microsoft 365 における高度なレッドチーム作戦向けに設計された多目的ツールであり、効率的なトークン管理のためのローカル Web インターフェースを備えています。OneDrive、SharePoint、Outlook へのアクセスを効率化し、デバイスコードフィッシングと並行コードポーリングをサポートします。このツールは Microsoft API とのやり取りを簡素化し、攻撃者がカスタムリクエストを実行し、プロジェクト全体にわたって標的型のデータ抽出や永続化操作を行えるようにします。GraphSpy の作者への YouTube インタビュー GraphSpy – Offensive Security Tool for Microsoft 365 with Keanu Nys では、さらに詳しい知見が得られます。
OAuthAzure
OAuthAzure は、Azure 環境内のリソースに対するポストエクスプロイトおよび列挙を行う際に、OAuthSeeker と併用できるユーティリティです。OAuthSeeker を用いることで、Microsoft Azure 内で user_impersonation 権限を要求するフィッシング攻撃を行うことができ、これにより被害者ユーザーアカウントになりすましてすべての Azure リソースへアクセス可能になります。OAuthSeeker はデフォルトで、JWT の要求トークンオーディエンスとして Microsoft Graph API もしくは Microsoft Azure のいずれか一方のみを指定できるため、Graph API トークンを要求します。デフォルトでは OAuthSeeker 内で Graph API へのアクセスを要求しますが、その後 OAuthAzure を利用して、取得した JWT とリフレッシュトークンを Microsoft Azure トークンに交換し、Azure 上でのインパーソネーション機能へのアクセスを得ることができます。
OAuthPillage
OAuthPillage は、侵害された Microsoft Graph API トークンを活用したポストエクスプロイトを行うために OAuthSeeker フレームワークに含まれているユーティリティです。このユーティリティを使用すると、User.ReadBasic.All 権限を通じてユーザー権限を列挙できる侵害済み Microsoft Graph API トークンを活用し、Microsoft Azure 内で利用可能なユーザーに関するすべての情報をダンプして、被害組織を標的とした追加の二次フィッシング攻撃に利用できます。