关于 android-pentest
android-pentest 是面向 Android 应用安全评估的工作流技能,适用于进行 MASTG 测试的安全人员。它按需引导静态与动态分析,并提供检查流程、Frida 脚本和结构化报告规范。
主要功能
- 01按需加载评估流程与参考资料
- 02静态分析与 Frida 动态检测
- 03检查存储、网络和应用组件
- 04提供 MASTG 检查清单与映射
- 05按结构化规范整理发现
适用场景
- 01评估 Android 应用并映射 MASVS
- 02检查 SSL 固定、Root 检测和认证
- 03提取本地存储并检查敏感数据
- 04测试导出组件、深层链接与 Intent
MCP 相关
该技能通过 Android Dynamic MCP 与 Mobile MCP 指引设备操作、Frida 检测和界面交互。文档列出了可供 MCP 客户端调用的设备、网络、数据提取及组件测试工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hardw00t/ ai-security-arsenal --skill android-pentest安装后在 Claude Code 中输入/android-pentest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
checklists/owasp_mastg_full.mdpre_engagement.mdquick_wins.mdreport_items.mdexamples/auth_bypass.mddata_storage_investigation.mdnew_assessment.mdmethodology/auth_testing.mdclient_side_injection.mdcrypto_testing.mddata_storage.mddynamic_analysis.mdnetwork_testing.mdrecon.mdstatic_analysis.mdpayloads/intent_injection.txtpath_traversal.txtsql_injection.txtxss_payloads.txtxxe_payloads.txtreferences/android_security_checklist.mdbounty_patterns_2024_2026.mdfrida_snippets.mdowasp_mobile_top10.mdtroubleshooting.mdreporting/evidence_collector.pyfinding_schema.jsonremediation_db.jsonreport_generator.pyseverity_calculator.py详细介绍
Android 移动应用渗透测试
通过 ADB + Frida + Mobile MCP 进行符合 MASTG 的 Android 评估的轻量路由器。按需加载工作流 / 方法论 / 参考文件;不要尝试一开始就记住整个技能。
适用场景
- 开始新的 Android 应用安全评估
- 绕过 SSL 固定、Root 检测、防篡改或生物识别检查
- 提取 / 分类本地存储(SharedPreferences、数据库、文件、日志)
- 测试导出的活动、服务、提供程序、接收器和深层链接
- 在运行时 Hook 加密、身份验证、会话或密钥库
- 将构建版本映射到 OWASP MASVS / MASTG,以提供合规证据
- 生成结构化发现和修复建议
触发短语
“渗透测试这个 Android 应用” • “对这个 APK 进行安全测试” • “绕过 的 SSL 固定” • “从 提取数据” • “测试 Android 身份验证” • “模糊测试 Android Intent” • “对 进行 MASTG 测试” • “移动应用安全评估”
不适用场景
- iOS 应用 → 使用
ios-pentest(如果可用)或通用移动技能 - 对移动后端进行服务端 API 模糊测试 → 使用
api-security/web-pentest - 为事件响应反编译 Android 恶意软件 → 使用
malware-analysis,而非这个专注于渗透测试的技能 - 第三方 SDK 的供应链 / SCA → 使用
sca/dependency-audit - 移动应用的云后端 → 使用
cloud-pentest
决策树
Do you have the APK or only package name?
├─ package only → get_app_info + pull_apk (parallel), then branch on protections
└─ APK on disk → static analysis first (jadx, apktool), then dynamic
└─ App runs? → frida_spawn → bypass_ssl → bypass_root → proxy
└─ App crashes on root? → see references/troubleshooting.md (Root detection)
└─ TLS still not decrypted? → workflows/ssl_pinning_bypass.md Methods 2→3
What's the objective?
├─ Full assessment → workflows/complete_assessment.md
├─ SSL pinning only → workflows/ssl_pinning_bypass.md
├─ Auth / session → workflows/auth_testing.md
├─ Deep links / IPC / fuzz → workflows/deeplink_intent_testing.md
├─ Crypto audit → workflows/crypto_analysis.md
└─ Data storage / exfil → workflows/data_exfiltration.md
并行执行提示
并发运行(相互独立,使用同一设备):
get_app_info+pull_apk+list_exported_componentsdump_databases+dump_shared_prefs+dump_internal_storage+dump_external_storage+get_logcat- 针对同一 PID 多次调用
frida_run_script(crypto_hooks.js ∥ credential_hooks.js ∥ intent_monitor.js) - 静态 APK 分析(反编译、秘密扫描)∥ 动态运行时 Hook
必须按顺序执行:
frida_spawn→frida_bypass_ssl→frida_bypass_root(脚本需要 PID,并且必须在应用完成保护初始化前附加)- 在任何流量捕获或网络工作流开始前执行
setup_proxy - 在新设备上先执行
install_ca_cert,再执行setup_proxy capture_traffic_start→ 操作应用 →capture_traffic_stop
子 Agent 委派
- 对拉取的 APK 启动静态分析子 Agent(jadx 反编译 → 搜索秘密 → 检查清单 → 清点原生库),同时由主 Agent 运行动态 Frida Hook。报告前汇总结果。
- 对多个导出组件进行模糊测试时,按组件启动子 Agent:每个 Agent 负责一批 activity / provider / service,并使用自己的 Frida PID 和 logcat 过滤器。避免 Hook 状态相互干扰。
- 主测试完成后,启动报告子 Agent,将发现规范化为
schemas/finding.json并渲染模板。
推理预算
- 扩展思考(高):基于证据对发现进行分类、判定严重程度、编写 CWE/MASTG 映射、为混淆类设计自定义 Frida Hook、对原生 SSL 固定路径进行逆向工程。
- 低 / 无扩展思考:重复运行 Frida Hook、标准转储、现成载荷模糊测试、应用通用 SSL 绕过、调用已知 MCP 工具序列。
- 不要浪费 Token 去推理应该先尝试哪种通用绕过方式——直接运行
frida_bypass_ssl(pid),失败后再升级处理。
多模态 Hook
- 对于由 UI 驱动的身份验证流程(生物识别提示、OAuth 重定向、MFA 步骤),使用 Mobile MCP
get_screen_state+ 截图。将截图作为发现中的evidence.screenshot附加。 - 在绕过成功时截取屏幕(例如,模拟生物识别后显示已验证身份的主屏幕)——可视化证据有助于加强严重程度说明。
- 对于深层链接复现,截取触发后的 activity,以证明可以到达非预期状态。
结构化输出
所有发现都必须通过 schemas/finding.json 的验证。Android 专属的必需/常见字段:
package_name、app_version、target_sdk、device_id、frida_pid、mastg_id、masvs_control、component.{type,class_name,exported}、evidence.{logcat,frida_output,screenshot,pcap}。
工作流索引
| 工作流 | 适用场景 |
|---|---|
| workflows/complete_assessment.md | 端到端 MASTG 测试 |
| workflows/ssl_pinning_bypass.md | 启用 TLS 拦截 |
| workflows/auth_testing.md | 登录、会话、生物识别、JWT |
| workflows/deeplink_intent_testing.md | IPC 模糊测试、深层链接、内容提供程序 |
| workflows/crypto_analysis.md | 弱加密算法、硬编码密钥、密钥库 |
| workflows/data_exfiltration.md | 本地存储和 logcat 泄露 |
方法论索引
| 文档 | 覆盖范围 |
|---|---|
| methodology/recon.md | 信息收集、攻击面映射 |
| methodology/static_analysis.md | APK/smali/机密信息审查 |
| methodology/dynamic_analysis.md | 运行时 Hook、插桩 |
| methodology/network_testing.md | 流量、API、TLS 验证 |
| methodology/data_storage.md | 本地存储、数据库、文件权限 |
| methodology/crypto_testing.md | 加密和密钥管理 |
| methodology/auth_testing.md | 身份验证、会话、生物识别 |
| methodology/client_side_injection.md | WebView、深层链接、内容提供程序 |
载荷索引
| 文件 | 用途 |
|---|---|
| payloads/intent_injection.txt | Intent/IPC 模糊测试输入 |
| payloads/path_traversal.txt | 文件/内容提供程序路径逃逸 |
| payloads/sql_injection.txt | 内容提供程序 SQL 注入 |
| payloads/xss_payloads.txt | WebView XSS |
| payloads/xxe_payloads.txt | 应用内 XML 解析器 |
示例索引
| 示例 | 场景 |
|---|---|
| examples/new_assessment.md | 新目标的启动蓝图 |
| examples/data_storage_investigation.md | 枚举本地敏感数据 |
| examples/auth_bypass.md | 生物识别/会话/JWT 绕过 |
参考资料索引
| 文档 | 覆盖范围 |
|---|---|
| references/owasp_mobile_top10.md | OWASP Mobile Top 10 映射 |
| references/android_security_checklist.md | 测试清单 |
| references/frida_snippets.md | 可复用的 Frida 单行命令 |
| references/troubleshooting.md | Frida/SSL/root/ADB/SQLCipher 修复方法 |
| references/bounty_patterns_2024_2026.md | 2023 年之后的赏金计划 TTP(深层链接劫持/App-Links 绕过、WebView 深层链接 XSS、未受保护的广播接收器泄露) |
检查清单
| 文件 | 用途 |
|---|---|
| checklists/owasp_mastg_full.md | 完整的 MASTG 合规性检查 |
| checklists/quick_wins.md | 快速漏洞扫描 |
| checklists/pre_engagement.md | 环境设置验证 |
| checklists/report_items.md | 报告完整性检查 |
模板
| 模板 | 用途 |
|---|---|
| templates/finding_template.md | 单项发现文档 |
| templates/executive_summary.md | 管理层摘要 |
| templates/technical_report.md | 完整技术报告 |
| templates/remediation_guide.md | 面向开发者的修复指南 |
MCP 工具参考
设备交互
| 工具 | 用途 |
|---|---|
get_screen_state() | 当前屏幕 / UI 树 |
tap_element(x,y) / long_press(x,y) | 点击 / 长按 |
input_text(text) | 在聚焦的字段中输入文本 |
press_key(keycode) | BACK=4 HOME=3 ENTER=66 |
swipe(x1,y1,x2,y2) | 滚动、图案解锁 |
Frida 插桩
| 工具 | 用途 |
|---|---|
frida_spawn(pkg) / frida_attach(pkg) | 启动或附加 |
frida_run_script(pid, script) | 加载 JS 钩子 |
frida_bypass_ssl(pid) / frida_bypass_root(pid) | 通用绕过 |
frida_hook_method(pid, class, method) | 跟踪单个方法 |
frida_trace_crypto(pid) / frida_dump_credentials(pid) | 预置跟踪 |
frida_enumerate_classes(pid, pattern) | 在混淆情况下发现类 |
frida_memory_search(pid, pattern) | 在进程内存中查找机密 / 密钥 |
网络
| 工具 | 用途 |
|---|---|
setup_proxy(device, host, port) / clear_proxy(device) | 配置代理 |
install_ca_cert(device, path) | 信任 Burp CA(系统存储) |
capture_traffic_start(pkg) / capture_traffic_stop() | PCAP |
数据提取
| 工具 | 用途 |
|---|---|
dump_databases(pkg) / dump_shared_prefs(pkg) | SQLite + 偏好设置 |
dump_internal_storage(pkg) / dump_external_storage(pkg) | 文件 |
get_logcat(pkg) | 按包筛选的日志 |
组件
| 工具 | 用途 |
|---|---|
list_exported_components(pkg) | 攻击面 |
launch_activity(pkg, activity, extras, data_uri) | 深层链接 / Intent |
send_broadcast(action, extras) | 广播注入 |
start_service(pkg, service, extras) | 滥用服务 |
query_content_provider(uri) | Provider SQLi / 信息泄露 |
fuzz_intent_extra(pkg, comp, key, payloads) | 自动化模糊测试 |
应用管理
| 工具 | 用途 |
|---|---|
install_apk(path) / uninstall_app(pkg) | 部署 / 移除 |
clear_app_data(pkg) | 重置为初始状态 |
get_app_info(pkg) | 元数据、权限、SDK |
list_installed_apps() / pull_apk(pkg) | 发现 / 提取 |
Frida 脚本库(scripts/)
ssl_pinning_bypass.js、root_bypass.js、crypto_hooks.js、credential_hooks.js、network_hooks.js、biometric_bypass.js、anti_tampering_bypass.js、intent_monitor.js、webview_hooks.js、dynamic_dex_hooks.js、keystore_hooks.js、method_tracer.js。
工具
| 工具 | 用途 | 安装 |
|---|---|---|
| ADB | 设备通信 | apt install adb(Android SDK platform-tools) |
| Frida / frida-tools | 动态插桩 | pip install frida-tools(≥16.4) |
| Objection | 移动端探索 | pip install objection |
| apktool | APK 反编译 | apt install apktool(≥2.9) |
| jadx | Java 反编译 | github.com/skylot/jadx releases(≥1.5) |
| Burp Suite | 流量拦截 | portswigger.net |
| Android Studio | 模拟器、SDK | developer.android.com |
配置脚本:setup/setup_pentest_env.sh、setup/setup_physical_device.sh、setup/setup_emulator.py、setup/frida_server_manager.py、setup/burp_cert_installer.sh、setup/check_environment.py。
预期使用的 MCP 服务:android-pentest(Android Dynamic MCP)、mobile-mcp(用于 UI 的 mobile-next)。在 ~/.claude/mcp.json 中配置。
相关资源
Last Validated
2026-04 — minimum versions: Frida ≥16.4, apktool ≥2.9, jadx ≥1.5, Android platform-tools ≥35.