ペンリジェント・ヘッダー

メタデータのパノプティコン:Ghunt V2、Google APIリバースエンジニアリング、エージェント型OSINTの決定版ガイド

現代の敵対的状況において、「プライバシー」は作戦上の失敗であり、「匿名性」は一時的な無相関状態に過ぎない。エリートレッドチーマーやAIセキュリティエンジニアにとって、オープンソースインテリジェンス(OSINT)の目標は、隠されている情報を見つけることではなく、公開されている情報を武器化することである。

ガント は、単純なPythonスクリプトとしての起源を超え、グーグルのエコシステムを調査するための業界標準のフレームワークとなった。バグを悪用するのではなく、コネクテッド・サービスの基本的なアーキテクチャを悪用しているのだ。ユーザーのデバイスとグーグルのサーバー間のAPIコールを分解することで、具体的には プレーサービス, 地図そして ピープルAPI-Ghuntは不毛な電子メールアドレスをダイナミックな "Pattern of Life "グラフに変える。

この包括的な技術文書では、Ghunt V2の内部メカニズムを分解し、プロダクショングレードのPython自動化戦略を提供し、以下のような影響力の大きい脆弱性の悪用における役割を分析する。 CVE-2026-21858 そして CVE-2025-68613そして、その方法を実証する。 ペンリジェント はこのキルチェーン全体をAgentic AIによって自動化している。

ペンリジェント経由ガント

第一部:抽出のメカニズム(アンダー・ザ・フッド)

Ghuntの効果的な使い方を理解するためには、Ghuntがワイヤー上で何をしているのかを理解する必要がある。Ghuntの核心は、正規のGoogleアプリケーションをエミュレートする認証APIクライアントである。

1.クレデンシャル・コンテキストセッションの解剖

Ghuntは匿名では機能しません。Googleの "Consent Bump "とスクレイピング防止ヒューリスティックを回避するために、有効なセッション状態を必要とします。マジック」は、主に特定のクッキーにあります:

  • セキュア-1PSID & セキュア3PSID:永続的なGoogleセッションの主要な識別子です。Personal Search "コンテキストへのアクセスを許可します。
  • oauth_token:OAuth の完全な同意画面をトリガーすることなく、Google People API への呼び出しを承認するためによく使われます。

を実行すると ログインこの暗号状態をブラウザのコンテキストから Python の httpx セッションを管理します。このツールは X-Goog-AuthUser ヘッダーを使用してアカウントを切り替え、ユーザーがChromeで個人用と企業用のプロフィールを切り替える動作を真似ている。

2.マトリックスの解読プロトコル・バッファ(Protobuf)

クリーンな JSON を返す標準的な REST API とは異なり、多くの Google 内部エンドポイント (特にマップと Play ストア) は、シリアライズされたデータを返します。 プロトコル・バッファ(Protobuf).

  • 挑戦:Protobufはバイナリーフォーマットです。バイナリ形式は プロト グーグルが非公開にしている)定義ファイルでは、データは読み取り不可能なバイトのストリームである。
  • ガント・ソリューション:Ghuntの開発者は、ワイヤーフォーマットをリバースエンジニアリングした。このツールには、これらのバイナリストリームを再帰的にデシリアライズするカスタムパーサーが含まれています。
    • GhuntはユーザーのMaps投稿をクエリするとき、Protobuf blobを受け取る。Ghuntはヘッダを取り除き、フィールドタグ(例えば、フィールド 1 はレビューID、フィールド 2 はタイムスタンプ)、そして読み取り可能なオブジェクトを再構築する。この生の内部バイナリー・トラフィックを解析する能力が、Ghuntと基本的なHTMLスクレイパーとの違いである。
ペンリジェント経由ガント

パートII:モジュラー攻撃面

Ghunt V2はモジュラーアーキテクチャで動作する。各モジュールはGoogleインフラ内の特定のデータサイロを対象としている。

モジュール A:メール・ピボッティング・エンジンメールハント)

