对APP逆向抓包的实践

2022-08-03 8,745




背景基础



在对某音国际版的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 或 R**)进行加密的。公用密钥算法(通常为 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/efd56ad78499

https://juejin.cn/post/7122723176387346469

 




结束



本文作者:编码安全

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/184703.html

Tags:
评论  (0)
快来写下你的想法吧!

编码安全

文章数:2 积分: 0

编码安全、安全编码! 公众号《编码安全》

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号