
BGT-Pentest-LAB最終プロジェクト: Xiaomi HyperOSシステムアップデーターOTA署名検証バイパス (CVE-2024-4309) 詳細分析
⚠️ 教育目的のみ — 実際のシステムでの使用は禁止されています。
BGT-Pentest-LAB サイバーセキュリティ最終プロジェクトの一環として作成されました。
Xiaomi HyperOS System Updater コンポーネントに存在し、リモートコード実行(RCE)を可能にする CVE-2024-4309 脆弱性の詳細な分析、攻撃シミュレーション、検出エンジン、およびインタラクティブWebダッシュボードがこのリポジトリに含まれています。
flowchart TD
subgraph MITM ["フェーズ1: ネットワークアクセスの取得(MITM)"]
A["🌐 1. MITM (ARP Spoofing)"] --> B["🎯 2. DNSハイジャック (update.miui.com)"]
end
subgraph INJECTION ["フェーズ2: データベースとパッケージの操作"]
B --> C["💾 3. ハッシュインジェクション (ota_hashes.db)"]
C --> D["📦 4. 悪意のあるOTAパッケージの作成"]
end
subgraph BYPASS ["フェーズ3: セキュリティチェックのバイパス"]
D --> E["🔓 5. RSA署名のバイパス (Fast Channel)"]
E --> F["⚡ 6. ハッシュ検証のバイパス (strstrバグ)"]
end
subgraph EXPLOIT ["フェーズ4: 権限昇格&侵入"]
F --> G["💀 7. RCE & 永続的ルート (system.img フラッシュ)"]
end
%% スタイル定義
style MITM fill:#0f172a,stroke:#38bdf8,stroke-width:1px,color:#38bdf8
style INJECTION fill:#0f172a,stroke:#818cf8,stroke-width:1px,color:#818cf8
style BYPASS fill:#0f172a,stroke:#f59e0b,stroke-width:1px,color:#f59e0b
style EXPLOIT fill:#0f172a,stroke:#ef4444,stroke-width:2px,color:#ef4444
style A fill:#1e293b,stroke:#0284c7,stroke-width:2px,color:#e2e8f0
style B fill:#1e293b,stroke:#0284c7,stroke-width:2px,color:#e2e8f0
style C fill:#1e293b,stroke:#4f46e5,stroke-width:2px,color:#e2e8f0
style D fill:#1e293b,stroke:#4f46e5,stroke-width:2px,color:#e2e8f0
style E fill:#451a03,stroke:#d97706,stroke-width:2px,color:#fef3c7
style F fill:#451a03,stroke:#d97706,stroke-width:2px,color:#fef3c7
style G fill:#4c0519,stroke:#e11d48,stroke-width:3px,color:#ffe4e6
📦 CVE-2024-4309-Analysis
├── 📄 README.md # このファイル
├── 📄 ROADMAP.md # プロジェクトロードマップ (5フェーズ)
├── 🐳 Dockerfile # コンテナ設定
├── 🐳 docker-compose.yml # サービスオーケストレーションファイル
├── 🔑 .env.example # 環境変数テンプレート
├── 📄 .gitignore # Git除外ルール
├── 📄 requirements.txt # 依存関係リスト (ゼロ依存)
│
├── 📁 docs/
│ ├── 📁 presentations/ # 🎨 プレゼンテーションファイル (HTMLスライド、インフォグラフィック)
│ ├── 📁 research/ # 🔬 リサーチノートと詳細分析
│ └── 📁 references/ # 📚 参考文献と参照
│
└── 📁 src/
├── 🖥️ app.py # C2 Web Dashboard (プレミアムUI)
├── ⚔️ attack.py # OTA MITM攻撃シミュレータ
├── 🔍 detector.py # 多段階攻撃検出エンジン
├── 🔧 fix_demo.py # strstr() vs strcmp() デモ
├── 📄 report_generator.py # PDF対応HTMLレポート生成
└── 🧪 test_suite.py # 27個の自動単体テスト
git clone https://github.com/Winslowe/CVE-2024-4309-Analysis.git
cd CVE-2024-4309-Analysis
cp .env.example .env
docker-compose up -d
Dashboard → http://127.0.0.1:5000
# ターミナル1 — C2 Dashboard
python src/app.py
# ターミナル2 — 攻撃サーバー
python src/attack.py
# ターミナル3 — 検出エンジン
python src/detector.py
python src/test_suite.py
# または
python -m pytest src/test_suite.py -v
🔴 脆弱性サマリー
|
🎯 攻撃ベクトル
|
| ステップ | アクション | 技術詳細 |
|---|
| 1 | MITMポジション | ARP Spoofingまたは偽のWi-Fiホットスポットでネットワークトラフィックを傍受 |
| 2 | DNSハイジャック | update.miui.com のDNS応答を攻撃者のサーバーにリダイレクト |
| 3 | ハッシュインジェクション | ota_hashes.db データベースに部分的な悪意のあるハッシュを注入 |
| 4 | 悪意のあるOTAパッケージ | X-Xiaomi-Fast-Channel: true ヘッダー付きの偽造 update.zip を作成 |
| 5 | RSAバイパス | MiuiRecoveryVerifier がFast Channelヘッダーを見てRSAチェックをスキップ |
| 6 | ハッシュバイパス | quickHashCheck → strstr() による部分一致 → バイパス |
| 7 | RCE | Recoveryモードで悪意のある system.img をフラッシュ → 永続的ルート |
|
🖥️ C2 Dashboard app.py
プレミアムWebパネルで攻撃シミュレーションを ステップバイステップで可視化するインタラクティブダッシュボード。 キルチェーン、リスクスコア、リアルタイムログ。 |
⚔️ Attack Simulator attack.py
偽のOTAサーバーによるMITM攻撃シミュレーション。 4つのRESTエンドポイント、悪意のあるZIP生成、 ハッシュインジェクション、Fast Channelバイパス。 |
🔍 Detection Engine detector.py
3段階OTAセキュリティスキャナ。 strstr() 検出、Fast Channel分析、 リスクスコアとIoCレポート。 |
|
🔧 Fix Demo fix_demo.py
strstr() 対 strcmp() のインタラクティブ比較とパッチデモンストレーション。 |
📄 Report Generator report_generator.py
PDF対応のプロフェッショナルHTML 脆弱性分析レポート生成ツール。 |
🧪 Test Suite test_suite.py
27個の自動単体テスト。 Attack + Detector 統合テスト。 |
| ❌ 脆弱なコード (strstr) | ✅ パッチ適用済みコード (strcmp) |
|---|---|
|
|
| 🔴 8文字で十分 — ブルートフォース: 2³² | 🟢 64文字必要 — ブルートフォース: 2²⁵⁶ |
| 成果物 | ファイル | ステータス |
|---|
| 脆弱性調査とログ | docs/research/ | ✅ |
| PoCスクリプト | src/ (6ファイル) | ✅ |
| ビジュアル分析 (インフォグラフィック) | docs/presentations/ | ✅ |
| C2 Web Dashboard | src/app.py | ✅ |
| 自動テストスイート | src/test_suite.py (27テスト) | ✅ |
| PDF対応レポート | report_generator.py | ✅ |
| Dockerサポート | Dockerfile + docker-compose.yml | ✅ |
| ドキュメント | 説明 |
|---|
docs/research/ | 🔬 詳細な分析と研究ノート |
docs/presentations/ | 🎨 HTMLプレゼンテーションとインフォグラフィックファイル |
docs/references/sources.md | 📚 完全な参考文献リスト |
ROADMAP.md | 🗺️ 5フェーズのプロジェクトロードマップ |
| ソース | リンク |
|---|
| Xiaomi Security Bulletin | trust.mi.com/misrc/bulletins/advisory |
| QDebugger Research | ota-security.q-debugger.com |
| CWE-347 | cwe.mitre.org/data/definitions/347 |
| Android RecoverySystem API | developer.android.com |
| Xiaomi OTA Research | github.com/nicene-0 |
👨🏫 指導教官 / Instructor
|
👤 学生 / Student
📚 コース / Course
|