0x01 前言

接到一个Android APP渗透的任务,尝试用模拟器抓包发现闪退,看来反模拟器,手里有一台手机,型号是OPPO A57 5G,系统是ColorOS 14,手机和电脑在同一WiFi下,安装好burp证书,配置好代理,尝试抓包,发现无法抓取https包,好吧,开启折腾之旅

oppo安装证书
https://www.cnblogs.com/tianpin/p/17503604.html

0x02 手机降级

查阅相关资料得知,安卓7.0开始,想抓https包需要将证书装到系统证书目录下,想装到系统证书目录下需要root权限,现在问题变成如何root

之前手欠将ColorOS升级到14,我们都知道版本越高越不利于root,所以第一步是降级,ColorOS官方规定,降级需要一级一级降,不能一次降多级,所以我们要先降到ColorOS 13,再降到ColorOS 12,由于ColorOS最低只能降到手机出厂时的系统,我这边最低只能降到ColorOS 12

ColorOS 14降级到ColorOS 13
https://www.ithome.com/0/742/497.htm
ColorOS 13降级到ColorOS 12
https://bbs.oneplus.com/thread/6387108

0x03 Root准备

首先复习了一下adb、recovery、fastboot的知识,然后手机连上电脑,开启USB调试,尝试通过adb和fastboot连接手机,发现没有fastboot命令,下载Android Studio的SDK,里面的platform-tools目录下有我们需要的工具(像夜神模拟器安装目录下也有adb,但是没有fastboot)

adb连接手机
https://blog.csdn.net/qq_42864343/article/details/123813339
使用fastboot命令刷机流程详解
https://blog.csdn.net/s13383754499/article/details/82755012
oppo开启usb调试
https://baijiahao.baidu.com/s?id=1750732106730743094&wfr=spider&for=pc
【2021】解决 Android Studio下载SDK失败 问题
https://blog.csdn.net/weixin_43461724/article/details/120706675

0x04 成功Root

查阅大量文章尝试root,发现OPPO A57 5G无法解锁BootLoader

oppo手机root
https://www.shoujiroot.com/archives/146545.html
https://www.thenextdroid.com/oppo-a56s-root-without-pc-via-magisk/

oppo a57刷机
https://www.cnblogs.com/feiquan/p/9055823.html
https://blog.csdn.net/xgocn/article/details/107565522
http://www.romgw.com/?p=334

期间尝试刷机时碰到一个问题,我是mac系统下pd虚拟化的win10,无法将串口设备挂接到虚拟机,如下图
image

经历各种失败后,已经打算放弃了,想想再试一次万能的淘宝吧,搜了一下,还真有刷机业务并且可以刷OPPO A57 5G,不过mac系统下pd虚拟化的win10不行,需要物理机win10,然后又找了一台物理机win10,全程需要对方远程控制我电脑,很反感别人控制我电脑,好在那台物理机win10上面啥数据也没有,看对面一顿操作,最后成功root

通过观察他们的操作,发现他们其实是用的一款第三方付费工具UnlockTool,好像是一个越南团队开发的,这款工具其中一个root方式是利用联发科这款CPU的一个漏洞,正好OPPO A57 5G的CPU就是联发科

0x05 成功抓包

手机root后成功安装了magisk,但是adb连接后权限还是shell,无法将证书装到系统证书目录下,尝试过Root Explorer,但是无法修改证书权限,最终通过magisk的模块MoveCertiticate成功将证书移到系统证书目录下,需要注意MoveCertiticate会从指定目录将证书移到系统证书目录下,所以需要先将证书放到/data/local/tmp/cert/下

另外有些app出于反调试目的,可能不走系统本身的代理,需要一款类似Proxifier的全局代理客户端,可以使用Postern

一切准备就绪后,尝试抓包,可成功抓到app的https包,如下图
image

移动端抓包
https://xz.aliyun.com/t/11817?time__1311=Cq0xuD07u4lh%3DiQwYYv3iIPx7qEYoD
https://blog.csdn.net/Arched/article/details/135777104
https://github.com/ys1231/MoveCertificate

0x06 总结感悟

之前一直有一个问题,可以直接通过burp抓包,为何还要再通过charles或者fiddler中转一下,这次正好测试了一下,发现直接通过burp抓包,数据包从APP到burp需要好几秒,有点慢,而通过charles中转一下,则可以秒抓

最后,其实iOS下导入证书就可以抓https包,比Android省事多,所以条件允许的话,优先在iOS下抓包,但是像我这种没有iOS客户端的情况,就得折腾了~