
Código fuente que ilustra un servidor C2 para demostrar el escenario de ejecución de CVE-2024-23700.
Proyecto que ilustra el diseño y la construcción de un servidor de control y recopilación de información (Servidor C2 - Command & Control) para el escenario experimental de explotación de la vulnerabilidad de escalada de privilegios CVE-2024-23700. Este servidor desempeña el rol de recibir, procesar, clasificar y mostrar los datos sensibles robados de los dispositivos Android objetivo.
La documentación y el código fuente de este repositorio tienen fines exclusivamente educativos, de análisis de seguridad y de pruebas en entornos autorizados. No lo utilice en dispositivos, cuentas o datos que no estén dentro del ámbito de pruebas legítimas.
Asignatura del proyecto: Seguridad en dispositivos móviles
Grupo de trabajo: Proyecto realizado por un grupo de 4 miembros.
Durante el proceso de investigación y finalización del proyecto de diseño de este Servidor C2, el grupo asumió las siguientes tareas:
data.json para optimizar un PoC rápido y ligero.El sistema Servidor C2 aplica el modelo Cliente-Servidor, en el que la aplicación Android maliciosa (PoC) actúa como Cliente enviando datos continuamente. La arquitectura C2 se divide en dos componentes de procesamiento independientes para garantizar alta velocidad y flexibilidad.
Flujo de operación principal del Servidor C2:
/ está diseñado con un mecanismo de doble procesamiento. Si se accede mediante el método GET (escaneo del navegador), el servidor devuelve un error 404 falso para evadir la detección. Si recibe el método POST con formato JSON del malware, el servidor lo acepta y extrae el identificador del dispositivo.s_cache, gps_cache).data.json./api/data y leer la base de datos.device_id), escanea en profundidad la estructura para extraer los parámetros de hardware (RAM, Batería, SO) y los muestra visualmente en el radar.Código de vulnerabilidad: CVE-2024-23700
Nivel de gravedad en Android: Crítico
Componente relacionado: Android Companion Device Manager
Parche de referencia: Android Wear Security Bulletin 2024-05-01
Este servidor C2 está diseñado como parte de una red experimental que recibe el flujo de datos de inteligencia de dispositivos Android explotados con éxito mediante la vulnerabilidad mencionada.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Inicializa el Endpoint API, gestiona el camuflaje y la clasificación JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - Pantalla de radar general del dispositivo
│ │ │ └── DeviceDetails.jsx - Diálogo de análisis profundo del payload
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - Reverse Proxy personalizado para el frontend
├── data.json - Base de datos de archivos planos que almacena los registros (montada por volumen)
├── docker-compose.yml - Gestión de contenedores y red interna
├── .gitignore
└── README.md
En lugar de usar lógica compleja, el servidor identifica y etiqueta automáticamente según los bloques de datos (caché) recibidos, y la interfaz Frontend integra un diccionario inteligente (MODULE_MAP y COLUMN_TRANSLATIONS) para estandarizar y "localizar" los resultados:
s_cache).c_cache).cal_cache).n_cache).gps_cache).Además, el sistema convierte automáticamente las marcas de tiempo originales al formato de hora local legible e interpreta los códigos numéricos en estados reales (p. ej., Tipo de llamada 1 = "↙️ Llamada entrante").
Toda la infraestructura C2 se opera con docker compose para garantizar la consistencia y eliminar discrepancias de entorno. La estructura ejecuta 2 servicios principales:
data.json a la ruta /app/data.json dentro del contenedor. Esto permite que los datos de inteligencia se guarden de forma permanente aunque el contenedor se elimine o reinicie. El servicio aplica la política restart: always./api/ se reenvían automáticamente (proxy_pass) al Backend para reforzar la seguridad. Este contenedor debe iniciarse después del Backend (depends_on) para evitar errores de pérdida de conexión inicial.data.json tenga los permisos de lectura/escritura adecuados en el servidor físico antes de iniciar Docker.| Componente | Descripción | Ruta |
|---|
Backend Flask (app.py) | Centro de control (C2), escucha, clasifica y almacena los datos en data.json. | backend/app.py |
| Dashboard Radar | Panel de control central, agrupa objetivos y muestra parámetros HW/SO y cantidad de payloads. | frontend/src/pages/Dashboard.jsx |
| Modal de Detalles del Dispositivo | Interfaz de análisis de datos de la víctima (Modal XL), con sistema de Acordeón y tabla de datos dinámica. | frontend/src/pages/DeviceDetails.jsx |
| Archivo de configuración Docker | Coordina el despliegue del Backend (puerto 5000) y del Frontend Nginx (puerto 80) mediante Reverse Proxy. | docker-compose.yml |