これが最も一般的なエントリーポイントだ。あなたは [email protected]そして、内部エンドポイント https://clients6.google.com/rpc.

  • GAIA ID解像度:モジュールは電子メールを GAIA ID (GoogleアカウントとIDの管理)。この21桁の整数は、ユーザーIDの不変の核となります。ユーザーがメールアドレスや表示名を変更しても、GAIA IDは不変です。
  • サービス一覧:写真、マップ、カレンダーに公開プロフィールがあるかどうかをチェックします。
  • クラウドIAMの漏洩:重要なのは、ユーザーがGoogle Cloud Platform (GCP)でアクティブな足跡を残しているかどうかを識別できることです。Red Teamerにとって、ターゲットが「GCP管理者」であることが分かれば、そのユーザーをターゲットにしたフィッシング・キャンペーンの優先順位が即座に決まります。 グクラウド クレデンシャル。

モジュールB:ジオロケーション・トリレーション(ハントマップ)

このモジュールは、ターゲットによって投稿された「レビュー」と「写真」を集約します。

  • タイムスタンプ分析:レビューのタイムスタンプとレビューされた企業の地理座標を関連付けることで、Ghuntはベロシティ・マップを構築する。
    • シナリオ ターゲットはサンフランシスコのコーヒーショップを9:00に、パロアルトのレストランを12:00にレビューする。これにより、彼らの物理的な場所と移動能力が確認される。
  • 信頼度採点:Ghunt V2は、レビュー密度をクラスタリングすることにより、ユーザーの「ホームベース」の信頼度スコアを計算します。

モジュール C:デバイスの遠隔測定と Play API (ガント・プレー)

おそらく、ハードウェアを悪用するための最も危険なモジュールだ。Ghunt は、Google Play ライブラリに問い合わせることで、アカウントにリンクされているデバイスをリストアップする。

  • 抽出されたデータ:メーカー(Samsung、Pixel、Xiaomi)、モデル番号(SM-S918B)、および「Last Seen」タイムスタンプ。
  • 兵器化:これは単なる雑学ではない。ハードウェア固有のリモート・コード実行(RCE)の前提条件なのだ。

パート III: 高度なエンジニアリング - ハントの自動化

手作業でのCLI使用は、企業規模の偵察には不十分である。以下は、大規模なパイプラインに統合するのに適した、非同期クラス構造でGhuntをラップした、堅牢で生産可能なPython実装です。

について ガントオートメーター クラス

パイソン

`import asyncio import json import logging from typing import Dict, Optional from ghunt.api import GHuntAPI from ghunt.objects import Target from ghunt.utils import get_httpx_client

パイプラインの構造化ロギングを設定する

logging.basicConfig()レベル=logging.INFOフォーマット='%(asctime)s - %(levelname)s-%(message)s')。

クラス GhuntAutomator: def 開始(self): self.client = get_httpx_client() self.api = GHuntAPI(self.client) self.is_authenticated = False

async def authenticate(self) -> bool:
    """
    保存された認証情報を使ってセッションを初期化します。
    クッキーはすでにデフォルトのパスにシリアライズされていると仮定します。
    """
    try:
        self.is_authenticated = await self.api.login()
        if self.is_authenticated:
            logging.info("[+] Google内部APIへの認証に成功しました。")
            真を返す
        else:
            logging.error("[-] 認証に失敗しました。 クッキーの有効性を確認してください。")
            return False
    except Exception as e:
        logging.critical(f"[-] 致命的な認証エラー: {e}")
        return False

async def scan_target(self, email: str) -> Optional[Dict]:
    if not self.is_authenticated:
        logging.warning("[-] スキャンできません: 認証されていません。")
        リターン None

    logging.info(f"[*] ディープスキャンを開始します: {email}")
    
    try:
        target = Target(self.api, email)
        found = await target.hunt()
        
        見つからなかった場合
            logging.info(f"[-] Target {email} not found or hidden.")
            リターン None

        # 1.ベースインテリジェンス
        intel_package = {
            "gaia_id": target.person.gaia_id、
            "name": target.person.name、
            "profile_pic": target.person.profile_pic、
            "last_active": target.person.last_active_service、
            "devices":[],
            「ロケーション": []:[]
        }

        # 2.デバイスのテレメトリを抽出する(CVEマッピングには重要)
        if target.person.devices:
            for device in target.person.devices:
                intel_package["devices"].append({
                    "model": device.model、
                    "last_seen": str(device.last_seen)
                })
        
        # 3.地図から位置情報を抽出する
        if target.person.maps_contribs:
            for review in target.person.maps_contribs[:5]:# 最近のレビュー上位5件
                intel_package["ロケーション"].append({以下
                    "venue": review.venue_name、
                    "rating": review.rating、
                    "timestamp": str(review.date)
                })

        return intel_package

    except Exception as e:
        logging.error(f"[-] スキャンロジック中のエラー:{e}")
        リターン None

非同期 def cleanup(self):
    await self.client.aclose()


ペンリジェント経由ガント

実行ハーネス

async def main(): automator = GhuntAutomator() if await automator.authenticate(): result = await automator.scan_target(")[email protected]") if result: print(json.dumps(result, indent=4)) await automator.cleanup()

もし 名称 == “メイン": asyncio.run(main())`

