文章总结: 本文介绍HTTPToolkit维护的Frida脚本项目,用于在Root的Android或越狱iOS设备上自动化实现HTTPS流量中间人拦截。项目提供流量重定向、系统证书注入、证书绑定绕过、Root检测绕过等功能模块,支持HTTP/3连接阻止和Flutter应用。文章给出详细配置步骤和使用示例,强调仅用于合法测试,是移动应用安全评估的实用工具集。 综合评分: 85 文章分类: 移动安全,安全工具,渗透测试,应用安全,实战经验
一键搞定!Frida脚本集助你轻松实现Android/iOS应用HTTPS流量拦截与去证书绑定
柠檬赏金猎人
2026年3月25日 08:41 广东
概述
本文介绍一个由HTTP Toolkit维护的Frida脚本项目,旨在为安全研究人员和开发者提供一套自动化工具,用于在已获取Root权限的Android设备或已越狱的iOS设备上,实现对目标应用程序HTTPS流量的全面中间人(MitM)拦截。该项目脚本集功能强大,能够自动处理代理设置、系统证书注入、绕过证书绑定(Certificate Pinning)及证书透明度(Certificate Transparency)检查等关键步骤,是移动应用安全评估和网络调试的得力助手。
技术/功能
该脚本集包含多个模块化脚本,协同工作以实现完整的拦截流程。核心功能如下:
| 功能模块 | 作用描述 | 适用平台 | | — | — | — | | 流量重定向 | 强制将所有网络连接(包括忽略系统代理的原始Socket连接)重定向到指定的HTTP(S)代理服务器。 | Android, iOS | | 系统证书注入 | 将中间人代理的CA证书注入到系统的信任存储中,使设备信任由该CA签发的证书。 | Android | | 证书绑定绕过 | 修补或禁用多种已知的证书绑定和证书透明度实现方案,允许拦截器CA证书被接受。 | Android, iOS | | 根检测/越狱检测绕过 | 禁用常见的Root检测和越狱检测检查,防止应用因环境问题而行为异常。 | Android, iOS | | HTTP/3 连接阻止 | (默认启用)阻止所有到443端口的UDP连接,强制应用回退到更易于拦截的HTTP/2或HTTP/1.1。 | 通用 | | 混淆应用回退处理 | (Android)自动检测首次拦截失败的证书绑定,并尝试动态生成补丁,适用于高度混淆的应用。 | Android | | Flutter应用支持 | (实验性)确保基于Flutter框架的应用信任拦截器CA证书。 | Android |
使用示例
以下以在Android设备上拦截一个应用为例,演示基本使用流程。
前期准备:
- 准备一台已Root的Android设备或模拟器,并开启ADB调试。
- 启动你的MitM代理(如Burp Suite、HTTP Toolkit),记下代理端口(例如:
8000)和CA证书(PEM格式)。
配置步骤:
- 修改配置文件 (
config.js): 打开项目根目录下的config.js文件,配置你的代理和证书信息。
// 你的CA证书内容(PEM格式,包含 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----)
CERT_PEM = `-----BEGIN CERTIFICATE-----
YOUR_CERTIFICATE_CONTENT_HERE
-----END CERTIFICATE-----`;
// 代理服务器地址,从设备视角可访问的IP
PROXY_HOST = "192.168.1.100"; // 或使用 `adb reverse` 转发后设为 "127.0.0.1"
// 代理服务器端口
PROXY_PORT = 8000;
// 调试模式,设为 true 可输出详细日志
DEBUG_MODE = false;
- 在设备上运行Frida服务端:
将对应架构的
frida-server推送到设备并以后台权限运行。
adb push frida-server /data/local/tmp/
adb shell
su
cd /data/local/tmp
chmod +x frida-server
./frida-server &
- 查找目标应用包名:
使用
adb shell pm list packages或frida-ps -Uai查找目标应用的包名,例如com.example.targetapp。 - 注入脚本启动应用: 使用以下命令组合多个脚本,注入到目标应用中并启动它。
frida -U \
-l ./config.js \
-l ./native-connect-hook.js \
-l ./native-tls-hook.js \
-l ./android/android-proxy-override.js \
-l ./android/android-system-certificate-injection.js \
-l ./android/android-certificate-unpinning.js \
-l ./android/android-certificate-unpinning-fallback.js \
-l ./android/android-disable-root-detection.js \
-f com.example.targetapp
执行成功后,目标应用将被启动,其所有HTTPS流量应已被重定向到你的代理服务器,并可被查看和修改。
iOS平台使用:
流程类似,但需要越狱设备,并使用iOS专用的脚本(如 ios-connect-hook.js, ios-disable-detection.js)替换部分Android脚本。基本命令如下:
frida -U \
-l ./config.js \
-l ./ios/ios-connect-hook.js \
-l ./ios/ios-disable-detection.js \
-l ./native-tls-hook.js \
-l ./native-connect-hook.js \
-f com.example.iosapp
注意事项
- 法律与道德规范:仅将此工具用于你拥有合法测试权限的应用或自己的应用。未经授权的测试可能违法。
- 设备要求:Android设备需要Root权限,iOS设备需要越狱。这是修改系统级网络栈和信任存储的必要条件。
- 证书格式:确保
CERT_PEM配置的是完整的PEM格式证书,包含首尾的标识行。 - 网络可达性:确保设备可以访问
PROXY_HOST:PROXY_PORT指定的代理地址。在复杂网络环境下可能需要使用adb reverse进行端口转发。 - 脚本选择性使用:可以根据测试需求选择性地加载脚本。例如,如果只关心绕过证书绑定,可以仅加载
config.js和android-certificate-unpinning.js。 - 回退脚本:
android-certificate-unpinning-fallback.js依赖于主去绑定脚本,不能单独使用。 - Flutter支持:
android-disable-flutter-certificate-pinning.js目前是实验性的,效果可能因应用而异。
参考链接
- 项目仓库:https://github.com/httptoolkit/frida-interception-and-unpinning
- HTTP Toolkit 官网:https://httptoolkit.com/
- Frida 官方文档:https://frida.re/docs/home/
- NGI Zero Entrust 资助项目:https://nlnet.nl/project/F3-AppInterception
仅限交流学习使用,如您在使用本工具或代码的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。“如侵权请私聊公众号删文”。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:柠檬赏金猎人 《一键搞定!Frida脚本集助你轻松实现Android/iOS应用HTTPS流量拦截与去证书绑定》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。




![Sublime许可证分析:RSAPKCS#1标准详解+跨平台Keygen[开源]](/images/random/titlepic/4.jpg)



评论