
BGT-Pentest-LAB Abschlussprojekt: Xiaomi HyperOS System Updater OTA Signaturprüfungsumgehung (CVE-2024-4309) Tiefenanalyse.
⚠️ NUR ZU BILDUNGSZWECKEN — Die Verwendung auf echten Systemen ist untersagt.
BGT-Pentest-LAB wurde im Rahmen des Cybersecurity-Abschlussprojekts erstellt.
Eine eingehende Analyse der CVE-2024-4309-Schwachstelle im Xiaomi HyperOS System Updater, die Remote Code Execution (RCE) ermöglicht, sowie Angriffssimulation, Erkennungs-Engine und interaktives Web-Dashboard sind in diesem Repository enthalten.
🔴 Schwachstellenübersicht
|
🎯 Angriffsvektor
|
flowchart TD
subgraph MITM ["Aşama 1: Ağ Erişimini Ele Geçirme (MITM)"]
A["🌐 1. MITM (ARP Spoofing)"] --> B["🎯 2. DNS Hijack (update.miui.com)"]
end
subgraph INJECTION ["Aşama 2: Veritabanı ve Paket Manipülasyonu"]
B --> C["💾 3. Hash Enjeksiyonu (ota_hashes.db)"]
C --> D["📦 4. Zararlı OTA Paketi Hazırlama"]
end
subgraph BYPASS ["Aşama 3: Güvenlik Kontrollerini Atlama (Bypass)"]
D --> E["🔓 5. RSA İmza Atlatma (Fast Channel)"]
E --> F["⚡ 6. Hash Doğrulama Atlatma (strstr Bug)"]
end
subgraph EXPLOIT ["Aşama 4: Yetki Yükseltme & Sızma"]
F --> G["💀 7. RCE & Kalıcı Root (system.img Flash)"]
end
%% Stil Tanımlamaları
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| Schritt | Aktion | Technisches Detail |
|---|---|---|
| 1 | MITM-Position | ARP-Spoofing oder gefälschter Wi-Fi-Hotspot, um den Netzwerkverkehr abzufangen |
| 2 | DNS-Hijacking | update.miui.com DNS-Antworten werden auf den Server des Angreifers umgeleitet |
| 3 | Hash-Injektion | In die ota_hashes.db-Datenbank wird ein teilweise schädlicher Hash injiziert |
| 4 | Schädliches OTA-Paket | Eine gefälschte update.zip mit Header X-Xiaomi-Fast-Channel: true wird erstellt |
| 5 | RSA-Bypass | MiuiRecoveryVerifier sieht den Fast-Channel-Header und überspringt die RSA-Prüfung |
| 6 | Hash-Bypass | quickHashCheck → strstr() mit teilweiser Übereinstimmung → BYPASS |
| 7 | RCE | Im Recovery-Modus wird schädliches system.img geflasht → Permanenter Root |
|
🖥️ C2-Dashboard app.py
Interaktives Dashboard, das die Angriffssimulation Schritt für Schritt mit einem Premium-Webpanel visualisiert. Kill Chain, Risikobewertung, Echtzeit-Logs. |
⚔️ Angriffssimulator attack.py
MITM-Angriffssimulation mit gefälschtem OTA-Server. 4 REST-Endpunkte, Erzeugung schädlicher ZIPs, Hash-Injektion und Fast-Channel-Bypass. |
🔍 Erkennungs-Engine detector.py
3-stufiger OTA-Sicherheitsscanner. strstr()-Erkennung, Fast-Channel-Analyse, Risikobewertung und IoC-Bericht. |
|
🔧 Fix-Demo fix_demo.py
Interaktiver Vergleich und Patch-Demonstration von strstr() vs. strcmp().
|
📄 Berichtsgenerator report_generator.py
PDF-fähiger, professioneller HTML- Schwachstellenanalyse-Berichtsgenerator. |
🧪 Test-Suite test_suite.py
27 automatisierte Unit-Tests. Integrationstests für Angriff + Detektor. |
| ❌ Verwundbarer Code (strstr) | ✅ Gepatchter Code (strcmp) |
|---|---|
|
|
| 🔴 8 Zeichen ausreichend — Brute-Force: 2³² | 🟢 64 Zeichen erforderlich — Brute-Force: 2²⁵⁶ |
📦 CVE-2024-4309-Analysis
├── 📄 README.md # Diese Datei
├── 📄 ROADMAP.md # Projekt-Fahrplan (5 Phasen)
├── 🐳 Dockerfile # Container-Konfiguration
├── 🐳 docker-compose.yml # Dienst-Orchestrierungsdatei
├── 🔑 .env.example # Umgebungsvariablen-Vorlage
├── 📄 .gitignore # Git-Ausschlussregeln
├── 📄 requirements.txt # Abhängigkeitsliste (keine Abhängigkeiten)
│
├── 📁 docs/
│ ├── 📁 presentations/ # 🎨 Präsentationsdateien (HTML-Folien, Infografik)
│ ├── 📁 research/ # 🔬 Forschungsnotizen und eingehende Analyse
│ └── 📁 references/ # 📚 Literaturverzeichnis und Referenzen
│
└── 📁 src/
├── 🖥️ app.py # C2-Web-Dashboard (Premium-UI)
├── ⚔️ attack.py # OTA-MITM-Angriffssimulator
├── 🔍 detector.py # Mehrstufige Angriffserkennungs-Engine
├── 🔧 fix_demo.py # strstr() vs. strcmp() Demo
├── 📄 report_generator.py # PDF-fähiger HTML-Berichtsgenerator
└── 🧪 test_suite.py # 27 automatisierte Unit-Tests
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
# Terminal 1 — C2-Dashboard
python src/app.py
# Terminal 2 — Angriffsserver
python src/attack.py
# Terminal 3 — Erkennungs-Engine
python src/detector.py
python src/test_suite.py
# oder
python -m pytest src/test_suite.py -v
| Liefergegenstand | Datei | Status |
|---|---|---|
| Schwachstellenforschung und Logs | docs/research/ | ✅ |
| PoC-Skripte | src/ (6 Dateien) | ✅ |
| Visuelle Analyse (Infografik) | docs/presentations/ | ✅ |
| C2-Web-Dashboard | src/app.py | ✅ |
| Automatisierte Test-Suite | src/test_suite.py (27 Tests) | ✅ |
| PDF-fähiger Bericht | report_generator.py | ✅ |
| Docker-Unterstützung | Dockerfile + docker-compose.yml | ✅ |
| Dokument | Beschreibung |
|---|---|
docs/research/ | 🔬 Eingehende Analyse und Forschungsnotizen |
docs/presentations/ | 🎨 HTML-Präsentationen und Infografik-Dateien |
docs/references/sources.md | 📚 Vollständiges Literaturverzeichnis |
ROADMAP.md | 🗺️ 5-phasiger Projekt-Fahrplan |
| Quelle | Link |
|---|---|
| Xiaomi-Sicherheitsbulletin | trust.mi.com/misrc/bulletins/advisory |
| QDebugger-Forschung | ota-security.q-debugger.com |
| CWE-347 | cwe.mitre.org/data/definitions/347 |
| Android RecoverySystem API | developer.android.com |
| Xiaomi OTA-Forschung | github.com/nicene-0 |
👨🏫 Betreuer / Instructor
|
👤 Student / Student
📚 Kurs / Course
|