Android APK 检查表
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。
学习 Android 基础
- 基础知识
- Dalvik & Smali
- 入口点
- Activities
- URL Schemes
- Content Providers
- Services
- Broadcast Receivers
- Intents
- Intent Filter
- 其他组件
- 如何使用 ADB
- 如何修改 Smali
静态分析
- 检查是否使用了混淆、检测设备是否已 root、是否在模拟器上运行以及防篡改检测。阅读更多。
- 敏感应用(如银行应用)应检测设备是否已 root 并据此采取措施。
- 搜索有价值的字符串(密码、URLs、API、加密、后门、tokens、Bluetooth uuids 等)。
- 特别注意 firebase APIs。
- 阅读 manifest:
- 检查应用是否处于 debug 模式并尝试“利用”它
- 检查 APK 是否允许备份
- 导出(exported)Activities
- Unity Runtime:导出的 UnityPlayerActivity/UnityPlayerGameActivity 带有
unityCLI extras bridge。测试-xrsdk-pre-init-library <abs-path>以在 pre-init 时通过dlopen()触发 RCE。参见 Intent Injection → Unity Runtime。 - Content Providers
- 暴露的 services
- Broadcast Receivers
- URL Schemes
- 应用是否在内部或外部不安全地保存数据?(android-app-pentesting/index.html#insecure-data-storage)
- 是否有任何硬编码或保存在磁盘上的密码?应用是否使用不安全或已弃用的加密算法?
- 所有库是否都使用了 PIE 标志进行编译?
- 别忘了有一堆静态 Android 分析器 可以在此阶段大幅帮助你。
-
android:exported在 Android 12+ 上是强制的 – 错误配置的 exported 组件可能导致外部 intent 被调用。 - 审查 Network Security Config(
networkSecurityConfigXML),检查cleartextTrafficPermitted="true"或针对域的例外配置。 - 查找对 Play Integrity / SafetyNet / DeviceCheck 的调用 – 判断自定义 attestation 是否可以被 hook/绕过。
- 检查 App Links / Deep Links(
android:autoVerify)是否存在 intent 重定向或 open-redirect 问题。 - 识别 WebView.addJavascriptInterface 或
loadData*()的使用,这些可能导致应用内的 RCE / XSS。 - 分析跨平台包(Flutter 的
libapp.so、React-Native JS bundles、Capacitor/Ionic 资产)。专用工具: flutter-packer,fluttersign,rn-differ- 扫描第三方本地库以查找已知 CVE(例如 libwebp CVE-2023-4863、libpng 等)。
- 评估 SEMgrep Mobile rules、Pithus 和最新的 MobSF ≥ 3.9 AI 辅助扫描结果以发现更多问题。
- 检查 OEM ROM 的附加组件(OxygenOS/ColorOS/MIUI/OneUI),是否存在可绕过权限的额外 exported ContentProviders;尝试在没有
READ_SMS的情况下使用content query --uri content://com.android.providers.telephony/ServiceNumberProvider(例如 OnePlus CVE-2025-10184)。
动态分析
- 准备环境(在线、本地 VM 或物理设备)
- 是否存在任何非预期的数据泄露(日志、复制/粘贴、崩溃日志)?
- 是否有机密信息保存在 SQLite dbs 中?
- 可被利用的导出 Activities?
- 可被利用的 Content Providers?
- 可被利用的导出 Services?
- 可被利用的 Broadcast Receivers?
- 应用是否以明文传输信息/或使用弱算法?是否可能被 MitM?
- 检查 HTTP/HTTPS 流量
- 这一点非常重要,因为如果你能捕获 HTTP 流量,就可以搜索常见的 Web 漏洞(Hacktricks 对 Web 漏洞有大量信息)。
- 检查可能的 Android Client Side Injections(静态代码分析可能对这点很有帮助)
- Frida:仅使用 Frida,从应用中获取有价值的动态数据(可能包括某些密码…)
- 测试 Tapjacking / Animation-driven attacks (TapTrap 2025) 即使在 Android 15+(无需 overlay 权限)。
- 进行 overlay / SYSTEM_ALERT_WINDOW clickjacking 和 Accessibility Service 滥用 测试以尝试权限提升。
- 检查
adb backup/bmgr backupnow是否仍能导出应用数据(忘记禁用allowBackup的应用)。 - 探测 Binder 级别的 LPE(例如 CVE-2023-20963, CVE-2023-20928);在许可的情况下使用内核 fuzzers 或 PoC。
- 如果强制使用 Play Integrity / SafetyNet,尝试运行时 hook(
Frida Gadget,MagiskIntegrityFix,Integrity-faker)或网络层重放。近期的 Play Integrity Fix 分支(≥17.x)嵌入了playcurl——重点关注 ZygiskNext + PIF + ZygiskAssistant/TrickyStore 组合以恢复 DEVICE/STRONG 判定。 - 使用现代工具进行检测与分析:
- Objection > 2.0, Frida 17+ (Android 16 支持, ART 偏移修复), NowSecure-Tracer (2024)
- 使用
perfetto/simpleperf进行动态系统级追踪。 - 对于 OEM 电话/提供者漏洞(例如 OxygenOS CVE-2025-10184),尝试通过
contentCLI 或应用内的ContentResolver做无权限的 SMS 读/发;在update()中测试盲注 SQLi 以外泄行数据。
Some obfuscation/Deobfuscation information
参考
- CVE-2025-59489 – Arbitrary Code Execution in Unity Runtime (blog)
- Rapid7: CVE-2025-10184 OnePlus OxygenOS Telephony provider permission bypass
- TapTrap animation-based tapjacking research (TU Wien)
Tip
学习和实践 AWS 黑客技术:
HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)
学习和实践 Azure 黑客技术:
HackTricks Training Azure Red Team Expert (AzRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 在 Twitter 🐦 上关注我们 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud GitHub 仓库提交 PR 来分享黑客技巧。