このコードは パイプライン対応.エラー処理、構造化されたJSON出力、モジュール設計が含まれている。コンテナ化し、大規模な分散システム内のメッセージキュー(KafkaやRabbitMQなど)でトリガーすることができる。

パートIV:キル・チェーン - OSINTとCVEの交錯

Ghuntの真価は、その出力を2026年のCVE(共通脆弱性・暴露)ランドスケープと重ね合わせたときに現れる。

1.ハードウェアベクターCVE-2026-21858 (CoreAudio RCE)

コンテキスト CVE-2026-21858 は、Android 15 以前のメディア処理エンジンに存在する、リモートでコードを実行される重大な脆弱性です。攻撃者が MMS または WhatsApp 経由で不正な形式のオーディオファイルを送信することで、任意のコードを実行される可能性があります。

  • 問題だ: エクスプロイトはハードウェアに依存します。間違ったアーキテクチャに間違ったペイロードを送ると(例えば、SnapdragonデバイスにExynosペイロードを送ると)、クラッシュを引き起こし、ユーザーに警告を発します。
  • ガント・ソリューション ランニング ガント・プレー攻撃者は正確なモデル(例えば "Pixel 7 Pro")を取得します。彼らはこれをCVE-2026-21858の互換性マトリックスと相互参照する。
  • 結果 100%の信頼性とゼロクリックの妥協。ガントが提供する ターゲティング・ソリューション ミサイルのために。

2.アイデンティティ・ベクトルCVE-2025-68613 (OAuth トークンの漏洩)

コンテキスト CVE-2025-68613 には、特定のサードパーティの統合機能がGoogle OAuthのリフレッシュトークンを処理する方法の欠陥が含まれています。

  • 問題だ: 攻撃者は知る必要がある どの ユーザが許可した統合。ブラインドエクスプロイトの散布はノイズが多い。
  • ガント・ソリューション Ghuntの "SpiderDAL"(Digital Asset Links)と "Photos "モジュールは、多くの場合、サードパーティとの接続を推測することができます。Ghuntが、ユーザーが特定のサードパーティアプリから写真を投稿していることを示した場合、攻撃者はその統合に有効なOAuthトークンが存在することを知る。
  • 結果 攻撃者は CVE-2025-68613 フローは、Ghuntによって特定されたアプリに対して特別に流され、永続的なものを盗み出す。 リフレッシュ・トークン そして恒久的な口座引き継ぎ(ATO)を達成する。

パートV:未来 - スクリプトからエージェントAIへ (ペンリジェント)

上記のPythonスクリプトは強力ですが、セキュリティの「手動時代」を象徴しています。JSONを解釈し、CVEを調べ、ペイロードを作成するには人間が必要です。2026年には、スピードが決め手となる。そこで エージェントAI が引き継ぐ。

ペンリジェント世界初の エージェントAIハッカーGhuntは、Ghuntのようなツールのロジックをコグニティブ・アーキテクチャに吸収する。単にGhuntを "実行 "するのではなく、出力を "理解 "するのだ。

