【APP抓包】IOS应用抓包防护绕过实战教程

文章目录

  • 1. 写在前面
  • 2. 测试机越狱
    • 2.1. 爱思助手
    • 2.2. checkra1n
  • 3. 代理抓包
    • 3.1. 安装CA证书
  • 4. 客户端证书绑定绕过
    • 4.1. SSLKillSwitch
    • 4.2. Objection
  • 5. 双向证书绑定绕过
    • 5.1. 绕过服务端
  • 6. 越狱检测绕过
    • 6.1. Liberty Lite绕过检测
    • 6.2. Hestia绕过检测
    • 6.3. HideJB绕过检测
    • 6.4. Frida编写脚本绕过检测
  • 7. 绕过Frida检测

【作者主页】:吴秋霖
【作者介绍】:Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作!
【作者推荐】:对JS逆向感兴趣的朋友可以关注《爬虫JS逆向实战》,对分布式爬虫平台感兴趣的朋友可以关注《分布式爬虫平台搭建与开发实战》
还有未来会持续更新的验证码突防、APP逆向、Python领域等一系列文章

1. 写在前面

之前写了一篇关于安卓APP抓包防护的绕过文章:【APP爬虫-抓包篇】巧妙使用工具与技巧绕过安卓APP抓包防护

在这里插入图片描述

APP爬虫所面临的第一个问题就是抓包,如果包都抓不到,那基本就没法进一步入手了。现在市面上的APP,稍微有点安全意识都会防抓包!

当然还有自动化方案,这只是迫不得已的一种选择。现在一些大厂出品的APP都有严格的风控检测

风控等级低的出滑块,高的直接封设备,账号限制,功能限制

风控对抗,对抗的是什么?背后的AI模型。结合上报的各项数据快速对用户生成画像!所以风控的对抗,就是不断的“骗”,花时间测试,花时间分析,再不断对“骗”的策略进行调整的这么一个过程

2. 测试机越狱

2.1. 爱思助手

1、利用爱思助手的一件越狱功能:

在这里插入图片描述

2、等待电脑端跑完:

在这里插入图片描述

3、然后手机上多了unc0ver,打开它然后点击Re-Jailbreak,一键越狱,期间会弹出信息提示,直接点击OK就可以了:

在这里插入图片描述

4、到出现界面(进度为 20/30)时,选择“OK”,此时设备会自动重启,重启后再点 jailbreak,直到出现越狱完成,再次点击 OK 即可:

在这里插入图片描述

最后设备重新启动后返回桌面,如Cydia可打开正常运行,则表示越狱成功:

在这里插入图片描述

2.2. checkra1n

1、首先我们打开checkra1n:

在这里插入图片描述

2、使用数据线,连接手机,并点击Start:

在这里插入图片描述

3、根据提示操作,然后点击Start:

在这里插入图片描述

4、最后设备重新启动后返回桌面,如Cydia可打开正常运行,则表示越狱成功:

在这里插入图片描述

3. 代理抓包

3.1. 安装CA证书

1、从网站下载证书的方式,将CA证书放到设备上。在这里,需要配置移动设备和Web代理,以便能够拦截网络流量。具体来说,如果使用Burp Suite,我们只需访问burp随后点击“CA Certificate”即可!接下来,系统将提示“安装”证书,如下图所示:

在这里插入图片描述

2、点击“安装”,会弹出提示将要把证书添加到受信任证书列表中的警告:

在这里插入图片描述

最后进入到“设置”-“常规”-“配置文件”来验证证书是否已经被成功安装!

4. 客户端证书绑定绕过

4.1. SSLKillSwitch

1、使用cydia下载SSLKillSwitch:

在这里插入图片描述

2、在设置使用改插件:

在这里插入图片描述

3、在工具的主页上,已经详细写出了安装说明。但是,要使用这种方法,首先需要先对iOS设备进行越狱

在这里插入图片描述

4.2. Objection

1、使用frida查看应用包名:

在这里插入图片描述

