skills/conducting-mobile-app-penetration-test/SKILL.md
遵循 OWASP 移动应用安全测试指南(MASTG)对 iOS 和 Android 移动应用执行渗透测试,识别数据存储、网络通信、认证、密码学和平台专属安全控制中的漏洞。测试人员对应用二进制文件进行静态分析、运行时动态分析和 API 安全测试,以评估完整的移动攻击面。
npx skillsauth add killvxk/cybersecurity-skills-zh conducting-mobile-app-penetration-testInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
不适用场景:未经应用程序所有者书面授权的移动应用测试、分发修改或重新打包的应用,或未使用单独测试构建版本测试公共应用商店中的应用。
在不执行应用的情况下分析应用二进制文件:
Android 静态分析:
jadx -d output/ target.apk 获取 Java/Kotlin 源代码AndroidManifest.xml 中的导出组件(Activity、Service、Receiver、Content Provider)、权限和可调试标志grep -rn "api_key\|password\|secret\|token\|aws_" output/setJavaScriptEnabled(true)、addJavascriptInterface() 和加载不受信任的内容python manage.py runserver 并上传 APK 进行自动化静态分析iOS 静态分析:
otool -L <binary> 列出链接的框架并识别第三方库拦截并分析所有网络通信:
frida -U -f com.target.app -l ssl-pinning-bypass.js --no-pauseobjection -g "Target App" explore --startup-command "ios sslpinning disable"测试不安全的本地数据存储:
Android 数据存储:
/data/data/com.target.app/sqlite3 /data/data/com.target.app/databases/*.db ".dump"logcat -d | grep -i "password\|token\|key"android:allowBackup="false"iOS 数据存储:
objection -g "Target App" explore,然后 ios keychain dumpfind /var/mobile/Containers/Data/Application/ -name "*.plist" -exec plutil -p {} \;测试移动端专属的认证控制:
测试应用对运行时攻击的抵抗力:
adb shell am start -n com.target.app/.InternalActivity -e "user_id" "admin"| 术语 | 定义 | |------|------------| | OWASP MASTG | 移动应用安全测试指南;涵盖 iOS 和 Android 平台的综合移动应用安全测试手册 | | 证书固定 | 限制应用信任的 TLS 证书的移动安全控制,防止通过代理拦截实施中间人攻击 | | Frida | 动态检测工具包,允许将 JavaScript 注入正在运行的进程,以挂钩函数、修改行为和绕过安全控制 | | Root/越狱检测 | 应用层面的检查,用于检测设备是否已被修改以授予 Root 访问权限,通常会阻止在已入侵设备上使用应用 | | Android Keystore | Android 上的硬件支持凭据存储,保护密钥和密钥免受提取,即使在 Root 设备上 | | App Transport Security(ATS) | iOS 安全功能,默认强制执行 HTTPS 连接;ATS 例外可能表示不安全的网络通信 | | 深度链接 | 打开移动应用内特定界面的 URL 方案,如果未正确验证,可能绕过正常导航和认证流程 |
背景:一家银行正在为 iOS 和 Android 推出新的移动银行应用。该应用处理账户查看、资金转账、账单支付和支票存款。由于处理金融数据,需要符合 OWASP MASVS L2 合规要求。
方法:
常见陷阱:
## 发现:通过 Frida 检测绕过生物特征认证
**ID**: MOB-003
**严重性**: 高(CVSS 7.7)
**平台**: Android 和 iOS
**OWASP MASVS**: MASVS-AUTH-2(生物特征认证)
**描述**:
移动银行应用的生物特征认证可以使用 Frida 动态检测绕过。
认证回调函数接受来自生物特征 API 的布尔结果,
可以被挂钩并强制返回 true,无需提供有效的指纹或人脸扫描。
**概念验证(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("[*] 生物特征已绕过");
this.onAuthenticationSucceeded(result);
};
});
**影响**:
拥有已解锁设备物理访问权限的攻击者可以绕过生物特征认证,
访问受害者的银行账户、发起转账并查看金融数据,
而无需生物特征验证。
**修复建议**:
1. 使用与 Keystore 密钥绑定的 Android BiometricPrompt CryptoObject 实施服务端生物特征验证
2. 要求生物特征操作解密服务端质询,使客户端绕过无效
3. 添加运行时完整性检查以检测 Frida 和其他检测框架
4. 对高风险操作(超过阈值的转账)实施升级认证
testing
设计并执行社会工程学渗透测试,包括钓鱼、语音钓鱼、短信钓鱼和物理借口活动,以衡量人员安全韧性并识别培训差距。
testing
主持结构化的事件后审查,以识别根本原因、记录有效和无效的措施,并提出可操作的改进建议以提升未来的事件响应能力。
testing
通过分析举报的邮件、提取指标、评估凭据受攻陷情况、在全组织范围隔离恶意邮件并修复受影响账号来响应网络钓鱼事件。涵盖邮件头分析、URL/附件沙箱检测和邮箱范围清除操作。适用于网络钓鱼响应、邮件事件、凭据钓鱼、鱼叉式网络钓鱼调查或钓鱼修复相关请求。
tools
票据传递(Pass-the-Ticket,PtT)是一种横向移动技术,使用窃取的 Kerberos 票据(TGT 或 TGS)在不知道用户密码的情况下向服务进行认证。通过从已控制的主机内存中提取 Kerberos 票据,攻击者可以将这些票据注入自己的会话以模拟票据所有者。