news 2026/9/12 4:25:50

移动应用渗透测试实战指南:基于 Anthropic Cybersecurity Skills 的 OWASP MASTG 移动端安全评估

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
移动应用渗透测试实战指南:基于 Anthropic Cybersecurity Skills 的 OWASP MASTG 移动端安全评估

移动应用渗透测试实战指南:基于 Anthropic Cybersecurity Skills 的 OWASP MASTG 移动端安全评估

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

本指南以 conducting-mobile-app-penetration-test 技能文档为核心,系统讲解如何对 iOS 与 Android 移动应用开展遵循 OWASP Mobile Application Security Testing Guide(MASTG)的全流程渗透测试,覆盖静态分析、网络通信安全、本地数据存储、认证与会话管理、运行时动态操纵五大环节,并结合仓库内配套脚本与 API 参考(scripts/agent.py、references/api-reference.md)展示自动化取证与验证方法。读完本文,你将掌握一套可复制、可运行、可产出规范报告的移动应用安全评估方案,并理解各步骤背后的工具链原理与常见坑点。

适用场景(When to Use)

该技能面向以下典型需求激活:

  • 移动应用发布前安全测试,提前暴露数据保护与身份验证缺陷;
  • 依据 OWASP MASVS(Mobile Application Security Verification Standard)L1/L2 级别开展合规评估;
  • 评估处理敏感数据的移动银行、医疗或政务应用的安全性;
  • 测试与后端 API 交互的移动应用,评估移动生态端到端安全;
  • 评估移动应用对逆向工程、篡改和运行时操纵的抵抗能力。

法律红线:未经应用所有者书面授权,禁止对该技能列出的任何目标开展测试;禁止分发修改或重新打包的应用;禁止绕过正式测试渠道直接对公共应用商店中的应用进行测试。该技能仅用于授权安全测试和教育目的,未经授权使用可能违反计算机欺诈相关法律。

前置条件(Prerequisites)

开始测试前需准备以下环境:

  • 目标应用安装包:iOS 的 IPA 文件与 Android 的 APK 文件,或可访问私有分发渠道进行下载;
  • Android 侧:已 Root 的实体设备或模拟器(Genymotion、Android Studio AVD),并安装 Frida、Objection 与 Magisk;
  • iOS 侧:已越狱设备或 Corellium 虚拟设备,并安装 Frida、Objection 与 SSL Kill Switch;
  • 静态分析工具:jadx(Android 反编译)、Hopper/Ghidra(iOS 二进制分析)、MobSF(自动化扫描);
  • Burp Suite Professional 配置为代理以拦截移动应用流量,并在测试设备上安装其 CA 证书。

工作流(Workflow)

完整的测试流程分为五个步骤:静态分析 → 网络安全测试 → 数据存储分析 → 认证与会话管理 → 运行时操纵。

Step 1:静态分析(Static Analysis)

在不执行二进制的情况下分析应用代码与配置,是快速建立攻击面的第一步。

Android 静态分析:

  1. 使用 jadx 反编译 APK 获取 Java/Kotlin 源码:
    jadx -d output/ target.apk
  2. 审查AndroidManifest.xml:重点检查导出的组件(Activity、Service、Receiver、Content Provider)、权限声明以及debuggable标志位;
  3. 搜索硬编码密钥与凭证:
    grep -rn "api_key\|password\|secret\|token\|aws_" output/
  4. 识别不安全的本地数据存储模式:SharedPreferences 中保存敏感数据、未加密的 SQLite 数据库、外部存储中的文件;
  5. 检查 WebView 漏洞:setJavaScriptEnabled(true)addJavascriptInterface()以及加载不可信内容;
  6. 运行 MobSF 自动化扫描:python manage.py runserver后上传 APK 进行自动化静态分析。

iOS 静态分析:

  1. 解包 IPA 并定位 Mach-O 二进制;
  2. 使用otool -L <binary>列出链接的框架,识别第三方库;
  3. 使用 Ghidra 或 Hopper 分析硬编码的 URL、API 端点和内嵌凭证;
  4. 检查 Info.plist 中允许不安全 HTTP 连接的 App Transport Security(ATS)例外;
  5. 审查内嵌的 entitlements,确认是否存在过度授权。

Step 2:网络安全测试(Network Security Testing)

