# Android APK Checklist {{#include ../banners/hacktricks-training.md}} ### [学习 Android 基础](android-app-pentesting/index.html#2-android-application-fundamentals) - [ ] [基础知识](android-app-pentesting/index.html#fundamentals-review) - [ ] [Dalvik & Smali](android-app-pentesting/index.html#dalvik--smali) - [ ] [入口点](android-app-pentesting/index.html#application-entry-points) - [ ] [活动](android-app-pentesting/index.html#launcher-activity) - [ ] [URL 方案](android-app-pentesting/index.html#url-schemes) - [ ] [内容提供者](android-app-pentesting/index.html#services) - [ ] [服务](android-app-pentesting/index.html#services-1) - [ ] [广播接收器](android-app-pentesting/index.html#broadcast-receivers) - [ ] [意图](android-app-pentesting/index.html#intents) - [ ] [意图过滤器](android-app-pentesting/index.html#intent-filter) - [ ] [其他组件](android-app-pentesting/index.html#other-app-components) - [ ] [如何使用 ADB](android-app-pentesting/index.html#adb-android-debug-bridge) - [ ] [如何修改 Smali](android-app-pentesting/index.html#smali) ### [静态分析](android-app-pentesting/index.html#static-analysis) - [ ] 检查是否使用了 [混淆](android-checklist.md#some-obfuscation-deobfuscation-information),检查手机是否已被 root,是否使用了模拟器以及反篡改检查。[阅读更多信息](android-app-pentesting/index.html#other-checks)。 - [ ] 敏感应用(如银行应用)应检查手机是否已被 root,并应采取相应措施。 - [ ] 搜索 [有趣的字符串](android-app-pentesting/index.html#looking-for-interesting-info)(密码、URL、API、加密、后门、令牌、蓝牙 UUID 等)。 - [ ] 特别注意 [firebase](android-app-pentesting/index.html#firebase) API。 - [ ] [阅读清单:](android-app-pentesting/index.html#basic-understanding-of-the-application-manifest-xml) - [ ] 检查应用程序是否处于调试模式并尝试“利用”它 - [ ] 检查 APK 是否允许备份 - [ ] 导出的活动 - [ ] 内容提供者 - [ ] 暴露的服务 - [ ] 广播接收器 - [ ] URL 方案 - [ ] 应用程序是否 [不安全地保存数据](android-app-pentesting/index.html#insecure-data-storage)? - [ ] 是否有任何 [硬编码或保存在磁盘上的密码](android-app-pentesting/index.html#poorkeymanagementprocesses)?该应用程序是否 [使用不安全的加密算法](android-app-pentesting/index.html#useofinsecureandordeprecatedalgorithms)? - [ ] 所有库是否使用 PIE 标志编译? - [ ] 不要忘记有一堆 [静态 Android 分析工具](android-app-pentesting/index.html#automatic-analysis) 可以在此阶段帮助你。 ### [动态分析](android-app-pentesting/index.html#dynamic-analysis) - [ ] 准备环境([在线](android-app-pentesting/index.html#online-dynamic-analysis),[本地 VM 或物理](android-app-pentesting/index.html#local-dynamic-analysis)) - [ ] 是否有任何 [意外的数据泄露](android-app-pentesting/index.html#unintended-data-leakage)(日志记录、复制/粘贴、崩溃日志)? - [ ] [机密信息是否保存在 SQLite 数据库中](android-app-pentesting/index.html#sqlite-dbs)? - [ ] [可利用的暴露活动](android-app-pentesting/index.html#exploiting-exported-activities-authorisation-bypass)? - [ ] [可利用的内容提供者](android-app-pentesting/index.html#exploiting-content-providers-accessing-and-manipulating-sensitive-information)? - [ ] [可利用的暴露服务](android-app-pentesting/index.html#exploiting-services)? - [ ] [可利用的广播接收器](android-app-pentesting/index.html#exploiting-broadcast-receivers)? - [ ] 应用程序是否 [以明文传输信息/使用弱算法](android-app-pentesting/index.html#insufficient-transport-layer-protection)?是否可能发生中间人攻击? - [ ] [检查 HTTP/HTTPS 流量](android-app-pentesting/index.html#inspecting-http-traffic) - [ ] 这一点非常重要,因为如果你能捕获 HTTP 流量,你可以搜索常见的 Web 漏洞(Hacktricks 有很多关于 Web 漏洞的信息)。 - [ ] 检查可能的 [Android 客户端侧注入](android-app-pentesting/index.html#android-client-side-injections-and-others)(可能一些静态代码分析会在这里提供帮助) - [ ] [Frida](android-app-pentesting/index.html#frida):仅使用 Frida,从应用程序中获取有趣的动态数据(也许一些密码...) ### 一些混淆/去混淆信息 - [ ] [在这里阅读](android-app-pentesting/index.html#obfuscating-deobfuscating-code) {{#include ../banners/hacktricks-training.md}}