1.介绍
现在大的APP如探探、抖音、爱奇艺等为了安全,有的不让抓包,存在单项验证或者双向验证。
双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,在建立Https连接的过程中,握手的流程比单向认证多了几步。单向认证的过程,客户端从服务器端下载服务器端公钥证书进行验证,然后建立安全通信通道。双向通信流程,客户端除了需要从服务器端下载服务器的公钥证书进行验证外,还需要把客户端的公钥证书上传到服务器端给服务器端进行验证,等双方都认证通过了,才开始建立安全通信通道进行数据传输。而常规的https只是客户端校验服务端的证书验证服务器的身份。因此双向证书认证在一定程度上能增大中间人攻击的难度和我们抓包分析的难度。
2.burp安装证书
(1)查看本机IP,burp添加代理,网页下载证书
(2)本地下载完成后把证书改名burp.der,并进行证书编译
openssl x509 -in burp.der -inform DER -out burp.pem -outform PEM
openssl x509 -subject_hash_old -in burp.pem
mv burp.pem 9a5ba575.0
(3)将编译后的证书9a5ba575.0通过文件传输添加进mumu模拟器
(4)使用MT管理器将证书添加进系统/etc/security/cacerts/
3.mumu模拟器12配置
(1)开启root权限和磁盘可写权限
(2)获取adb调试端口
4.使用python环境本地安装frida和frida-tools并启动
pip install frida
pip install frida-tools
pip list //查看frida版本为16.6.6
下载Android 的终端模拟器用于识别frida版本的是x86还是x86_64
https://jackpal.github.io/Android-Terminal-Emulator/
将本机下载的终端模拟器apk上传到mumu模拟器安装,并执行命令查看信息
getprop ro.propduct.cpu.abi
下载frida服务端,下载的服务端版本需要和前面下载的frida版本一致
https://github.com/frida/frida/releases
将下载的frida-server-16.6.6-android-x86_64解压后放到mumu模拟器shell目录下,与adb同一目录,注意一定是解压后的,并将frida服务端上传到mumu模拟器,在通过MT管理器移动到/data/local/tmp目录
adb.exe connect 127.0.0.1:16384 //运行连接模拟器(注意后面的16384为mumu模拟器的adb调试端口)
adb.exe devices //查看连接的设备
adb.exe push frida-server-16.6.6-android-x86_64 /data/local/tmp
adb.exe shell //利用adb中的shell连接上模拟器
//现在是普通用户,我们需要提升到root权限,输入su(注意mumuMonique输入su后会弹窗让你确认权限,一定要允许。
cd /data/local/tmp/ //进入上传的/data/local/tmp目录
chmod 777 frida-server-16.6.6-android-x86_64 //给frida执行权限
./frida-server-16.6.6-android-x86_64 //运行
在mumu模拟器shell目录下再启动一个cmd窗口,注意之前那个窗口不能关,关的话frida就下线了,在新启动的命令行中进行端口转发
adb.exe forward tcp:27043 tcp:27043 //进行端口转发
frida-ps -U //查看正在运行进程
frida-ps -Uai //列出安装的程序
frida-ps -Ua //列出运行中的程序
随便起一个cmd窗口,使用 frida-ps 命令检查frida是否成功开启,发现成功开启。
5.开始APP抓包
(1)设置系统代理
(2)开始抓包
原文始发于微信公众号(中泊研安全应急响应中心):APP抓包-frida双向验证抓包
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论