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

学习 Android 基础

静态分析

  • 检查是否使用了混淆、检测设备是否已 root、是否在模拟器上运行以及防篡改检测。阅读更多
  • 敏感应用(如银行应用)应检测设备是否已 root 并据此采取措施。
  • 搜索有价值的字符串(密码、URLs、API、加密、后门、tokens、Bluetooth uuids 等)。
  • 特别注意 firebase APIs。
  • 阅读 manifest:
  • 检查应用是否处于 debug 模式并尝试“利用”它
  • 检查 APK 是否允许备份
  • 导出(exported)Activities
  • Unity Runtime:导出的 UnityPlayerActivity/UnityPlayerGameActivity 带有 unity CLI 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 ConfignetworkSecurityConfig XML),检查 cleartextTrafficPermitted="true" 或针对域的例外配置。
  • 查找对 Play Integrity / SafetyNet / DeviceCheck 的调用 – 判断自定义 attestation 是否可以被 hook/绕过。
  • 检查 App Links / Deep Linksandroid:autoVerify)是否存在 intent 重定向或 open-redirect 问题。
  • 识别 WebView.addJavascriptInterfaceloadData*() 的使用,这些可能导致应用内的 RCE / XSS。
  • 分析跨平台包(Flutter 的 libapp.so、React-Native JS bundles、Capacitor/Ionic 资产)。专用工具:
  • flutter-packer, fluttersign, rn-differ
  • 扫描第三方本地库以查找已知 CVE(例如 libwebp CVE-2023-4863libpng 等)。
  • 评估 SEMgrep Mobile rulesPithus 和最新的 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 clickjackingAccessibility 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),尝试通过 content CLI 或应用内的 ContentResolver 做无权限的 SMS 读/发;在 update() 中测试盲注 SQLi 以外泄行数据。

Some obfuscation/Deobfuscation information

参考

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