一键搞定!Frida脚本集助你轻松实现Android/iOS应用HTTPS流量拦截与去证书绑定

admin 2026-03-27 14:06:58 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍HTTPToolkit维护的Frida脚本项目,用于在Root的Android或越狱iOS设备上自动化实现HTTPS流量中间人拦截。项目提供流量重定向、系统证书注入、证书绑定绕过、Root检测绕过等功能模块,支持HTTP/3连接阻止和Flutter应用。文章给出详细配置步骤和使用示例,强调仅用于合法测试,是移动应用安全评估的实用工具集。 综合评分: 85 文章分类: 移动安全,安全工具,渗透测试,应用安全,实战经验


cover_image

一键搞定!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设备上拦截一个应用为例,演示基本使用流程。

前期准备:

  1. 准备一台已Root的Android设备或模拟器,并开启ADB调试。
  2. 启动你的MitM代理(如Burp Suite、HTTP Toolkit),记下代理端口(例如:8000)和CA证书(PEM格式)。

配置步骤:

  1. 修改配置文件 (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;
  1. 在设备上运行Frida服务端: 将对应架构的 frida-server 推送到设备并以后台权限运行。
   adb push frida-server /data/local/tmp/
   adb shell
   su
   cd /data/local/tmp
   chmod +x frida-server
   ./frida-server &
  1. 查找目标应用包名: 使用 adb shell pm list packagesfrida-ps -Uai 查找目标应用的包名,例如 com.example.targetapp
  2. 注入脚本启动应用: 使用以下命令组合多个脚本,注入到目标应用中并启动它。
   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

注意事项

  1. 法律与道德规范:仅将此工具用于你拥有合法测试权限的应用或自己的应用。未经授权的测试可能违法。
  2. 设备要求:Android设备需要Root权限,iOS设备需要越狱。这是修改系统级网络栈和信任存储的必要条件。
  3. 证书格式:确保 CERT_PEM 配置的是完整的PEM格式证书,包含首尾的标识行。
  4. 网络可达性:确保设备可以访问 PROXY_HOST:PROXY_PORT 指定的代理地址。在复杂网络环境下可能需要使用 adb reverse 进行端口转发。
  5. 脚本选择性使用:可以根据测试需求选择性地加载脚本。例如,如果只关心绕过证书绑定,可以仅加载 config.jsandroid-certificate-unpinning.js
  6. 回退脚本android-certificate-unpinning-fallback.js 依赖于主去绑定脚本,不能单独使用。
  7. 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流量拦截与去证书绑定》

评论:0   参与:  0