Projeto Final BGT-Pentest-LAB: Análise Profunda do Bypass de Verificação de Assinatura OTA do Atualizador do Sistema Xiaomi HyperOS (CVE-2024-4309).
⚠️ APENAS PARA FINS EDUCACIONAIS — Proibido o uso em sistemas reais.
Preparado no âmbito do projeto final de cibersegurança BGT-Pentest-LAB.
Este repositório contém a análise aprofundada, a simulação de ataque, o mecanismo de detecção e o dashboard web interativo da vulnerabilidade CVE-2024-4309, encontrada no componente System Updater do Xiaomi HyperOS, que permite a execução remota de código (RCE).
🔴 Resumo da Vulnerabilidade
|
🎯 Vetor de Ataque
|
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
| Etapa | Ação | Detalhe Técnico |
|---|---|---|
| 1 | Posição MITM | O tráfego de rede é interceptado via ARP Spoofing ou hotspot Wi-Fi falso |
| 2 | Sequestro de DNS | As respostas DNS de update.miui.com são redirecionadas para o servidor do atacante |
| 3 | Injeção de Hash | Um hash malicioso parcial é injetado no banco de dados ota_hashes.db |
| 4 | Pacote OTA Malicioso | Um update.zip falso com o cabeçalho X-Xiaomi-Fast-Channel: true é criado |
| 5 | Bypass RSA | O MiuiRecoveryVerifier vê o cabeçalho Fast Channel e ignora a verificação RSA |
| 6 | Bypass de Hash | quickHashCheck → correspondência parcial via strstr() → BYPASS |
| 7 | RCE | Um system.img malicioso é flashado no modo Recovery → Root Persistente |
|
🖥️ C2 Dashboard app.py
Dashboard interativo que visualiza a simulação de ataque passo a passo com painel web premium. Kill chain, pontuação de risco, logs em tempo real. |
⚔️ Attack Simulator attack.py
Simulação de ataque MITM com servidor OTA falso. 4 endpoints REST, geração de ZIP malicioso, injeção de hash e bypass do Fast Channel. |
🔍 Detection Engine detector.py
Scanner de segurança OTA em 3 estágios. Detecção de strstr(), análise do Fast Channel, pontuação de risco e relatório de IoC. |
|
🔧 Fix Demo fix_demo.py
strstr() vs strcmp() comparação interativae demonstração do patch. |
📄 Report Generator report_generator.py
Gerador de relatórios profissionais de análise de vulnerabilidade em HTML pronto para PDF. |
🧪 Test Suite test_suite.py
27 testes unitários automatizados. Testes de integração Attack + Detector. |
| ❌ Código Vulnerável (strstr) | ✅ Código Corrigido (strcmp) |
|---|---|
|
|
| 🔴 8 caracteres são suficientes — Força bruta: 2³² | 🟢 64 caracteres são necessários — Força bruta: 2²⁵⁶ |