针对安卓版ES File Explorer中CVE-2019-6447的技术分析与注重安全的研究工具
一个独立实现、注重安全的研究工具和技术分析,针对 CVE-2019-6447——该漏洞涉及受影响的Android版ES文件管理器暴露的未认证HTTP服务。
仅限授权研究。 请仅对您拥有或明确获得测试许可的设备使用本项目。CLI默认仅进行非侵入式TCP探测。请求设备数据或文件的操作需要显式的实验室授权标志。
| 属性 | 值 |
|---|---|
| 受影响产品 | Android版ES文件管理器文件管理应用 |
| 受影响版本 | 4.1.9.7.4及更早版本 |
| 暴露服务 | TCP/59777上的未认证HTTP服务器 |
| 攻击前提 | 与Android设备的网络邻接 |
| 影响 | 设备/应用枚举、任意文件读取、应用启动 |
| 根本弱点 | CWE-306——关键功能缺少认证 |
| NVD严重性 | CVSS 3.1:8.1 高(AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) |
一旦应用程序启动,内置服务可能在本地Wi-Fi网络范围内保持可达。它接受JSON命令,而不对调用者进行身份验证。这使应用内部的管理接口变成网络可访问的攻击面。
flowchart LR
A["相邻网络攻击者"] -->|"HTTP POST / TCP 59777"| B["嵌入式ES HTTP服务"]
B --> C["命令分发器"]
C --> D["设备和应用元数据"]
C --> E["共享存储文件"]
C --> F["Android应用启动"]完整分析见 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
这仅尝试连接到TCP/59777端口。端口开放本身并不证明目标存在漏洞。
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
仅使用合成文件。不要将个人数据作为影响证明收集。
防御者可以搜索TCP/59777上意外的监听器以及包含JSON command 字段的HTTP请求。网络控制可以减少暴露面,但持久的修复是移除或升级存在漏洞的应用程序。嵌入的管理服务应绑定到loopback,除非远程访问是必需的,对每个请求进行身份验证,授权每个操作,并在不再需要时终止服务。
python -m unittest discover -s tests -v
测试启动一个仅loopback的模拟HTTP服务器。它们不会联系外部主机。
本项目旨在用于防御性验证、教育和授权漏洞研究。项目有意省略子网扫描,默认仅进行连通性探测。未经许可访问设备可能违反法律和政策,即使未保留任何文件。
漏洞发现和原始公开概念验证归功于上述研究人员。本仓库中的实现是一个独立的教育性重新实现。