2、启动objection,并使用命令进行注入应用:

在这里插入图片描述

5. 双向证书绑定绕过

5.1. 绕过服务端

1、通过常规抓包的方式,发现只要开启代理,该app提示未能读取数据,因为它的格式不正确。并且在Charles中发现400 No required SSL certificate was sent:

在这里插入图片描述

2、上边提示和安卓端提示相同,也就更能确定它使用的是双向证书。双向证书主要是在通讯过程中,服务端校验了客户端证书是否正确,同样客户端也校验了服务端证书是否正确

该app主要是在客户端封装了证书,相比于单向证书,多了在服务端校验客户端证书的过程,在Charles抓包过程中,使用的是Charles本身的证书,导致服务端校验失败,才会出现400 No required SSL certificate was sent这样的提示,那也就是我们只需要拿到封装在客户端的证书以及证书密码,即可完成与服务端的通讯

突破分析,确定该app为双向证书,那该app的静态资源里面一定有该app的证书文件,通过解压该app的ipa包,在Payload/***_New原身里面发现该app的证书文件

在这里插入图片描述

3、将该p12证书文件安装到Mac系统下,发现其需要密码

4、将该app的二进制文件使用ida pro打开,并在string窗口搜索该证书名后进入该类里面,最后进行f5看其伪代码:

在这里插入图片描述

通过ida分析,可以清楚的看到该app的证书密码

在这里插入图片描述

5、按图中进行导入,最后输入密码即可。最后抓包即可,并且不再提示证书异常

在这里插入图片描述

6. 越狱检测绕过

6.1. Liberty Lite绕过检测

1、首先在Cydia中添加源https://ryleyangus.com/repo/2.然后进入添加的源中选择Liberty Lite(Beta)下载安装,安装完之后需要重启SpringBoard

2、打开iphone设备,在设置内找到Liberty-lite,然后启动,选择Block Jailbreak Detection,通过User Applications选择需要绕过越狱检测的iOS应用

在这里插入图片描述

6.2. Hestia绕过检测

1、首先在Cydia中添加源https://apt.wxhbts.com.然后进入添加的源中选择Hestia下载安装,安装完之后需要重启SpringBoard

在这里插入图片描述

2、在设置选择生效的应用:

在这里插入图片描述

6.3. HideJB绕过检测

1、首先在Cydia搜索HideJB下载安装,安装完之后需要重启SpringBoard:

在这里插入图片描述

2、在设置选择生效的应用:

在这里插入图片描述

6.4. Frida编写脚本绕过检测

1、运行应用发现存在越狱检测:

在这里插入图片描述

2、使用IDA分析应用,找到越狱检测点:

在这里插入图片描述

3、编写脚本进行绕过:

var method = 0bjC.classes.BCEInformation["+ isRoot"];
var origImp = method.implementation;
methad.implementation =0bjC.implement(method,function (self,selector) {var number = 0;return number;
});

4、是用frida进行hook,成功绕过:

在这里插入图片描述

使用frida查看应用包名:

在这里插入图片描述

启动objection,并且使用命令进行注入应用:

在这里插入图片描述

7. 绕过Frida检测

1、针对部分加固厂家对Frida的检测,可以使用以下办法绕过。
比如梆梆的加固对frida的端口27042进行检测,如果存在就退出

2、这个时候就可以通过修改frida的监听端口来绕过检测

3、首先ssh连上iPhone设备后kill Frida-server的进程

4、然后运行修改监听端口命令:

/usr/sbin/frida-server -l 0.0.0.0:6666

5、端口转发,首先安装brew install usbmuxd:

iproxy 6666 6666

6、最后电脑进行Frida注入:

frida -H 127.0.0.1:6666 package_name -l xxxx.js

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/336434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

书生·浦语大模型实战2

轻松玩转书生浦语大模型趣味 Demo 大模型及 InternLM 模型简介 什么是大模型 大模型通常指的是机器学习或人工智能领域中参数数量巨大、拥有庞大计算能力和参数规模的模型。这些模型利用大量数据进行训练,并且拥有数十亿甚至数千亿个参数。大模型的出现和发展得益…

Netdata安装

先上一张部署成功的效果 一、Netdata是什么? Netdata是一款Linux性能实时监测工具,web页面可视化展示系统及应用程序的实时运行状态,包括CPU、内存、硬盘I/O及网络等性能数据。 二、安装 方式一:直接安装 安装基本编译环境 […

git撤销提交到本地的commit

有些时候,当我们提交代码到本地后,突然发现因为某些原因需要撤销提交本地的代码。 就比如我,因为代码写错了分支,已经提交到本地了,而我需要取消,并且还要把代码搞得另外的分支上。 提交前: …

c++学习:STL库(框架)+字符串模板类string+vector容器+list链表

目录 stl库 常用组件包括 字符串库 字符串模板类string 头文件 最常用的字符串模板类 字符串类型 模板原型 模板的成员数据类型 模板成员函数 有些函数会有重载,可以去下面网址查看std::basic_string - cppreference.comhttps://zh.cppreference.com/w/cp…

[蓝桥杯学习] 树状数组的二分

要解决这个问题,插入和删除可以用STL实现,2操作如果用树状数组实现的话,将数的值作为树状数组的下标,即值域。 树状数组有两种操作,一个是更新某点的值,另一个是求区间和。 mid (lr)/2 ,求和 …

【第一次使用finalshell连接虚拟机内的centos】小白处理方式

第一次使用finalshell连接centos7的时候,因为都是新环境什么都没有配置,所以就需要安装finalshell和对新的centos7 进行一些配置。 安装finalshel,默认不安装d盘,就需要对安装路径做一下调整,其余都是下一步默认安装的…

Enable Kubectl logs/exec to debug pods on the edge

Prepare certs 确保可以找到 Kubernetes 的 ca.crt 和 ca.key 文件。如果您通过 kubeadm 设置您的 Kubernetes 集群,这些文件将位于 /etc/kubernetes/pki/ 目录中。 ls /etc/kubernetes/pki/ 设置 CLOUDCOREIPS 环境变量。该环境变量用于指定 cloudcore 的 IP 地址…

Hex2Bin转换软件、Bootloader 、OTA加密升级 、STM32程序加密、其他MCU同样适用

说明:这个工具可以将 Hex 文件 转换为 Bin 格式文件,软件是按自己开发 STM32 OAT 功能需求开发的一款辅助 上位机软件。 文中的介绍时 bootloader boot 文档在补充完善中... 有兴趣的朋友可留言探讨。 1. 软件功能: 1.生成 bin&#x…

OSError: [WinError 126] 找不到指定的模块

问题 **报错:**找不到指定模块。通常是程序要加载某个DLL文件,但是这个DLL文件不存在就报错了。 什么是DLL文件: 因此程序在运行的时候找不到这个文件: 通过如下代码查看文件路径: os.path.join(sys.prefix, Libra…

Request execution error

springcloud–eureka 踩坑记录: 首先,需要先启动eureka服务端,再去启动各个eureka客户端。 当你需要重启某个eureka客户端时,不要重启eureka服务端。 其次,如果你的eureka服务端启动报错:Request executi…

MIB 变更周期

MIB 始终以 80 ms 的周期在 BCH 上传输并在 80 ms 内重复,并且它包括从小区获取 SIB1 所需的参数;如果 SSB 的周期大于 80 ms,则 MIB 的发送周期与 SSB 的周期相同。 在UE初始搜索时,SSB在半帧内的周期是20ms;所以对于…

Python自带爬虫库urllib使用大全

目录 一、urllib库简介 二、发送HTTP请求 三、处理响应 四、解析URLs 五、设置代理 六、总结 在Python中,urllib是一个用于处理URLs的内置库,它提供了用于构建、解析、发送和接收HTTP、HTTPS和其他URLs的强大工具。这个库是Python标准库的一部分&a…