APP对抗-反证书校验

反证书检验:SSL证书绑定(单向校验和双向校验)

单项校验:客户端校验服务端的证书。

双向校验:客户端不仅要校验服务端的证书,同时APP内也存在证书供服务端检验。

一、反单向校验

0.0 Xposed简介

Xposed是一款可以在不修改APK的情况下影响程序运行的框架,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。在这个框架下,我们可以编写并加载自己编写的插件APP,实现对目标apk的注入拦截等。

原理:控制zygote进程,通过替换/system/bin/app_precess程序控制zygote进程,使得它在系统启动的时候会加载Xposed framework的一个jar文件即XposedBridge.jar,从而完成对zygote进程及其创建的Dalvik/ART虚拟机的劫持,并且能够允许开发者独立的替代任何class。

1.1 准备工作

模拟器准备:逍遥模拟器,安卓7系统(64位)

准备APK工具:JustMePlush.apk、JustTrustMe.apk、XposedInstaller.apk、终端模拟器.apk

现将工具安装完成:

现在打开XposedInstaller,显示Xposed框架尚未安装

打开模拟器分享文件夹,将xposed文件夹复制进行

在模拟器里的找到该文件夹,并将他复制到system文件夹下

接下来使用终端模拟器.apk执行系统命令su提升至root权限

接下来进入system文件夹中的xposed文件夹,并运行其中的memu-script.sh脚本文件

重启模拟器后,再次进入Xposed Installer,已经显示安装成功了

1.2 开始反单向证书校验

打开Xposed Installer的模块功能

将以下两个模块勾选上,然后重启模拟器

在vuls.apk软件中执行SSL Pinning,成功访问,此时反单向证书校验已经完成。

二、反双向校验

0.0 Firda简介

Firda 是一款易用的跨平Hook工具, Java层到Native层的Hook无所不能,是一种动态的插桩工具,可以插入代码到原生App的内存空间中,动态的去监视和修改行为,原生平台包括Win、Mac、Linux、Android、iOS全平台。

1.1 准备工作

系统准备:夜神模拟器 + 安卓7(x86)

工具准备:Frida、frida-serverFridaScripts(SSLUnpinning.js)、frida-server、BurpSuite

1.2 开始反双向证书校验

本次使用的方案为:Firda + HOOK-JS + BurpSuite

这里的HOOK-JS指的是FridaScripts中的SSLUnpinning.js脚本

1.2.1 本地安装Frida

pip install frida
pip install frida-tools

安装成功会显示Frida的版本,我这里是frida-16.1.4

1.2.2 模拟器安装Frida-server

下载地址:GitHub - frida/frida: Clone this repo to build Frida

首先需要确定模拟器系统是x86还是x64的,使用以下命令可以查看系统位数。

getprop ro.product.cpu.abi

在Release中选择与本地frida版本相同的frida-server,我这里是x86的所以选择下面红色方框的。前面两个是用于真机的,后面两个才是用于模拟器的。

下载下来之后,利用 adb 将 frida-server 传上模拟器

添加执行权限,并执行frida-server-x86

新开一个命令行窗口,执行frida-ps -U,如果有显示进程则frida-server运行成功

1.2.3 转发并启动Frida

adb forward tcp:27042 tcp:27042

在输入以上命令后,通过frida-ps -R查看是否发现进程,如果有进程则转发成功。

1.2.4 正式实施

先在模拟器上运行frida-server

开启代理抓包

获取目标APP的包名

输入命令开始绕过证书双向校验

frida -U -f com.p1.mobxxx.xxxxxxx -l SSLUnpinning.js

已经成功抓取APP的数据包,并且不会影响任何的数据交互。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值