拦截并分析所有网络通信,是验证传输层安全的关键环节:

  • 在测试设备上配置 Burp Suite 为代理并安装 Burp CA 证书;
  • 在 Burp 抓包的同时完整走一遍应用所有功能,收集 API 流量;
  • SSL/TLS 校验验证:确认应用是否正确校验服务器证书。若应用通过代理连接失败,很可能实现了证书固定(Certificate Pinning);
  • 证书固定绕过
    • Android:使用 Frida 脚本:
      frida -U -f com.target.app -l ssl-pinning-bypass.js --no-pause
    • iOS:使用 SSL Kill Switch 或 Objection:
      objection -g "Target App" explore --startup-command "ios sslpinning disable"
  • API 流量分析:逐一审查所有 API 调用,重点检查:
    • 未加密传输的敏感数据;
    • URL 参数中的认证令牌(会暴露在日志中);
    • API 响应中超出 UI 展示范围的过量数据;
    • API 端点缺失或弱认证;
  • WebSocket 与自定义协议:检查是否存在可绕过标准代理拦截的非 HTTP 通信通道。

Step 3:数据存储分析(Data Storage Analysis)

测试本地数据存储是否安全:

Android 数据存储:

  1. 访问应用数据目录:/data/data/com.target.app/
  2. 检查 SharedPreferences XML 文件中是否存储凭证、令牌和 PII;
  3. 检查 SQLite 数据库:
    sqlite3 /data/data/com.target.app/databases/*.db ".dump"
  4. 检查应用日志中的敏感数据:
    logcat -d | grep -i "password\|token\|key"
  5. 验证应用数据是否被排除在备份之外:AndroidManifest.xml 中应设置android:allowBackup="false"
  6. 检查剪贴板是否有敏感数据泄露。

iOS 数据存储:

  1. 检查 Keychain 中存储的凭证:
    objection -g "Target App" explore # 进入 REPL 后执行 ios keychain dump
  2. 检查 NSUserDefaults/plist 文件:
    find /var/mobile/Containers/Data/Application/ -name "*.plist" -exec plutil -p {} \;
  3. 检查 SQLite 数据库和 Core Data 存储中是否有未加密的敏感数据;
  4. 检查应用退到后台时 iOS 自动截屏是否导致数据泄露;
  5. 验证数据保护级别:敏感文件应使用NSFileProtectionComplete

Step 4:认证与会话管理(Authentication and Session Management)

测试移动端特有的认证控制:

  • 生物识别绕过:使用 Frida 挂钩认证回调并强制其始终返回成功,测试生物识别认证是否可被绕过;
  • 令牌存储:验证认证令牌存储在 iOS Keychain 或 Android Keystore 中,而非 SharedPreferences 或普通文件;
  • 会话超时:验证会话在合理的空闲超时后过期,且登出时令牌在服务端失效;
  • Root/越狱检测绕过:测试应用是否检测 Root/越狱设备,并验证检测逻辑能否被 Frida 或 Magisk Hide 绕过;
  • Deep Link 滥用:测试自定义 URL Scheme 或 Universal Links 是否可绕过认证或访问受限功能。

Step 5:运行时操纵(Runtime Manipulation)

测试应用对运行时攻击的抵抗能力:

  • Frida 挂钩:使用 Frida 在运行时挂钩并修改应用函数:
    • 绕过 Root 检测:挂钩检测函数使其返回 false;
    • 修改认证检查的返回值;
    • 拦截加密函数,在加密前捕获明文数据;
    • 挂钩 SSL 验证逻辑绕过证书固定;
  • 方法交换(iOS):使用 Frida 替换 Objective-C 方法实现;
  • Intent 操纵(Android):向导出的组件发送构造好的 Intent:
    adb shell am start -n com.target.app/.InternalActivity -e "user_id" "admin"
  • 篡改检测:修改 APK/IPA(添加代码、更改资源)、重新签名并安装,验证应用是否检测到篡改。

关键概念(Key Concepts)

术语定义
OWASP MASTG移动应用安全测试指南(Mobile Application Security Testing Guide),覆盖 iOS 与 Android 双平台的应用安全测试综合手册
证书固定(Certificate Pinning)限制应用信任的 TLS 证书集合的安全控制,可防止通过代理拦截实施的中间人攻击
Frida动态插桩工具包,允许向运行中的进程注入 JavaScript,以挂钩函数、修改行为并绕过安全控制
Root/越狱检测应用内检测设备是否被修改获得 Root 权限的检查机制,通常在受损设备上阻止应用使用
Android KeystoreAndroid 上基于硬件的凭证存储,即使在 Root 设备上也能保护加密密钥和机密不被提取
App Transport Security(ATS)iOS 默认强制 HTTPS 连接的安全特性;ATS 例外可能意味着不安全的网络通信
Deep Links打开移动应用内特定页面的 URL Scheme,若校验不严可能绕过正常导航和认证流程

工具与系统(Tools & Systems)

  • Frida / Objection:动态插桩工具,用于挂钩函数、绕过安全控制并操纵应用运行时行为;
  • MobSF(Mobile Security Framework):面向 Android 和 iOS 应用的自动化静态与动态分析平台;
  • jadx:Android 反编译器,将 APK 字节码转换为可读的 Java 源码供人工代码审计;
  • Burp Suite Professional:HTTP 代理,在绕过证书固定后用于拦截和修改移动应用 API 流量。

实战场景:移动银行应用安全评估

背景:某银行即将发布同时覆盖 iOS 与 Android 的移动银行应用,功能包括账户查看、转账、账单支付和支票存款。由于涉及金融数据,需满足 OWASP MASVS L2 合规要求。

评估路径

  1. 对 Android APK 进行静态分析,发现 API 端点、硬编码的暂存服务器 URL 以及配置文件中的 AWS API Key;
  2. 应用实现了证书固定,但通过 Frida SSL 固定绕过脚本成功绕过;
  3. API 流量分析发现,余额查询端点返回了与该用户关联的所有账户号码,而不仅是请求的账户;
  4. 本地数据存储分析发现,应用将最近 10 笔交易缓存在未加密的 SQLite 数据库中;
  5. 生物识别认证绕过:Frida 挂钩生物识别回调使其始终返回成功,无需指纹即可获得访问权限;
  6. Root 检测存在,但被 Magisk Hide 模块绕过,使应用能在 Root 设备上运行并完全访问数据。

常见坑点(Pitfalls)

  • 仅在模拟器上测试,遗漏了硬件级安全特性(Android Keystore 硬件支撑、iOS Secure Enclave);
  • 未同时测试 iOS 和 Android 两个版本——两者可能实现不同、漏洞不同;
  • 因为"已单独测试"而忽略后端 API 安全——移动应用调用 API 的方式可能与 Web 应用不同;
  • 未测试证书固定绕过,导致网络分析不完整。

源码级支撑:自动化测试代理(scripts/agent.py)

仓库为该技能配套了可运行的 Python 自动化代理,将上述手工流程的关键环节固化为可重复执行的功能函数(详见 references/api-reference.md)。从源码结构看,它围绕"发现 → 验证 → 出报告"组织测试任务:

  • decompile_apk(apk_path, output_dir):调用apktool d -o -f反编译 APK 的 smali 代码与资源,作为静态分析入口;
  • extract_strings_from_apk(apk_path):对 APK 二进制执行strings,按api_keypasswordsecrettokenhttp://aws_accessprivate_key等模式统计敏感字符串数量,对应 SKILL.md 中手工 grep 硬编码凭证的步骤;
  • check_android_manifest(manifest_path):扫描android:debuggable="true"android:allowBackup="true"android:exported="true"android:usesCleartextTraffic="true"等危险配置,并在缺少android:networkSecurityConfig时告警"可能信任用户安装的 CA"——这与 Step 3 中allowBackup="false"的核查点完全对应;
  • test_certificate_pinning(target_url):通过代理环境下的请求探测(requests.get(..., verify=False))判断证书固定是否生效——若代理开启时仍返回 200,说明未强制证书固定;
  • check_insecure_storage_adb():通过adb shell run-as检查 shared_prefs、databases 与外部存储/sdcard/Android/data/<pkg>/,其中外部存储发现判为 High 严重级;
  • test_api_endpoints(base_url, endpoints, auth_token):对比带认证令牌与不带认证令牌的响应(默认探测/api/v1/user/profile/api/v1/users/api/v1/settings/api/v1/admin),若两者均返回 200 则标记auth_bypass=True且严重级为 Critical——对应 Step 2 中"API 端点缺失或弱认证"的检查;
  • check_root_detection(package_name):通过pm dump检索rootbeerrootdetectsafetynetintegritytamper等 Root 检测库特征;
  • generate_report(...):汇总上述发现,输出 JSON 报告。

CLI 使用方式(仅限授权测试与实验环境):

python agent.py --apk target.apk --manifest AndroidManifest.xml \ --api-url https://api.target.com --auth-token <jwt> --output report.json

依赖要求:requests>=2.28(API 与证书固定测试)、apktool>=2.7(子进程调用反编译)、adb(Android 设备交互)。该脚本与 OWASP MASTG 类别的对应关系为:check_insecure_storage_adb→ MASVS-STORAGE 不安全数据存储,extract_strings_from_apk→ 硬编码凭证,test_certificate_pinning→ 证书固定,check_android_manifest→ 明文流量,test_api_endpoints→ API 授权,check_root_detection→ Root 检测。

输出格式(Output Format)

每次测试应产出标准化漏洞报告。以下为仓库定义的可直接套用的报告模板:

## Finding: Biometric Authentication Bypass via Frida Instrumentation **ID**: MOB-003 **Severity**: High (CVSS 7.7) **Platform**: Android and iOS **OWASP MASVS**: MASVS-AUTH-2 (Biometric Authentication) **Description**: The mobile banking app's biometric authentication can be bypassed using Frida dynamic instrumentation. The authentication callback function accepts a boolean result from the biometric API, which can be hooked and forced to return true without presenting a valid fingerprint or face scan. **Proof of Concept (Android)**: frida -U -f com.bank.mobileapp -l bypass-biometric.js --no-pause // bypass-biometric.js Java.perform(function() { var BiometricCallback = Java.use("com.bank.mobileapp.auth.BiometricCallback"); BiometricCallback.onAuthenticationSucceeded.implementation = function(result) { console.log("[*] Biometric bypassed"); this.onAuthenticationSucceeded(result); }; }); **Impact**: An attacker with physical access to an unlocked device can bypass biometric authentication and access the victim's bank accounts, initiate transfers, and view financial data without biometric verification. **Remediation**: 1. Implement server-side biometric verification using Android BiometricPrompt CryptoObject tied to a Keystore key 2. Require the biometric operation to decrypt a server-side challenge, making client-side bypass ineffective 3. Add runtime integrity checks to detect Frida and other instrumentation frameworks 4. Implement step-up authentication for high-risk operations (transfers > threshold)

报告应遵循类似结构:为每个发现提供唯一 ID、CVSS 严重级评分、受影响平台、对应的 OWASP MASVS 编号、现象描述、可复现的 PoC、攻击影响以及可落地的修复建议。同时可结合 脚本 自动生成的mobile_pentest_report.json(含sensitive_stringsmanifest_findingsstorage_findingsapi_securitycertificate_pinning字段)作为手工报告的补充证据链。

框架映射

该技能已在 YAML frontmatter 中完成多框架映射(见 SKILL.md),便于与组织安全流程对齐:MITRE ATT&CK 覆盖 T1426(系统信息发现)、T1409(凭据获取)、T1521.003(加密信道·对称加密)、T1633(敏感信息收集)、T1417(输入捕获)、T1422(应用层协议)等移动端技术;NIST CSF 2.0 对应 ID.RA-01、ID.RA-06、GV.OV-02、DE.AE-07;MITRE ATLAS 映射 AML.T0070、AML.T0066、AML.T0082;NIST AI RMF 对应 MEASURE-2.7、MAP-5.1、MANAGE-2.4。这意味着该技能不仅可用于渗透测试执行,还能直接支撑威胁建模、风险识别与安全态势评估流程。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 4:25:39

51单片机篮球计分器Proteus仿真与实物制作全攻略

简介&#xff1a;面向单片机学习者的51单片机篮球计分器课程设计资源&#xff0c;涵盖24秒倒计时、两队比分数码管显示和矩阵键盘加1、2、3分等核心功能&#xff0c;适合电子设计作业或练手。压缩包共34个文件&#xff0c;约827KB&#xff0c;含C源码、汇编程序、Keil工程、Pro…

作者头像 李华
网站建设 2026/9/12 4:22:38

lw.PPOCR.C:纯C实现的Java原生OCR运行时

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 4:17:57

p5.js 设计原则深度解析:从新手友好到 Processing 社区传承

p5.js 设计原则深度解析&#xff1a;从新手友好到 Processing 社区传承 【免费下载链接】p5.js p5.js is a client-side JS platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. It is based on…

作者头像 李华