mcpField
F
frida-tls-pinning

frida-tls-pinning

github.com/rudra-ravi安全7117 次安装25 周前更新
代码仓库

关于 frida-tls-pinning

使用 Frida 调查移动应用中的 TLS 证书固定和自定义信任验证行为。技能帮助识别网络技术栈、探测钩子并验证针对性修改,而非依赖通用绕过方案。

主要功能

  1. 01识别 Android、iOS 及跨平台网络技术栈
  2. 02探测 Java、Objective-C 和原生组件
  3. 03通过公开脚本定位生效的钩子
  4. 04列出验证请求修改效果的检查项
  5. 05要求记录应用版本、平台、库及回滚方式

适用场景

  1. 01调查被证书固定阻止的 HTTPS 流量
  2. 02定位移动应用中的信任验证钩子
  3. 03验证针对性钩子是否改变受阻请求
  4. 04记录测试环境和回滚步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/rudra-ravi/frida-skills --skill frida-tls-pinning

安装后在 Claude Code 中输入/frida-tls-pinning确认已加载。

附带文件agents/openai.yamlreferences/tls-patterns.md

详细介绍

Frida TLS Pinning

当 HTTPS 流量因证书固定或自定义信任验证而被阻止时,使用此技能。

先识别技术栈

  • Android Java:OkHttp、TrustManager、Conscrypt、WebView、network security config。
  • Android 原生:BoringSSL、OpenSSL、Cronet、proxygen、Flutter engine。
  • iOS:NSURLSession、委托信任质询、SecTrustEvaluate*、原生 BoringSSL。
  • 跨平台:React Native、Flutter、Unity、自定义原生网络通信。

不要一开始就把通用绕过方案作为最终答案。使用公开脚本找出触发的钩子,然后只保留必需的钩子。

Android 探测

Java.perform(() => {
  for (const name of [
    "okhttp3.CertificatePinner",
    "com.android.org.conscrypt.TrustManagerImpl",
    "javax.net.ssl.SSLContext"
  ]) {
    try { console.log("found", name, Java.use(name)); } catch (_) {}
  }
});

iOS 探测

if (ObjC.available) {
  for (const name of Object.keys(ObjC.classes).filter(n => n.includes("Trust") || n.includes("Session"))) {
    console.log(name);
  }
}

原生探测

for (const m of Process.enumerateModules()) {
  if (/ssl|crypto|boring|cronet|liger/i.test(m.name)) console.log(m.name, m.base, m.path);
}

验证

  • 设备或应用配置文件信任代理。
  • 在被阻止的确切请求期间,钩子会记录日志。
  • 修改后,同一请求能够成功。
  • 流量可见,或应用行为证明已绕过信任验证。
  • 最终脚本注明应用版本、平台、库和回滚命令。

参考资料

阅读 references/tls-patterns.md,了解针对特定框架的钩子选项。

评论

支持 Markdown