【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.mzph.cn/news/605740.shtml

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

相关文章

毛概笔记。

一、 毛泽东思想是马中化的第一果,是关于搞革命,搞改造,搞建设的理论。 二、新民主主义革命 新民主主义革命的三大法宝:1.统一战线 2. 武装斗争 3.党的建设 政治纲领 经济纲领 文化纲领 乱世造英雄 三、社会主义改造理论&#xff…

Vue3-43-组件- 组件状态保持 KeepAlive 的简单使用

作用说明 一个应用场景 &#xff1a; 当我们在进行路由跳转的时候&#xff0c;会用到 <router-view> 来作为 组件渲染的出口&#xff0c; 此时&#xff0c;组件的状态是不会被保持的。 比如 &#xff1a; 当前在【组件A】中有一个响应式状态 num 的值通过 自加的方式 从初…

猫长期吃猫粮好吗?主食冻干猫粮那种好吃又健康

许多铲屎官可能认为&#xff0c;只需给猫咪喂食猫粮就足够了。然而&#xff0c;猫咪实际上是肉食动物&#xff0c;对蛋白质的需求非常高。冻干猫粮采用低温真空干燥处理技术&#xff0c;将鲜肉经过预冻、升华、解析三个过程&#xff0c;去除水分的同时保持蛋白质等营养物质不变…

弹窗找不到iutils.dll是怎么回事?需要怎么解决呢?分享多种方法

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“iutils.dll丢失”。iutils.dll是一款系统的动态链接库文件&#xff0c;主要用于支持某些软件和游戏的启动和运行。如果开机提示iutils.dll丢失&#xff0c;可能会导致相关软件和游戏无法正…

校园跑腿小程序(前后端已完成)可做项目,可当毕设,支持二创

此小程序为我单独在小程序上运行的结果&#xff0c;图片信息、列表信息等没有出现是因为服务器到期了&#xff0c;资源被释放了&#xff0c;无法显示。但是后端是已经实现了的&#xff0c;有兴趣的同学可以私聊我。 效果预览

建筑模板每平方价格怎么算?

在建筑行业中&#xff0c;建筑模板是一种常用的辅助材料&#xff0c;主要用于浇筑混凝土时形成所需的结构形状。了解建筑模板的定价方式对于预算控制和成本估算至关重要。本文将详细介绍建筑模板每平方米价格的计算方法。 1. 建筑模板的类型和特点建筑模板的种类繁多&#xff0…

Linux ls命令

目录 一. 配置项1.1 ls -l1.2 ls -a1.3 ls -lrt1.4 ls -ld .?* 二. 案例2.1 查看指定文件夹下文件的数量2.2 查看多个文件夹下文件信息 一. 配置项 1.1 ls -l ⏹ ls 列出当前文件夹下所有文件名称(不包含隐藏文件) jmw_num_00 jmw_num_02 jmw_num_04 jmw_num_06 jmw_n…

try catch 应该在 for 循环里面还是外面

正文 首先 &#xff0c; 话说在前头&#xff0c; 没有什么 在里面 好 和在外面好 或者 不好的 一说。 本篇文章内容&#xff1a; 使用场景 性能分析 个人看法 1. 使用场景 为什么要把 使用场景 摆在第一个 &#xff1f; 因为本身try catch 放在 for循环 外面 和里面 …

【sgPasswordInput】自定义组件:带前端校验密码强度的密码输入框,能够提供密码强度颜色提示和文字提示

特性&#xff1a; 有密码强度颜色提示密码强度进度条提示支持设置默认输入提示和密码长度 sgPasswordInput源码 <template><div :class"$options.name" style"width: 100%"><el-inputstyle"width: 100%"ref"psw"type&…

LED驱动芯片SM901K:可用于消除led无极调光频闪

