
CVE-2024-23700の実行スクリプトをデモするC2サーバーのソースコード
[cite_start]このプロジェクトは、CVE-2024-23700 の権限昇格脆弱性を悪用する実験シナリオ用のコマンド&コントロール(C2)サーバーの設計・構築を示しています[cite: 2]。[cite_start]このサーバーは、標的のAndroidデバイスから窃取された機密データの受信、処理、分類、表示を担います[cite: 3]。
このリポジトリ内のドキュメントとソースコードは、学習、セキュリティ分析、および許可された環境でのテストのみを目的としています。合法的なテスト範囲外のデバイス、アカウント、またはデータには使用しないでください。
所属科目: モバイルデバイスセキュリティ
実施チーム: 4名のメンバーからなるチームが実施。
このC2サーバー設計プロジェクトの研究・完成過程において、チームは以下の作業を担当しました:
data.json 形式のストレージシステムを設計し、高速かつ軽量なPoCを最適化。C2サーバーシステムはクライアント・サーバーモデルを採用しており、悪意のあるAndroidアプリ(PoC)がクライアントとして継続的にデータを送信します。C2アーキテクチャは、高速性と柔軟性を確保するために独立した2つの処理コンポーネントに分かれています。
C2サーバーの主な動作フロー:
/ は二重処理メカニズムを備えて設計されています。GETメソッド(ブラウザスキャン)でアクセスされた場合、サーバーは偽の404エラーを返して回避します。マルウェアからJSON形式のPOSTメソッドを受信した場合、サーバーはそれを受信し、デバイス識別子を抽出します。s_cache、gps_cache)。data.json の保存リストの先頭にプッシュされます。/api/data にGETリクエストを送信し、データベースを読み取ります。device_id)を持つパケットを自動的にグループ化し、構造を深くスキャンしてハードウェアパラメータ(RAM、バッテリー、OS)を抽出し、レーダー上に視覚的に表示します。脆弱性コード: CVE-2024-23700
Android深刻度: Critical
関連コンポーネント: Android Companion Device Manager
参照パッチ: Android Wear Security Bulletin 2024-05-01
このC2サーバーは実験ネットワークの一部として設計されており、上記の脆弱性を通じて正常に悪用されたAndroidデバイスからのインテリジェンスデータフローを受信します。
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - APIエンドポイントの初期化、偽装処理とJSON分類を実行
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - デバイス概要レーダー画面
│ │ │ └── DeviceDetails.jsx - ペイロード詳細分析ダイアログ
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - フロントエンド用リバースプロキシのカスタマイズ
├── data.json - レコードを保存するフラットファイルDB(ボリュームマウント)
├── docker-compose.yml - コンテナと内部ネットワークの管理
├── .gitignore
└── README.md
複雑なロジックを使用する代わりに、サーバーは返されたデータブロック(キャッシュ)に基づいて自動的に識別・ラベル付けを行い、フロントエンドインターフェースはスマート辞書(MODULE_MAP と COLUMN_TRANSLATIONS)を統合して結果を標準化・ローカライズします:
s_cache)。c_cache)。cal_cache)。n_cache)。gps_cache)。さらに、システムは元のタイムスタンプを読みやすいローカル時刻形式に自動変換し、数値コードを実際の状態に解釈します(例:通話タイプ1 = "↙️ 着信")。
C2インフラストラクチャ全体は docker compose で運用され、一貫性を確保し、環境の差異を排除します。2つの主要サービスが実行される構成です:
data.json ファイルをコンテナ内の /app/data.json にマウントします。これにより、コンテナが削除または再起動されてもインテリジェンスデータが永続的に保存されます。このサービスには restart: always ポリシーが適用されます。/api/ プレフィックスを持つすべてのAPIリクエストは、セキュリティ強化のためバックエンドに自動転送(proxy_pass)されます。このコンテナは、初期接続エラーを防ぐためにバックエンドの後に起動する必要があります(depends_on)。data.json ファイルに適切な読み書き権限が設定されていることを確認してください。| コンポーネント | 説明 | パス |
|---|
Flaskバックエンド (app.py) | 制御センター(C2)、データのリッスン、分類、data.json への保存を実行。 | backend/app.py |
| レーダーダッシュボード | 中央コントロールパネル、標的のグループ化、HW/OSパラメータとペイロード数の表示。 | frontend/src/pages/Dashboard.jsx |
| デバイス詳細モーダル | 被害者データ分析インターフェース(XLモーダル)、アコーディオンシステムと動的データテーブルを提供。 | frontend/src/pages/DeviceDetails.jsx |
| Docker設定ファイル | バックエンド(ポート5000)とNginxフロントエンド(ポート80)のリバースプロキシによるデプロイを調整。 | docker-compose.yml |