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

【作者主页】:吴秋霖
【作者介绍】: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

猜你喜欢

转载自blog.csdn.net/qiulin_wu/article/details/135393568