LED驱动芯片SM901K/KF是一款专门用于消除100/120Hz LED电流纹波的芯片。当LED灯串中的LED电流发生纹波时&#xff0c;会影响到LED的亮度和寿命&#xff0c;因此消除这种电流纹波对于LED灯串的稳定工作非常重要。 SM901K LED驱动芯片SM901K/KF采用了先进的控制技术&#xff0c;…

基于Java SSM框架实现点餐系统网站系统项目【项目源码

基于java的SSM框架实现点餐系统网站系统演示 JAVA简介 JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的&#xff0c;兼容性比较强&#xff0c;适应市面上大多数操作系统&#xff0c;不会出现乱码的现像&#xff0c;其扩展性和维护性都更好&#xf…

一文读懂「Self Attention」自注意力机制

前言&#xff1a;Self-Attention是 Transformer 的重点&#xff0c;因此需要详细了解一下 Self-Attention 的内部逻辑。 一、什么是自注意力机制&#xff1f; 就上图为例&#xff0c;老实告诉我当你第一眼看到上图时&#xff0c;你的视线停留在哪个位置&#xff1f;对于我这种…

使用 Docker 和 Diffusers 快速上手 Stable Video Diffusion 图生视频大模型

本篇文章聊聊&#xff0c;如何快速上手 Stable Video Diffusion (SVD) 图生视频大模型。 写在前面 月底计划在机器之心的“AI技术论坛”做关于使用开源模型 “Stable Diffusion 模型” 做有趣视频的实战分享。 因为会议分享时间有限&#xff0c;和之前一样&#xff0c;比较简…

记一次使用mpvue开发微信小程序动画播放播放完成再播放下一个动画,实现动画队列的实战操作

微信小程序wxss支持Css的keyframes动画&#xff0c;我们想通过事件监听&#xff0c;在动画开始、动画播放阶段、动画播放结束的时候进行下一步动作。如下图&#xff0c;有一个从右飘入&#xff0c;然后从左侧出去的动画&#xff0c;我们希望的是&#xff0c;前一个出去后&#…

[VUE]4-状态管理vuex

目录 状态管理 vuex 1、vuex 介绍 2、安装 3、使用方式 4、总结 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初步涉猎Python人工智…

【设计模式】迭代器模式

一起学习设计模式 目录 前言 一、概述 二、结构 三、案例实现 四、优缺点 五、使用场景 六、JDK源码解析 总结 前言 【设计模式】迭代器模式——行为型模式。 一、概述 定义&#xff1a; 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象…

文本可视化之词云图的使用

环境安装&#xff1a; pip install wordcloud -i https://pypi.tuna.tsinghua.edu.cn/simple/ conda install wordcloud # -i 后面加镜像源网站​ WordCloud(background_color,repeat,max_words600,height480, width584, max_font_size,font_path colormap,mask,mode,coll…

人工智能_机器学习089_DBSCAN聚类案例_DBSCAN聚类算法效果展示_使用轮廓系数来评分DBSCAN效果---人工智能工作笔记0129

dbscan = DBSCAN(eps = 0.2,min_samples =3) 我们指定半径是0.2 然后每个圆圈至少是3个数据就可以归为一类 dbscan.fit(X) 然后进行训练 # 得到每个样本的标签,分类结果 y_ =dbscan.labels_ 然后得到结果 ,注意这里不需要进行predict,因为fit直接就相当于分类了 plt.scatte…

12 月 NFT 市场动态:强劲增长塑造年终趋势

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;NFT Research 12 月加密货币和 NFT 领域出现了显著的上涨趋势&#xff0c;比特币和以太坊价格的大幅上涨标志着市场的复苏。与此同时&#xff0c;NFT 领域的交易量飙升&#xff0c;独立用户&#xff08;钱包&am…

wordcloud,一个超酷的python库

一、简单介绍一下 词云图是文本挖掘中用来表征词频的数据可视化图像&#xff0c;通过它可以很直观地展现文本数据中地高频词&#xff0c;让读者能够从大量文本数据中快速抓住重点。如下图&#xff1a; wordcloud则是一个非常优秀的词云展示python库&#xff0c;它支持自定义词…