Penligent経由でGhuntを試す

忘却エージェントの認知ループ:

  1. 観測(センサー): エージェントは、企業メールのリストに対してGhuntのようなセンサーを自律的に展開する。
  2. オリエンテーション(文脈):
    • 生データ: 「ユーザーAはサムスンS24を使用しています。
    • 知識検索: エージェントは内部の脆弱性ベクターデータベースを照会します。Samsung S24" + "Android 15 "を以下のようにマッチさせる。 CVE-2026-21858.
  3. 決断(戦略): エージェントは最も抵抗の少ない経路を計算する。
    • オプションA: フィッシングメールか(成功率12%)。
    • オプションB: CVE-2026-21858 経由のモバイル RCE? (成功率 95%)。
    • セレクション: エージェントはオプションBを選択する。
  4. アクション(検証): エージェントは 安全な概念実証(PoC) アーティファクト。デバイスを悪意を持って悪用するのではなく、脆弱性が存在することを検証し(例えば、デバイスが不正なヘッダーを受け入れるかどうかをチェックすることによって)、その発見をログに記録する。

これがツールとチームメイトの違いです。Penligentは 推論だけではない。 執行.セキュリティ・チームにとって、これは妥協へのクリティカル・パスを数日ではなく数分で見つけることを意味する。

第VI部:防御対策とオペセック

レッドチームなら、インフラを守らなければならない。ブルーチームなら、攻撃者の目をくらませなければならない。

オペレーターのために(OpSec)

  • Docker化は必須です:ホストOS上でGhuntを実行しないこと。Googleはファイルシステムに "パンくず "を残します。公式のDockerイメージを使う: docker run -v $(pwd)/resources:/usr/src/app/resources mxrch/ghunt login
  • 住宅用プロキシ: データセンターIP(AWS、DigitalOcean)はGoogleによって即座にフラグが立てられます。通常のユーザートラフィックを模倣するために、Ghuntトラフィックを高レピュテーションのResidential Proxiesにトンネルする必要があります。
  • アカウントエイジング: 新しいGmailアカウントを偵察に使わないこと。グーグルは履歴のあるアカウントを信用する。経験豊富な」バーナーアカウントを使うこと。

ディフェンダーのために(軽減)

  • ブロック」リスト: 正当なトラフィックのように見えるので、Ghuntを直接ブロックすることはできない。データサーフェスを減らす必要がある。
  • 企業方針:
    1. "ウェブとアプリのアクティビティ "を無効にする:すべての企業ユーザーに対して、Google Workspace Adminポリシーでこれを強制する。これにより、マップのレビューとロケーション履歴の収集が停止されます。
    2. シャドーIT監査: 定期的にガントと対戦させる 所有する エグゼクティブ。個人所有のデバイスがリストアップされている場合、個人と企業のアイデンティティが混在していることになり、「職務の分離」の原則に違反していることになる。
    3. エンドポイントの隔離: 企業データにアクセスするモバイルデバイスが管理されていることを確認する(MDM)。デバイスが以下の脆弱性を持つことが確認された場合 CVE-2026-21858MDMは、パッチが適用されるまで、アクセストークンを自動的に失効させる。

結論

Ghunt V2は、ハイパーコネクテッドワールドにおいて、私たち全員がデータを漏洩しているという事実を証明するものです。セキュリティ・エンジニアにとっては、洗練された脅威行為者をシミュレートするために必要なきめ細かさを提供します。

しかし、OSINTデータと複雑な脆弱性の連鎖を手作業で相関させるのは、次のような問題がある。 CVE-2026-21858 そして CVE-2025-68613 は、人間のチームにとって持続不可能になりつつある。未来は次のようなプラットフォームにある。 ペンリジェントこれは、Ghuntのようなツールの精度とエージェントAIの推論力を融合させたもので、機械的なスピードでこれらの露出窓を特定し、閉じることを可能にする。

参考文献

記事を共有する
関連記事
jaJapanese