APP攻防-云真机Frida Hook信息提取
在移动应用渗透测试中,突破抓包限制后,下一步是深入分析应用行为、提取加密密钥、绕过更复杂的防护。Frida作为强大的动态插桩框架,结合云真机与自动化提取工具,可高效完成资产收集。本笔记从实战视角,系统梳理云真机使用、Frida环境搭建、Hook绕过SSL Pinning、以及综合资产提取工具链。
1. 云真机:解决真机稀缺与模拟器检测
当本地设备不足或应用检测模拟器时,可使用云真机平台进行远程测试。
平台 | 特点 | 使用场景 |
Testin | 支持主流Android/iOS真机,提供远程调试。 | 临时租用,快速测试特定机型。 |
腾讯优测 | 提供云真机、自动化测试。 | 回归测试、兼容性测试。 |
阿里MQC | 企业级移动测试平台。 | 批量测试、性能分析。 |
个人云真机 | 自建真机池(如使用STF框架)。 | 长期、私有化测试。 |
推荐:红手指云手机|十年云手机老品牌,手游托管专用虚拟云手机,你的另一台云手机_红手指官网(需自行注册使用)。
操作要点:
- 选择已root的Android真机,便于安装Frida。
- 确保支持USB调试或ADB远程连接。
- 上传APK后,通过Web ADB执行命令。
2. Frida Hook技术:动态绕过与信息提取
Frida支持Java层和Native层Hook,可绕过SSL Pinning、动态修改返回值、追踪加密函数等。
2.1 环境搭建
步骤 | 命令/操作 | 说明 |
本地安装 |
| 确保Python环境。 |
下载frida-server | 从 GitHub releases 下载与本地版本一致的 | 选择对应架构: |
查看设备架构 |
| 输出如 |
推送并运行 |
| 后台运行。 |
端口转发 |
| 使本地Frida连接设备。 |
验证连接 |
| 显示进程列表即成功。 |
2.2 绕过SSL Pinning(常见场景)
使用现成脚本SSLUnpinning.js,直接注入目标应用。
# 启动应用并注入脚本 frida -U -f ddns.android.vuls -l SSLUnpinning.js --no-pause # 针对已运行的应用 frida -U com.p1.mobile.putong -l SSLUnpinning.js脚本示例(SSLUnpinning.js):
Java.perform(function() { var X509TrustManager = Java.use('javax.net.ssl.X509TrustManager'); X509TrustManager.checkServerTrusted.implementation = function(chain, authType) { console.log('SSL Pinning bypassed!'); }; });2.3 常用Frida脚本资源
- FridaScripts – 收集常用脚本(SSL绕过、Root检测、模拟器检测等)。
2.4 高级Hook:拦截加密函数
// Hook AES加密函数,打印明文和密钥 Java.perform(function() { var Cipher = Java.use('javax.crypto.Cipher'); Cipher.doFinal.overload('[B').implementation = function(input) { console.log('Plaintext: ' + bytesToString(input)); var result = this.doFinal(input); console.log('Ciphertext: ' + bytesToString(result)); return result; }; });3. 综合资产提取工具
自动化提取APK中的域名、IP、URL、API密钥等敏感信息。
工具 | 功能 | 使用方法 |
apkleaks | 扫描APK中的URL、IP、邮件、密钥等。 |
|
AppMessenger | 提取APP通信域名、证书信息。 |
|
MobSF | 静态+动态分析,生成完整安全报告。 | 运行 |
jadx | 反编译为Java,手动搜索关键词。 |
|
自动化信息提取示例(apkleaks):
pip install apkleaks apkleaks -f target.apk -o results.json cat results.json | grep "http"4. IOS端双向认证绕过
对于iOS应用,使用SSL Kill Switch 2绕过SSL Pinning(需越狱)。
安装与使用:
- 在Cydia中添加源:
https://github.com/nabla-c0d3/ssl-kill-switch2 - 安装插件,重启设备。
- 在设置中启用“Disable SSL Pinning”即可。
教程:testerhome.com/topics/17249
5. 渗透测试实战 Checklist
1. 环境准备 - [ ] 准备一台root真机(或云真机),安装Magisk/LSPosed。 - [ ] 安装Frida及frida-server,确认版本一致。 - [ ] 下载常用Frida脚本(SSLUnpinning.js、root-detection.js)。 2. 动态分析 - [ ] 使用Frida注入目标应用,绕过SSL Pinning。 - [ ] Hook关键函数(加密、签名、网络请求),记录参数。 - [ ] 导出网络请求、内存中的敏感数据。 3. 静态资产提取 - [ ] 使用apkleaks扫描APK,提取域名、API端点。 - [ ] 使用MobSF进行深度静态分析。 - [ ] 手动反编译搜索`http`、`api`、`token`、`secret`。 4. 组合利用 - [ ] 将提取的API接口导入Burp,测试未授权访问、越权。 - [ ] 使用提取的密钥解密加密流量或数据。 5. 报告输出 - [ ] 记录资产清单(域名、IP、API、证书、密钥)。 - [ ] 提供修复建议(加固、混淆、动态检测)。6. 总结
APP资产收集是移动渗透测试的基石。云真机解决硬件短缺,Frida Hook突破SSL Pinning和动态追踪,自动化提取工具快速沉淀静态信息。三者结合,可高效完成从抓包到深入分析的全流程。掌握这些技术,能让你在面对复杂防护的移动应用时游刃有余。