千家信息网

四种绕过iOS SSL验证和证书固定的方法分别是什么

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇文章为大家展示了四种绕过iOS SSL验证和证书固定的方法分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在下面的例子中,我将使用Burp Sui
千家信息网最后更新 2025年02月23日四种绕过iOS SSL验证和证书固定的方法分别是什么

本篇文章为大家展示了四种绕过iOS SSL验证和证书固定的方法分别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

在下面的例子中,我将使用Burp Suite作为我的Web代理。本文假设读者对iOS,Xcode,设置手机和在iOS使用Burp拦截HTTP流量有基本的了解。我将为大家介绍以下四种,绕过iOS中的SSL验证和证书固定的方法:

方法1:安装自己的 CA 证书

安装自己的CA证书是摆脱SSL errors的第一步。在iOS中安装CA证书相对容易。首先,要做的就是将CA证书放到设备上。这可以通过打开电子邮件附件或下载证书来完成。然后,我们需要配置移动设备和Web代理,以拦截经过的网络流量。具体来说对于Burp Suite,你只需在浏览器中访问http://burp并单击"CA Certificate"即可。

接下来,系统将提示你"Install"证书,如下所示。

单击"Install"按钮后,会提示将要安装的证书添加到受信任证书列表中的警告。

你可以进入Settings > General > Profile来验证证书是否已被成功安装。

方法 2:将软件安装到 iOS 设备

如果仍出现SSL errors,或应用程序本身因为等待连接而发生卡死现象,则应用程序服务器可能正在使用某种TLS链验证或SSL证书固定。绕过SSL证书固定的最简单方法是,安装易于使用的工具软件来帮我们完成这个过程。以下是我所使用的两款工具:

SSLKillSwitch

Burp Mobile Assistant

具体的安装大家直接参考工具的安装说明即可。但使用这些方法,我们需要越狱的iOS设备。近年来,随着苹果公司对iOS设备安全性的不断增强,越狱的难度也变得越来越大。

方法 3:使用 Objection 和 Frida

另一种已验证过的方法是使用Frida hooks 和 Objection.。Frida是一个非常先进的框架,允许你在运行时干扰应用程序的代码。但Frida需要设备越狱后才能使用。但是,我们可以使用具有完整框架库的Frida Gadget,这样我们就不需要越狱设备了。Objection是这个框架的包装器,将为我们自动化的完成所有工作。

首先,我们需要Apple Developer帐户的有效配置文件和代码签名证书。你可以通过在Xcode中创建测试应用程序来创建有效的配置文件,并在这里注册免费的开发人员帐户。

创建测试项目后,下一步是设置代码签名证书。首先,打开Xcode首选项,然后选择"Accounts"。要添加Apple ID帐户,请单击左下角的加号并登录你的帐户。然后单击右下角的"Manage Certificates"。

单击该按钮后,将会跳转到以下界面。要创建证书,请单击左下方框中的加号,然后选择"iOS Development"。加载后,单击"Done",然后单击"Download Manual Profiles",将证书加载到计算机上。

将代码签名证书加载到计算机上后,我们可以通过运行以下命令来找到它:

NetSPIs-MacBook-Pro:Test netspi$ security find-identityPolicy: X.509 BasicMatching identities1) A[REDACTED]1 "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"2) 0[REDACTED]C "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"2 identities foundValid identities only1) A[REDACTED]1 "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"2) 0[REDACTED]C "iPhone Developer: [REDACTED]@netspi.com ([REDACTED])"2 valid identities found

我们想要加载Frida Gadget动态库,以能够在运行时修改应用程序。在iOS应用程序的上下文中,我们想要提取IPA文件,修改二进制文件以加载FridaGadget.dylib,对二进制文件和dylib进行代码签名,然后重新打包更新的IPA文件。如上所述,我们可以使用Objection来自动帮我们完成所有这些工作。只需运行以下简单命令即可,其中-s是IPA文件,-c是代码签名证书。

NetSPIs-MacBook-Pro:NetSPI netspi$ objection patchipa -s netspi_test.ipa -c 0[REDACTED]CUsing latest Github gadget version: 12.0.3Remote FridaGadget version is v12.0.3, local is v12.0.1. Downloading...Downloading from: https://github.com/frida/frida/releases/download/12.0.3/frida-gadget-12.0.3-ios-universal.dylib.xzDownloading iOS dylib to /Users/netspi/.objection/ios/FridaGadget.dylib.xz...Unpacking /Users/netspi/.objection/ios/FridaGadget.dylib.xz...Cleaning up downloaded archives...Patcher will be using Gadget version: 12.0.3No provision file specified, searching for one...Found provision file /Users/netspi/Library/Developer/Xcode/DerivedData/test-fbleootdcdwdyafhyzjmvihvfiga/Build/Products/Debug-iphoneos/test.app/embedded.mobileprovision expiring in 307 days, 1:40:03.015176Found a valid provisioning profileWorking with app: NetSPI.appBundle identifier is: com.netspi.testCodesigning 13 .dylib's with signature 0[REDACTED]CCode signing: libswiftDarwin.dylibCode signing: libswiftUIKit.dylibCode signing: libswiftCoreImage.dylibCode signing: libswiftos.dylibCode signing: libswiftObjectiveC.dylibCode signing: libswiftCoreGraphics.dylibCode signing: FridaGadget.dylibCode signing: libswiftCore.dylibCode signing: libswiftCoreFoundation.dylibCode signing: libswiftMetal.dylibCode signing: libswiftQuartzCore.dylibCode signing: libswiftFoundation.dylibCode signing: libswiftDispatch.dylibCreating new archive with patched contents...Codesigning patched IPA...Cannot find entitlements in binary. Using defaultsCopying final ipa from /var/folders/1k/mw7w1kfd4c96jkvkw5mp3qfm0000gn/T/netspi_test-frida-codesigned.ipa to current directory...Cleaning up temp files...

