Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/winslowe/cve-2024-4309-analysis
Análisis de VulnerabilidadesExplotaciónCriptografíaPruebas de PenetraciónSeguridad MóvilAprendizaje y EducaciónRespuesta a IncidentesExplotación de BinariosLabs y Práctica
GitHubwinslowe/cve-2024-4309-analysis

CVE-2024-4309-Analysis

Proyecto Final de BGT-Pentest-LAB: Análisis en profundidad del bypass de verificación de firma OTA del actualizador del sistema Xiaomi HyperOS (CVE-2024-4309).

Ver Repositorio
11hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

🛡️ CVE-2024-4309

Xiaomi HyperOS System Updater — OTA Signature Verification Bypass & RCE


CVSS RCE Python


Status Course License Docker Tests Zero Deps


⚠️ SOLO CON FINES EDUCATIVOS — Prohibido su uso en sistemas reales.




📋 Resumen del Proyecto / Project Overview

BGT-Pentest-LAB ha sido elaborado en el marco del proyecto final de ciberseguridad.

Este repositorio contiene el análisis en profundidad, la simulación del ataque, el motor de detección y el dashboard web interactivo de la vulnerabilidad CVE-2024-4309, presente en el componente System Updater de Xiaomi HyperOS, que permite la ejecución remota de código (RCE).

🔴 Resumen de la Vulnerabilidad

CampoValor
CVE IDCVE-2024-4309
ComponenteSystem Updater (HyperOS)
Gravedad🔴 Crítica (CVSS 9.1)
CWECWE-347: Improper Crypto Signature Verification
ImpactoRCE persistente, acceso root
SoluciónHyperOS 1.0.4.0+

🎯 Vector de Ataque

MétricaValor
Attack VectorAdjacent Network
ComplexityLow
PrivilegesNone
User InteractionNone
ScopeChanged
CVSS VectorAV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N



💀 Flujo del Ataque / Attack Kill Chain

root@kitploit:~
flowchart TD
    subgraph MITM ["Fase 1: Intercepción del Tráfico de Red (MITM)"]
        A["🌐 1. MITM (ARP Spoofing)"] --> B["🎯 2. DNS Hijack (update.miui.com)"]
    end

    subgraph INJECTION ["Fase 2: Manipulación de la Base de Datos y Paquetes"]
        B --> C["💾 3. Inyección de Hash (ota_hashes.db)"]
        C --> D["📦 4. Preparación del Paquete OTA Malicioso"]
    end

    subgraph BYPASS ["Fase 3: Evasión de los Controles de Seguridad (Bypass)"]
        D --> E["🔓 5. Bypass de la Firma RSA (Fast Channel)"]
        E --> F["⚡ 6. Evasión de la Verificación de Hash (Bug de strstr)"]
    end

    subgraph EXPLOIT ["Fase 4: Escalada de Privilegios y Exfiltración"]
        F --> G["💀 7. RCE y Root Persistente (Flash de system.img)"]
    end

    %% Definiciones de Estilo
    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
📖 Explicación Detallada — Haga clic para ver el detalle técnico de cada paso
PasoAcciónDetalle Técnico
1Posición MITMEl tráfico de red se intercepta mediante ARP Spoofing o un punto de acceso Wi-Fi falso
2DNS HijackLas respuestas DNS de update.miui.com se redirigen al servidor del atacante
3Inyección de HashSe inyecta un hash malicioso parcial en la base de datos ota_hashes.db
4Paquete OTA MaliciosoSe crea un update.zip falso con la cabecera X-Xiaomi-Fast-Channel: true
5Bypass de RSAMiuiRecoveryVerifier detecta la cabecera Fast Channel y omite la comprobación RSA
6Bypass de HashquickHashCheck → coincidencia parcial con strstr() → BYPASS
7RCESe flashea un system.img malicioso en modo Recovery → Root Persistente



⚙️ Herramientas Desarrolladas / Developed Tools




🖥️ C2 Dashboard
app.py

Dashboard interactivo que visualiza paso a paso
la simulación del ataque con panel web premium.
Kill chain, puntuación de riesgo, registros en tiempo real.




⚔️ Attack Simulator
attack.py

Simulación del ataque MITM con servidor OTA falso.
4 endpoints REST, generación de ZIP malicioso,
inyección de hash y bypass de Fast Channel.




🔍 Detection Engine
detector.py

Escáner de seguridad OTA en 3 fases.
Detección de strstr(), análisis de Fast Channel,
puntuación de riesgo e informe de IoC.


🔧 Fix Demo
fix_demo.py

Comparación interactiva de strstr() vs strcmp()
y demostración del parche.


📄 Report Generator
report_generator.py

Generador de informes HTML profesionales
de análisis de vulnerabilidades listos para PDF.


🧪 Test Suite
test_suite.py

27 pruebas unitarias automatizadas.
Pruebas de integración de Attack + Detector.




🐛 Causa Raíz / Root Cause

