【APP小程序】APP抓包绕过反代理和证书校验

发布时间 2023-12-13 10:08:53作者: 小C学安全

无法获取APP数据包

通常获取不到APP应用数据包会有两种情况:

  • 反代理机制
  • 反证书机制

如果数据走的ssl https,那么数据包有三种验证情况:

  • 客户端不存在证书校验,服务器也不存在证书校验。
  • 客户端存在校验服务端证书,服务器也不存在证书校验,单项校验。
  • 客户端存在证书校验,服务器也存在证书校验,双向校验。

反证书就是在我们抓包的时候,APP接收数据是利用我们抓包软件产生的证书来进行交互的,但是服务端去校验的时候发现和APP的证书是不一致的,那么就会导致出现反证书机制,导致我们无法正常的进入软件或进行抓包。

绕过反代理

反代理简单来说就是APP在启动的时候检测是否开启了代理模式,如果开启了代理模式,那么就会出现无法连接的情况

开了浏览器后,访问baidu.com的话会一直提示,burp fiddler 需要配置模拟器安装证书才能抓取https(工具证书)
访问这个app的接受服务器就相当于利用的是burp证书,和原来的app证书不一样,这样就是证书问题。校验不通过,存在异常的情况。
怎么区别是反代理还是证书。最简单的方法是反编译,看反代理有没有代码。还可以自己推测。
反代理检测:
1、自身的抓包应用
用工具(packet capture)进行抓包,如果显示正常就证明是反代理,如果异常就是证书。这种是没有设置代理,只是抓包而已。

2.用Proxifier

如果设置系统代理:
APP检测到设置了代理,GG
相当于在模拟器或手机设置代理
app-->代理服务器-->burp-->服务端
 
如果用了proxifier,借助网络接口出口数据,不需要设置代理
相当于在网络出口设置代理
app-->(已经逃离了模拟器或者手机)proxifier-->本地burp-->服务器
app模拟器 模拟器的网络出口数据是通过本机进行的
那么应该怎么操作呢?在proxifier中,找到配置文件中的代理服务器,添加一个127.0.0.1:8888的https协议的代理


配置代理规则:配置文件-->代理规则-->添加规则
找到逍遥模拟器的对应进程
模拟器进行proxifier代理转发,出现了三个数据包一闪而过(证书)
模拟器开了burp代理的话,没有任何数据包出现(反代理)
推断:反代理+证书双重检测

先检测代理,在检测证书

证书校验

安装Xposed框架

下载“xpoed framework and installer”压缩包

安装终端模拟器和XposedInstaller_3.1.5.apk,在模拟器上下载文件管理器

通过模拟器共享将xposed文件上传到模拟器,复制到system目录下,挂载system目录为可读写权限
安装完后打开终端管理器输入以下命令

①  su 回车
②  cd /system/xposed 回车 (注意空格 不会复制粘贴)
③  sh flash-script.sh 回车 (注意空格 不会复制粘贴)

执行完命令后Xposed框架显示已安装,但是没有激活

模拟器重启后显示已激活

安装JustMePlush和JustTrustMe

重启后,安装两个apk:JustTrustMe.apk和JustMePlush.apk,然后再次重启。然后再次开启代理
在Xposed上,点击三符号,然后选择模块


然后重启,其实就是利用这两个模块,把app里面的检测功能屏蔽掉。
然后在打开JustMePlush,选择APP,然后点一下说保存成功。

然后再打开就能正常抓包了

这种方法也可以用frida&r0capture来进行解决的
 
连接模拟器:nox_adb.exe shell
启动firda:cd /data/local  ./frida-server
连接firda:frida-ps -U  frida-ps -R(错误执行)adb forward tcp:27042 tcp:27042
收集:G:\python38\python.exe r0capture.py -U -f com.p1.mobile.putong -v -p tantan.pcap
 
这里有xp框架的干扰,把xp框架卸载了就可以成功了。
在探探中,用Xposed框架来进行抓包是抓不到数据包的。需要用到frida&r0capture才能抓到。这是因为证书的是双向的。利用登录,提示版本太低。但是这是没办法绕过这个证书。
 
 
Xposed框架只是解决单向验证证书,如果双向验证需要用到Frida来解决。

反模拟器

两个模拟器,装同一个app会出现两种不同的效果。一个能打开,一个不能打开,是因为这个app有检测反模拟器功能。
 
逍遥模拟器不能正常打开
夜神模拟器能正常打开
这是因为模拟器的内核不一样,xp框架也是可以解决这个问题,但是逍遥模拟器的xp框架安装不上去,如果实在不行就只能用真机去测试。