一旦命令执行完毕,就会为我们生成一个名为netspi_test-frida-codesigned.ipa的新IPA文件,我们可以将其部署到iOS设备上。有一个名为ios-deploy的工具,可以和未越狱的iOS设备配合使用。我们可以使用多种不同的选项,具体取决于你要完成的任务(例如,运行调试器,通过USB部署应用程序等)。

要使用ios-deploy,我们需要解压缩IPA文件并运行ios-deploy命令。在下面的示例中,我指定了我想通过USB (-W)部署应用程序,以及我要部署的包(-b)。

NetSPIs-MacBook-Pro:NetSPI netspi$ ios-deploy -W -b ./Payload/NetSPI.app[....] Waiting for iOS device to be connected[....] Using 3ff9c90d2b23beadeefdf7bc240211730c84adef (P105AP, iPad mini, iphoneos, armv7) a.k.a. 'MAPen's iPad'.------ Install phase ------[ 0%] Found 3ff9c90d2b23beadeefdf7bc240211730c84adef (P105AP, iPad mini, iphoneos, armv7) a.k.a. 'MAPen's iPad' connected through USB, beginning install[ 5%] Copying /Users/netspi/test/NetSPI/Payload/NetSPI.app/META-INF/ to device[TRUNCATED][ 52%] CreatingStagingDirectory[ 57%] ExtractingPackage[ 60%] InspectingPackage[ 60%] TakingInstallLock[ 65%] PreflightingApplication[ 65%] InstallingEmbeddedProfile[ 70%] VerifyingApplication[ 75%] CreatingContainer[ 80%] InstallingApplication[ 85%] PostflightingApplication[ 90%] SandboxingApplication[ 95%] GeneratingApplicationMap[100%] Installed package ./Payload/NetSPI.app

现在,我们已在iOS设备上安装了应用程序。接下来要做的是打开应用程序并通过Objection与它建立连接。

NetSPIs-MacBook-Pro:NetSPI netspi$ objection explore_ _ _ ____| |_ |_|___ ___| |_|_|___ ___| . | . | | | -_| _| _| | . | ||___|___|_| |___|___|_| |_|___|_|_||___|(object)inject(ion) v1.3.0Runtime Mobile Explorationby: @leonjza from @sensepost[tab] for command suggestionscom.netspi.test on (iPad: 9.0.1) [usb] #

建立连接后,我们只需运行绕过证书验证的内置命令,代理流量即可。

com.netspi.test on (iPad: 9.0.1) [usb] # ios sslpinning disableJob: b748974e-ed6d-4aaf-b5ea-3fb35a13720a - Starting[3fb35a13720a] [ios-ssl-pinning-bypass] [NSURLSession] Found 1 matches for URLSession:didReceiveChallenge:completionHandler:[3fb35a13720a] [ios-ssl-pinning-bypass] [NSURLConnection] Found 5 matches for connection:willSendRequestForAuthenticationChallenge:[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLSetSessionOption[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLCreateContext[3fb35a13720a] [ios-ssl-pinning-bypass] Hooking lower level method: SSLHandshakeJob: b748974e-ed6d-4aaf-b5ea-3fb35a13720a - Started

方法 4:使用反汇编程序修改 IPA 文件

如果以上三种方法都尝试失败,那么你可以选择使用反汇编程序来修改IPA文件的方法绕过证书验证。对iOS的反汇编内容已超出了本文的讨论范围。对于iOS而言,最常用的反汇编程序是Hopper和IDA。你只需将二进制文件加载到应用程序,并观察移动应用程序尝试与应用程序服务器建立SSL连接时调用的函数背后的逻辑,就可以找到证书固定发生的位置。修改IPA很可能会破坏已签名的应用程序,并导致其无法在iOS设备上进行安装。通过重签名IPA文件,可以帮你解决这个问题。

上述内容就是四种绕过iOS SSL验证和证书固定的方法分别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

证书 程序 应用程序 应用 文件 方法 设备 验证 运行 代码 命令 只需 工具 帐户 汇编程序 二进制 内容 可以通过 框架 流量 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 阜新直销会员报单软件开发 数据库选修技巧 网络安全审查的合规路径 武汉亿视互联网络科技有限公司 扩展dns服务器未响应 广州社交聊天软件开发 网络安全教育绘本幼儿园 人才数据库建设 如何在机房中辨别哪个是服务器 福州顶盛网络技术有限公司 360杀毒软件开发公司 信息网络安全信息安全区别 网站服务器宽带 江西企业软件开发哪家好 BW是数据库吗 java导出数据到文件服务器 山东口碑好的浪潮服务器在哪里 研究方向分布式数据库 网络安全协议相关小程序 思科服务器c220重做阵列卡 浙江品牌网络技术包括什么 山西信息化软件开发价钱 dota2印度服务器排名 博山hr人力资源软件开发公司 服务器数据会不会被泄露 材料硕士可以转软件开发吗 软件开发项目中的分工 数据库设置约束0或1 江苏gps网络时间服务器配置 数据库应用技术第二版网上书店
0