ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OWASP MASTG Android 测试技巧:用 pm 与 frida-ps 精准枚举已安装应用

OWASP MASTG Android 测试技巧:用 pm 与 frida-ps 精准枚举已安装应用 文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载本篇技术指南对应 OWASP Mobile Application Security Testing Guide (MASTG) 中的 MASTG-TECH-0006讲解如何在 Android 安全测试中快速、准确地列出设备上已安装的应用并定位目标应用包名Package Name / Application ID。无论你是准备对目标 APK 做静态逆向还是要通过 Frida 进行动态插桩本文介绍的两条命令路径Android 自带的pm包管理器和 Frida 附带的frida-ps都是你进入后续所有测试环节的第一步。读完本文你将掌握pm list packages各常用参数组合、frida-ps -Uai的进程/应用双视角枚举方法以及如何把包名、PID 与后续adb pull、Frida 注入工作流无缝衔接。为什么先要列出已安装应用在 MASTG 的 Android 测试方法论中无论是静态分析还是动态分析第一步几乎都是确认目标应用的包名Package Name即应用 ID。原因很直接通过 ADB 拉取 APK、查看pm path、执行dumpsys package时全部以包名作为索引使用 Frida 附加或启动进程时frida、frida-trace、Objection 等工具同样通过包名或进程名定位目标面对未知应用例如从设备上搜集出的可疑应用包名是唯一稳定、可复现的标识符。从源码结构看MASTG 的所有 Android 测试用例如 MASTG-TEST-0024与技巧文档如 MASTG-TECH-0003都在开篇引用本技巧先pm list packages找到包名再pm path拿到 APK 路径最后adb pull提取样本。可以说本文介绍的枚举能力是整个 MASTG Android 章节的入口操作。方法一使用 Android 包管理器pmpmPackage Manager是 Android 系统自带的包管理命令通过adb shell即可调用无需 root、无需安装任何额外工具适用于任何一台已开启 USB 调试或网络 adb的设备。基础用法列出全部已安装包执行adb shell pm list packages会输出设备上所有应用的包名$ adb shell pm list packages package:sg.vantagepoint.helloworldjni package:eu.chainfire.supersu package:org.teamsik.apps.hackingchallenge.easy package:org.teamsik.apps.hackingchallenge.hard package:sg.vp.owasp_mobile.omtg_android输出格式固定为package:包名一行一个。上面的示例中可以看到 MASTG 仓库中出现的真实包名sg.vantagepoint.helloworldjni——对应 Samples/Android/01_HelloWorld-JNI 目录中的 JNI 示例应用HelloWord-JNI.apksg.vp.owasp_mobile.omtg_android——MASTG 的官方测试应用旧称 OMTG Android 应用eu.chainfire.supersu、org.teamsik.apps.hackingchallenge.*——测试中常见的 root 管理工具与破解挑战类应用。提示在设备上应用较多时可以用grep过滤关键字例如adb shell pm list packages | grep -i vantagepoint这与 MASTG-TEST-0024 中推荐的pm list packages -f | grep -i keyword用法一致。常用参数组合pm list packages支持多个过滤参数测试中最常用的有参数含义典型场景-3只显示第三方非系统应用排除厂商预装应用缩小目标范围-f同时显示 APK 文件的完整路径为后续adb pull提取 APK 做准备-s只显示系统应用分析系统组件或厂商应用-e/-d只显示已启用 / 已禁用应用检查应用状态-i显示安装来源审计应用来源-u包含已卸载但保留数据的应用检查数据残留最实用的组合是-3 -f一次性拿到第三方应用 APK 路径$ adb shell pm list packages -3 -f package:/data/app/sg.vantagepoint.helloworldjni-1/base.apksg.vantagepoint.helloworldjni package:/data/app/eu.chainfire.supersu-1/base.apkeu.chainfire.supersu package:/data/app/org.teamsik.apps.hackingchallenge.easy-1/base.apkorg.teamsik.apps.hackingchallenge.easy package:/data/app/org.teamsik.apps.hackingchallenge.hard-1/base.apkorg.teamsik.apps.hackingchallenge.hard package:/data/app/sg.vp.owasp_mobile.omtg_android-kR0ovWl9eoU_yh0jPJ9caQ/base.apksg.vp.owasp_mobile.omtg_android注意此模式下输出格式变为package:APK 绝对路径包名路径中的-kR0ovWl9eoU_yh0jPJ9caQ是 Android 为每个应用随机生成的目录后缀每次安装都可能不同属于正常现象。从包名到 APK 路径pm path如果已经知道目标包名可以直接查询其安装路径。下面的结果与上面-3 -f输出中该包的记录完全一致$ adb shell pm path sg.vp.owasp_mobile.omtg_android package:/data/app/sg.vp.owasp_mobile.omtg_android-kR0ovWl9eoU_yh0jPJ9caQ/base.apk拿到路径后即可用adb pull将 APK 提取到本地工作目录这正是 MASTG-TECH-0003Obtaining and Extracting Apps中从设备提取应用包一节的标准三步流程adb shell pm list packages # 1. 找到包名 adb shell pm path package name # 2. 获取 APK 完整路径 adb pull apk path # 3. 拉取到本地关于adb pull的批量传输能力例如整目录拉取可进一步参考 MASTG-TECH-0002Host-Device Data Transfer。进阶与 aapt / dumpsys 联动定位包名之后测试用例中常用它对 APK 做进一步审计用 aapt 查看 APK 声明的权限aapt d permissions app-x86-debug.apk工具位于 Android SDK 的 build-tools 目录用adb shell dumpsys package 包名 | grep permission查看已安装包的权限授予状态分为declared permissions、requested and install permissions、runtime permissions三类。这两个联动操作在 MASTG-TEST-0024 中有完整示例而该测试明确把pm list packages -f | grep -i keyword作为前置步骤引用本技巧可见枚举包名是整个权限审计链的起点。方法二使用 frida-ps 枚举应用与进程如果你的测试环境已经安装了 Frida本地通过pip install frida-tools安装设备端运行 frida-server详见 MASTG-TOOL-0031 与 MASTG-TOOL-0001那么frida-ps是比pm信息更丰富的一条枚举路径。frida-ps 参数速查参数含义-U连接当前通过 USB或模拟器连接的设备-a只列出应用Applications即面向用户的 App 及其进程-i包含已安装但当前未运行的应用-D id指定某个设备配合frida-ls-devices查看设备 ID组合-Uai即可在 USB 设备上同时看到正在运行的应用进程与已安装但未运行的应用$ frida-ps -Uai PID Name Identifier ----- ---------------------------------------- --------------------------------------- 766 Android System android 21228 Attack me if u can sg.vp.owasp_mobile.omtg_android 4281 Termux com.termux - Uncrackable1 sg.vantagepoint.uncrackable1输出四列含义如下PID进程 ID。正在运行的应用有具体数字未运行的应用显示-Name设备上显示的应用名称例如Attack me if u can、Uncrackable1Objection 等工具可以直接用它附加Identifier即包名/应用 ID是与pm list packages输出互相印证的稳定标识。与 pm 输出对照验证对比两种方法的输出可以发现frida-ps -Uai中的sg.vp.owasp_mobile.omtg_android显示名Attack me if u can与pm list packages中的package:sg.vp.owasp_mobile.omtg_android完全一致Uncrackable1对应sg.vantagepoint.uncrackable1即 MASTG 官方 CrackmesCrackmes/Android 与 iOS 的 UnCrackable 系列中的应用标识。两条独立路径交叉验证可以确保你锁定的目标包名没有拼写错误。为什么要记录 PID 与 Identifier本技巧原文特别强调记下 Identifier 以及如果存在的PID后续会用到。原因从源码工具的使用方式中可以看得很清楚Identifier 用于进程定位Frida 工具链frida、frida-trace普遍接受包名作为目标参数例如frida -U com.android.chrome、frida-trace -U com.android.chrome -i open见 MASTG-TOOL-0001。包名在应用每次启动时保持不变PID 是瞬态值应用每次重新启动 PID 都会变化因此不建议把 PID 作为长期使用的定位依据仅用于此刻正在运行的即时附加Name 用于交互式工具Objection 支持objection -n Attack me if u can start这样的进程名连接方式见 MASTG-TOOL-0029所以显示名同样值得保留。一个典型的动态分析开局流程是# 1. 枚举目标 $ frida-ps -Uai | grep -i owasp 21228 Attack me if u can sg.vp.owasp_mobile.omtg_android # 2. 用包名附加或启动进程 $ frida -U sg.vp.owasp_mobile.omtg_android # 附加到运行中的进程 $ frida -U -f sg.vp.owasp_mobile.omtg_android # 冷启动spawn并插桩两条路径如何选择场景推荐方法理由无 Frida 环境、纯 adb 静态分析pm list packages -3 -fpm path零依赖且直接给出 APK 路径衔接adb pull确认包名与 APK 安装路径pm path 包名最精确的单包查询动态插桩前定位目标进程frida-ps -Uai同时给出 Name / Identifier / PID 三要素交叉验证包名正确性两种方法对照输出互相独立可防止识别错误目标如果设备不可 root 又想用 Frida 做动态分析还可以参考 MASTG-TOOL-0029 中基于 Objection 对 APK 重打包嵌入 frida-gadget的方案此时你仍然需要先用pm list packages或frida-ps确认包名才能对重打包后的 APK 进行安装与启动验证。小结adb shell pm list packages是 Android 原生的包枚举命令-3 -f组合可过滤第三方应用并附带 APK 路径pm path 包名可单独查询安装路径二者衔接adb pull即构成 MASTG-TECH-0003 的 APK 提取流程frida-ps -Uai以应用视角枚举已安装应用额外提供 Name 与 PID可直接衔接frida、frida-trace、Objection 的动态插桩工作流记录 Identifier 与 PID 是后续所有测试步骤的前提包名用于稳定定位PID 仅代表当下运行状态本技巧同时是 MASTG-TEST-0024 等测试用例的前置步骤掌握它即可顺利进入权限审计、APK 逆向、Frida 插桩等后续 MASTG 测试环节。赞分享文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载相关推荐OWASP MASTG 技术指南枚举与提取 Android 应用运行时已加载的 Native 库MASTG-TECH-0029OWASP MASTG 技术指南枚举与提取 Android 应用运行时已加载的 Native 库MASTG TECH 0029 本文是 OWASP MAS文档教程网络安全ZhiHuDaily-React-Native样式与动画实现Flex布局与原生动画的完美结合ZhiHuDaily React Native样式与动画实现Flex布局与原生动画的完美结合 ZhiHuDaily React Native是一款使用ReacOWASP MASTG 实战用 Frida 验证 iOS 应用的虚拟设备检测逻辑MASTG-DEMO-0131OWASP MASTG 实战用 Frida 验证 iOS 应用的虚拟设备检测逻辑MASTG DEMO 0131 本文基于 demos/ios/MASVS文档教程网络安全上一篇LSPatch终极实战指南高效排查无Root环境Xposed框架常见问题下一篇urllib3 使用指南Python HTTP 客户端安装、连接池、超时重试与避坑实践创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表