❌ Código Vulnerable (strstr)✅ Código Parcheado (strcmp)
root@kitploit:~
// NativeVerifier.cpp — BUG!
bool quickHashCheck(const char* hash) {
    for (int i = 0; i < count; i++) {
        if (strstr(whitelist[i], hash))
            return true;  // Coincidencia de subcadena ⚠️
    }
    return false;
}
root@kitploit:~
// NativeVerifier.cpp — FIXED
bool quickHashCheck(const char* hash) {
    for (int i = 0; i < count; i++) {
        if (strcmp(whitelist[i], hash) == 0)
            return true;  // Coincidencia exacta ✅
    }
    return false;
}
🔴 8 caracteres son suficientes — Fuerza bruta: 2³²🟢 Se requieren 64 caracteres — Fuerza bruta: 2²⁵⁶



🗂 Estructura del Repositorio / Repository Structure

root@kitploit:~
📦 CVE-2024-4309-Analysis
├── 📄 README.md                    # Este archivo
├── 📄 ROADMAP.md                   # Hoja de ruta del proyecto (5 fases)
├── 🐳 Dockerfile                   # Configuración del contenedor
├── 🐳 docker-compose.yml           # Archivo de orquestación de servicios
├── 🔑 .env.example                 # Plantilla de variables de entorno
├── 📄 .gitignore                   # Reglas de exclusión de Git
├── 📄 requirements.txt             # Lista de dependencias (cero dependencias)
│
├── 📁 docs/
│   ├── 📁 presentations/           # 🎨 Archivos de presentación (diapositivas HTML, infografía)
│   ├── 📁 research/                # 🔬 Notas de investigación y análisis en profundidad
│   └── 📁 references/              # 📚 Bibliografía y referencias
│
└── 📁 src/
    ├── 🖥️  app.py                   # C2 Web Dashboard (UI Premium)
    ├── ⚔️  attack.py                # Simulador de ataques MITM OTA
    ├── 🔍 detector.py               # Motor de detección de ataques en varias fases
    ├── 🔧 fix_demo.py               # Demo de strstr() vs strcmp()
    ├── 📄 report_generator.py       # Generador de informes HTML listos para PDF
    └── 🧪 test_suite.py             # 27 pruebas unitarias automatizadas



🚀 Instalación / Getting Started

Requisitos Previos

  • Python 3.12+ (sin dependencias externas — solo biblioteca estándar)
  • Docker (opcional)

📥 Clonación

root@kitploit:~
git clone https://github.com/Winslowe/CVE-2024-4309-Analysis.git
cd CVE-2024-4309-Analysis
cp .env.example .env

🐳 Ejecución con Docker

root@kitploit:~
docker-compose up -d

Dashboard → http://127.0.0.1:5000

🐍 Ejecución sin Docker

root@kitploit:~
# Terminal 1 — C2 Dashboard
python src/app.py

# Terminal 2 — Servidor de Ataque
python src/attack.py

# Terminal 3 — Motor de Detección
python src/detector.py

🧪 Ejecutar las Pruebas

root@kitploit:~
python src/test_suite.py
# o
python -m pytest src/test_suite.py -v



📊 Entregables / Deliverables

EntregableArchivoEstado
Investigación de Vulnerabilidades y Registrosdocs/research/✅
Scripts de PoCsrc/ (6 archivos)✅
Análisis Visual (Infografía)docs/presentations/✅
C2 Web Dashboardsrc/app.py✅
Suite de Pruebas Automatizadassrc/test_suite.py (27 pruebas)✅
Informe Listo para PDFreport_generator.py✅
Soporte DockerDockerfile + docker-compose.yml✅



📚 Documentación / Documentation

DocumentoDescripción
docs/research/🔬 Notas de análisis en profundidad e investigación
docs/presentations/🎨 Archivos de presentación HTML e infografías
docs/references/sources.md📚 Lista completa de bibliografía
ROADMAP.md🗺️ Hoja de ruta del proyecto en 5 fases



🔗 Referencias / References

FuenteEnlace
Xiaomi Security Bulletintrust.mi.com/misrc/bulletins/advisory
QDebugger Researchota-security.q-debugger.com
CWE-347cwe.mitre.org/data/definitions/347
Android RecoverySystem APIdeveloper.android.com
Xiaomi OTA Researchgithub.com/nicene-0



🎓 Información Académica / Academic Information

👨‍🏫 Asesor / Instructor

NombreKeyvan Arasteh

👤 Estudiante / Student

Nombre CompletoSamuroDev
Nº de Estudiante``

📚 Curso / Course

CursoPenetration Testing / Pruebas de Penetración
CódigoBGT006 · 3 ECTS
Periodo2025-2026 Primavera
Universidadİstinye Üniversitesi



Built with 🐍 Python · Zero Dependencies · Made for BGT-Pentest-LAB Final Project
© 2026 — Solo con fines educativos y de investigación.

Descargar herramienta