森林雪人 发表于 2019-1-15 22:24

Xposed插件绕过应用证书锁定和动态分析共具分享

本帖最后由 森林雪人 于 2019-1-15 23:10 编辑

一、背景:
在使用burpsuite做代{过}{滤}理抓取应用数据包时,如果要抓取到HTTPS数据,需要将burpsuite证书导入到浏览器或手机。
浏览器或手机设置好burpsuite的代{过}{滤}理地址,即可抓取到https数据包。

如果APP应用采用证书锁定后,将无法抓取到https数据,因为此时APP应用校验证书不通过,通常APP应用会断开网络连接,防止网络传输数据被抓取。

二、证书锁定
证书锁定(CertificatePinning或SSL Pinning),即HTTPS的证书校验。HTTPS库在接收到证书以后,对证书进行校验,确保其跟自己保存的本地证书或硬编码数据相同,才可放行。否则视为被中间人监听,拒绝通信。

三、绕过证书锁定
绕过证书锁定,可使用xposed框架下的两大神器来突破证书锁定。SSLUnpinning或Inspeckage。
使用这两个APP应用中的任意一个就可以绕过证书锁定。
要使用这两个APP应用生效,前提是手机已ROOT并且安装好xposed框架,在选择xposed安装时,要选择好手机架构系统版本和CPU对应关系。
安装方式参与下面链接
https://xposed.appkg.com/2390.html
https://xposed.appkg.com/1152.html


android的版本可以在设置-关于手机查找,CPU是否是64位可查询手机配置参数,也可以使用以下命令查看:arm64-v8a
比如我的荣耀9是android7.0,命令查询结果如下:
HWSTF:/ # getpropro.product.cpu.abi                                                            
arm64-v8a
所以选择安装包xposed-v88-sdk24-arm64.zip,具体安装方法可百度搜索:xposed框架安装。


成功安装xposed后可以安装以下任意一个APP应用,可实现绕过证书锁定。


1、 SSLUnpinning
SSLUnpinning安装成功后,需要在xposed框架中选中,并重启手机后才会生效。
手机重启后,打开SSLUnpinning,选择要抓数据包的APP应用,当应用后出现unpinned时,就可以愉快地进行抓包了。

如果需要取消,点击右上角的三个小点,选择clear即可。


2、Inspeckage
Inspeckage是一个用于提供Android应用程序动态分析的工具。通过对Android API的函数使用hook技术,帮助用户了解应用程序在运行时的行为。
2.1 打开Inspeckage点击choose target选择要分析的应用,这次以com.mobike.mobikeapp为例。



2.2 电脑使用adb命令 连接手机,并做端口转发:
E:\ProgramFiles\adb>adb devices
List of devicesattachedadb server version(31)
doesn't match this client (36); killing...
* daemon startedsuccessfully *emulator-5554   device//连接成功

E:\ProgramFiles\adb>adb forward tcp:8008 tcp:8008//本地8008端口转发到手机8008端口,用于浏览器中直接访问http://127.0.0.1:8008


2.3 浏览器中直接访问http://127.0.0.1:8008,效果如下


点击下图中设置,开启SSL uncheck就可以绕过APP应用的证书锁定。

上图中右侧还有个代{过}{滤}理设置。使用方式是手机中不设置代{过}{滤}理,在此处设置了burpsuite的代{过}{滤}理,即可在burpsuite中抓到数据包。这个方式可绕过APP应用的代{过}{滤}理检测。


四、Inspeckage动态分析工具
模块介绍
Logcat                               实时查看该app的logcat输出
Tree View                         可以实时浏览app的数据目录并直接下载文件到本地
Package Information   应用基本信息(组件信息、权限信息、共享库信息)
Shared Preferences       LOG:app XML文件读写记录;Files:具体XML写入内容
Serialization                     反序列化记录
Crypto                              常见加解密记录(KEY、IV值)
Hash                                 常见的哈希算法记录
SQLite                               SQLite数据库操作记录
HTTP                                 HTTP网络请求记录
File System                      文件读写记录
Misc.                                  调用Clipboard,URL.Parse()记录
WebView                        调用webview内容                  
IPC                                     进程之间通信记录
+Hooks                           运行过程中用户自定义Hook记录



大部分APP应用使用https加密通道保护传输数据,同时对重要的数据会再次加密防止被截取泄露,使用Inspeckage分析通常可看到相应的明文、密钥以及加密方式。
一个非常好的安卓APP动态分析工具,使用方法见下载地址有详细介绍。下载地址:
https://repo.xposed.info/module/mobi.acpm.sslunpinning
https://repo.xposed.info/module/mobi.acpm.inspeckage

Leroscox 发表于 2019-1-16 09:42

学习了,谢谢楼主分享!

laughingsir38 发表于 2019-1-16 14:30

学习一下了

清风笑竟若寂寥 发表于 2019-1-15 22:43

感谢楼主的分享

1218423706 发表于 2019-1-15 23:45


感谢楼主的分享

w370724 发表于 2019-1-15 23:51

学习一下了哈哈

沉默挺好的 发表于 2019-1-16 00:27

哇。。感觉有点难

lingbowen888 发表于 2019-1-16 07:22

mark了~多谢楼主

萌牛工厂 发表于 2019-1-16 08:31

看看 学习学习

中国剩余定理 发表于 2019-1-16 10:34

谢谢分享
页: [1] 2 3 4 5
查看完整版本: Xposed插件绕过应用证书锁定和动态分析共具分享