Финальный проект BGT-Pentest-LAB: глубокий анализ обхода проверки подписи OTA обновлений системы Xiaomi HyperOS (CVE-2024-4309).
⚠️ ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ — Запрещено использовать на реальных системах.
Подготовлено в рамках финального проекта по кибербезопасности BGT-Pentest-LAB.
В этом репозитории представлены углублённый анализ уязвимости CVE-2024-4309, обнаруженной в компоненте System Updater Xiaomi HyperOS и позволяющей удалённое выполнение кода (RCE), симуляция атаки, механизм обнаружения и интерактивная веб-панель.
🔴 Сводка об уязвимости
|
🎯 Вектор атаки
|
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
| Шаг | Действие | Техническая деталь |
|---|---|---|
| 1 | Позиция MITM | Сетевой трафик перехватывается с помощью ARP Spoofing или поддельной Wi-Fi точки доступа |
| 2 | DNS Hijack | DNS-ответы update.miui.com перенаправляются на сервер злоумышленника |
| 3 | Инъекция хэша | В базу данных ota_hashes.db внедряется частичный вредоносный хэш |
| 4 | Вредоносный OTA-пакет | Создаётся поддельный update.zip с заголовком X-Xiaomi-Fast-Channel: true |
| 5 | Обход RSA | MiuiRecoveryVerifier видит заголовок Fast Channel и пропускает проверку RSA |
| 6 | Обход хэша | quickHashCheck → частичное совпадение через strstr() → BYPASS |
| 7 | RCE | В режиме Recovery прошивается вредоносный system.img → Постоянный Root |
|
🖥️ C2 Dashboard app.py
Интерактивная панель, визуализирующая симуляцию атаки шаг за шагом с премиальным веб-интерфейсом. Цепочка атаки, оценка риска, логи в реальном времени. |
⚔️ Attack Simulator attack.py
Симуляция MITM-атаки с поддельным OTA-сервером. 4 REST endpoint, генерация вредоносного ZIP, инъекция хэша и обход Fast Channel. |
🔍 Detection Engine detector.py
Трёхэтапный сканер безопасности OTA. Обнаружение strstr(), анализ Fast Channel, оценка риска и отчёт IoC. |
|
🔧 Fix Demo fix_demo.py
Интерактивное сравнение strstr() vs strcmp()и демонстрация исправления. |
📄 Report Generator report_generator.py
Генератор профессиональных HTML-отчётов об анализе уязвимостей, готовых к PDF. |
🧪 Test Suite test_suite.py
27 автоматических модульных тестов. Интеграционные тесты Attack + Detector. |
| ❌ Уязвимый код (strstr) | ✅ Исправленный код (strcmp) |
|---|---|
|
|
| 🔴 Достаточно 8 символов — Brute-force: 2³² | 🟢 Требуется 64 символа — Brute-force: 2²⁵⁶ |