
Análise técnica e harness de pesquisa seguro para o CVE-2019-6447 no ES File Explorer para Android
Uma ferramenta de pesquisa e análise técnica, implementada de forma independente e com foco em segurança, para CVE-2019-6447, um serviço HTTP não autenticado exposto por versões vulneráveis do ES File Explorer para Android.
Somente pesquisa autorizada. Use este projeto apenas em dispositivos que você possua ou tenha permissão explícita para testar. A CLI usa como padrão uma sondagem TCP não invasiva. Operações que solicitam dados ou arquivos do dispositivo exigem uma flag explícita de autorização de laboratório.
| Propriedade | Valor |
|---|---|
| Produto afetado | ES File Explorer File Manager para Android |
| Versões afetadas | 4.1.9.7.4 e anteriores |
| Serviço exposto | Servidor HTTP não autenticado em TCP/59777 |
| Pré-requisito do ataque | Proximidade de rede com o dispositivo Android |
| Impacto | Enumeração de dispositivo/aplicativos, leitura arbitrária de arquivos e lançamento de aplicativos |
| Fraqueza raiz | CWE-306 — Ausência de autenticação para função crítica |
| Severidade NVD | CVSS 3.1: 8.1 Alta (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) |
Depois que o aplicativo é iniciado, o serviço incorporado pode permanecer acessível na rede Wi-Fi local. Ele aceita comandos JSON sem autenticar o chamador. Isso transforma uma interface de gerenciamento interna do aplicativo em uma superfície de ataque acessível pela rede.
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 a análise completa, 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
Isso apenas tenta uma conexão TCP à porta 59777. Uma porta aberta não é, por si só, prova de que o alvo é vulnerável.
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
Use apenas arquivos sintéticos. Não colete dados pessoais como prova de impacto.
Os defensores podem procurar por serviços de escuta inesperados na porta TCP/59777 e por requisições HTTP contendo campos JSON command. Os controles de rede podem reduzir a exposição, mas a correção definitiva é remover ou atualizar o aplicativo vulnerável. Os serviços de gerenciamento incorporados devem ser vinculados ao loopback, a menos que o acesso remoto seja essencial, autenticar cada requisição, autorizar cada operação e encerrar quando não forem mais necessários.
python -m unittest discover -s tests -v
Os testes iniciam um servidor HTTP mock somente em loopback. Eles não contatam hosts externos.
Este projeto destina-se a validação defensiva, educação e pesquisa autorizada de vulnerabilidades. Ele deliberadamente omite varredura de sub-redes e usa como padrão uma sondagem apenas de conectividade. Acessar um dispositivo sem permissão pode violar leis e políticas, mesmo quando nenhum arquivo é retido.
A descoberta da vulnerabilidade e a prova de conceito pública original são creditadas aos pesquisadores referenciados acima. A implementação neste repositório é uma reimplementação educacional independente.