| name | conducting-mobile-application-penetration-test |
| description | 对 Android 和 iOS 应用执行移动应用渗透测试,使用 Frida、Objection 和 MobSF 识别不安全的数据存储、证书固定绕过、API 漏洞、二进制保护缺陷和运行时操控问题。 |
| domain | cybersecurity |
| subdomain | penetration-testing |
| tags | ["mobile-pentest","Android","iOS","Frida","Objection","MobSF","OWASP-MASTG","certificate-pinning","APK-analysis"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
执行移动应用渗透测试
概述
移动应用渗透测试遵循 OWASP 移动应用安全测试指南(MASTG)和移动应用安全验证标准(MASVS),评估 Android 和 iOS 应用的安全性。测试涵盖应用二进制文件的静态分析、动态运行时分析、API 通信安全、数据存储评估和逆向工程抵抗力。
前置条件
- 应用 APK/IPA 文件或 TestFlight/Play Store 访问权限
- 已 Root 的 Android 设备或模拟器(Genymotion、Android Studio AVD)
- 已越狱的 iOS 设备或 Corellium 云实例
- 工具:Frida、Objection、MobSF、Jadx、Burp Suite、adb、Ghidra
- OWASP MASTG 检查清单
Android 测试
静态分析
jadx -d output_dir target.apk
grep -rn "api_key\|secret\|password\|token\|firebase" output_dir/sources/
grep -i "exported\|debuggable\|allowBackup\|android:permission" output_dir/resources/AndroidManifest.xml
curl -F "file=@target.apk" http://localhost:8000/api/v1/upload \
-H "Authorization: <api_key>"
cat output_dir/resources/res/xml/network_security_config.xml
find output_dir/resources/lib -name "*.so" -exec strings {} \; | grep -i "key\|secret"
动态分析
adb install target.apk
adb push frida-server /data/local/tmp/
adb shell chmod 755 /data/local/tmp/frida-server
adb shell /data/local/tmp/frida-server &
objection -g com.target.app explore
android hooking list activities
android hooking list services
android root disable
android sslpinning disable
android keystore list
android hooking search classes SharedPreferences
android clipboard monitor
env
ls /data/data/com.target.app/
file download /data/data/com.target.app/shared_prefs/
file download /data/data/com.target.app/databases/
数据存储测试
adb shell cat /data/data/com.target.app/shared_prefs/*.xml
adb pull /data/data/com.target.app/databases/app.db
sqlite3 app.db ".dump" | grep -i "password\|token\|session"
adb shell ls /sdcard/Android/data/com.target.app/
adb logcat -d | grep -i "token\|password\|session\|api_key"
adb backup -apk -shared com.target.app -f backup.ab
java -jar abe.jar unpack backup.ab backup.tar
tar xf backup.tar
网络流量分析
objection -g com.target.app explore
android sslpinning disable
frida -U -f com.target.app -l ssl_pinning_bypass.js --no-pause
apktool d target.apk -o decompiled/
apktool b decompiled/ -o patched.apk
jarsigner -keystore my.keystore patched.apk alias_name
iOS 测试
静态分析
python3 dump.py com.target.app
Clutch -d com.target.app
class-dump -H TargetApp -o headers/
grep -rn "password\|token\|secret\|apiKey" headers/
plutil -p Payload/TargetApp.app/Info.plist
grep -i "http://" headers/*.h
grep -i "NSAllowsArbitraryLoads" Payload/TargetApp.app/Info.plist
动态分析(iOS)
frida -U -f com.target.app -l ios_bypass.js --no-pause
objection -g com.target.app explore
ios sslpinning disable
ios jailbreak disable
ios keychain dump
ios plist cat NSUserDefaults
ios cookies get
ios nsurlcredentialstorage dump
objection -g com.target.app explore --startup-command 'ios keychain dump'
objection -g com.target.app explore --startup-command 'ios info binary'
API 测试
OWASP MASVS 检查清单
| 类别 | 测试项 | 状态 |
|---|
| MASVS-STORAGE-1 | 系统日志中的敏感数据 | [ ] |
| MASVS-STORAGE-2 | 备份中的敏感数据 | [ ] |
| MASVS-STORAGE-3 | IPC 中的敏感数据 | [ ] |
| MASVS-CRYPTO-1 | 适当的密码学 API | [ ] |
| MASVS-AUTH-1 | 本地认证绕过 | [ ] |
| MASVS-NETWORK-1 | 使用受信任 CA 的 TLS | [ ] |
| MASVS-NETWORK-2 | 证书固定 | [ ] |
| MASVS-PLATFORM-1 | 导出组件已安全保护 | [ ] |
| MASVS-CODE-1 | 代码混淆 | [ ] |
| MASVS-RESILIENCE-1 | Root/越狱检测 | [ ] |
参考资料