APP逆向抓包实战
2022-8-3 07:39:2 Author: 哆啦安全(查看原文) 阅读量:60 收藏

背景基础

在对某音国际版的APP抓包分析数据过程中,发现该APP使用了自定义的SSL框架,这就大大提高直接利用现有的框架抓包分析的成本。

现成的Xposed框架的JustTrustMe模块、frida框架的r0capture脚本均无法正常抓包。因为在于这些模块脚本,主要针对的是系统原生的SSL框架,而该APP采用自定义了自己的SSL框架。那么如果我们需要对APP进行抓包的话,就需要过掉该APP的检测机制从而实现抓包数据分析。

下面从SSL框架原理,以及通过两个方式实现对APP正常抓取数据包功能。

SSL框架原理

SSL全称是Secure Scoket Layer安全套接层,它是一个安全协议,它提供使用 TCP/IP的通信应用程序间的隐私与完整性,它是一种为网络通信提供安全以及数据完整性的安全协议,再传输层对网络进行加密,因特网的超文本传输协议(HTTP)使用 SSL 来实现安全的通信。

SSL记录协议:为高层协议提供安全封装,压缩,加密等基本功能

SSL握手协议:用与再数据传输开始前进行通信双方的身份验证、加密算法协商、交换秘钥。

在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。有了服务器的SSL数字证书,客户端也可以验证服务器的身份。

SSL协议的 1和2版本 ,它只提供服务器认证,而第3版本添加了客户端认证,此认证同时需要客户端和服务器的数字证书。

SO文件修改法

该APP防止抓包主要通过自定义SSL校验来实现,那么我们只要将APP中检验的最终结果修改成校验通过就可以正常的抓包。

通过对APP组成结构和代码的分析,该APP中自定义SSL校验是在libsscronet.so的文件中,那我们就可以直接将APP重命名为zip后缀,然后直接解压。解压后得到很多文件,这些so文件都是存在lib目录。

接下来就需要通过利用IDA静态分析工具分析和Hex_Editor工具结合进行对so文件做修改。

在IDA中通过字符串窗口中搜索关键词verifycert,通过上图可以搜索到该关键词相关的,那么接下来就是通过代码交互引用然后跳转到代码调用的地方。

上图的伪代码中,可以看到该函数中的调用关键字符串的地方,那么在这个调用的地方return 0的时候就表示校验成功,

那么我们只需要把图中的return 1修改为0即可。

通过借助Hex_Editor工具,将刚才IDA工具分析到到return1改成return0,那么重新保存下就可以了。

最后将修改后的SO文件替换到APP安装的原目录下那么就可以开始抓包分析了。

上图是通过Fiddler抓包工具进行抓包分析的,Fiddler抓包还得进行证书安装才能正常抓包。

HOOK功能函数法

直接将APP拖进jadx反编译工具,从代码中发现APP使用的网络请求框架是Retrofit,而Retrofit网络请求框架底层使用依旧是Okhttp,那么Hook的切入点可以从拦截器或者初始化时传入的OkClient入手。

通过jadx反编译,从代码中确认了APP初始化Retrofit的位置

是com.bytedance.ies.ugc.aweme.network.RetrofitFactory。

Hook代码的方式目前常见的就是用frida和xposed这两个框架进行hook功能

这边主要以frida框架进行hook功能,经过对这个类多次代码逻辑梳理及Hook,找到了X.MBJ的类,该类中的LIZ方法的返回值c内有请求的所有数据,猜测可能是response。

下面开始基于frida进行编写python和js脚本

上图是python脚本

上图是javascript脚本

通过启动frida运行后的效果如下图

从下面数据中以及可以看到解析到通信数据了,这样的hook功能效果就达到,接下来就可以开始用抓包工具进行抓包分析了。

参考链接

https://www.jianshu.com/p/efd56ad78499https://juejin.cn/post/7122723176387346469

商务合作、进群添加微信

 

Android10系统定制之frida逆向分析速成培训班(过Root、Hook等检测)

Web安全攻防实战零基础速成培训班(HW红队攻防实战经验丰富的讲师授课)

推荐阅读

Linux常用应急溯源命令

取证|伪加密zip解密方法

Android中奇淫run-as命令

Charles+drony的APP抓包

Charles+Postern的APP抓包

Android逆向渗透测试实用清单

防止Java反编译的一些常用方法

Android Automotive概述与编译

检测车机中ADB远程调试控制Android系统攻击

零基础培训课程+技术指导服务(技术交流社群)

Android渗透测试frida-Brida插件加解密实战

使用frida hook对app的常用关键代码进行定位

Android应用Root检测通杀篇(ROM定制过Root/Hook等检测)

强烈推荐Google系列Android机型(Android逆向的最佳机型)

2022全球20多款知名的Android刷机ROM镜像和Android系统开源源码(覆盖全球机型)


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2NzUzNzk1Mw==&mid=2247493494&idx=2&sn=f5c781235b6154a66ba638bad355f53c&chksm=ceb8a238f9cf2b2e5918499b8769a79dd564730a602ccd9a074e9faeb3e466b8e78b8c321e53#rd
如有侵权请联系:admin#unsafe.sh