0x01前言
需要对某APP做渗透测试,但该APP做了限制:不信任用户证书。因此需要将burp证书导入到存放系统证书目录下。虽然手机装了Magic,但似乎root有点问题。其挂载有问题,导致无法将
最初尝试:mount -o rw,remount -t auto /system
命令报错 mount: '/system' not in /proc/mounts
,后来查资料才知道这条命令只是适合安卓8以前,后来也是跟着这篇文章https://blog.csdn.net/baidu_38661691/article/details/107481148 一步步试(没错,他遇到的坑我全遇到了,他没遇到的我也遇到了,导致看到最后一步也没解决好)
然后我就陷在了上面的如何解决root权限的死循环中。
0x02 解决证书安装问题
一直死循环感觉不对,最后回头复盘,其实关键点主要是解决系统证书的问题。后来查资料发现可以利用Magisk模块将burp证书安装到系统根目录
1、生成需要的系统证书( *.der -> *.pem -> *.0)
burp下载证书生成cacert.der,需要利用 openssl 将 其转成系统根证书 (.0 结尾文件)。
PS:Windows 不自带openssl, 需自行安装。linux自带。下载链接
(1)der文件转pem
openssl x509 -inform DER -in cacert.der -out cacert.pem
(2)pem转.0文件
openssl x509 -subject_hash_old -in 证书名
获取文件名
执行命令后将 cacert.pem 文件重命名为 9a5ba575.0 (9a5ba575需要根据自己生成的结果进行命名)
2、将证书移至Magic模块下
(1)打开手机的 magisk 软件,安装 movecert 模块
(2)将生成的证书9a5ba575.0移动到的Magisk模块的根路径下:
/data/adb/modules/movecerts/system/etc/security/cacerts
下
(3)修改权限chmod 644 9a5ba575.0
(4)重启手机,系统证书导入成功。
其实/data/adb/modules/任意模块目录/system/xx
就是对应着系统根目录的:/system/xx
小结
至此成功解决APP不信任用户证书的抓包问题。
再回顾一下,Android7以上,系统允许每个应用可以定义自己的可信CA集,但部分应用默认只会信任系统预装的CA证书,而不会信任用户安装的证书,如果想正常抓取数据包需要对Android7以上的系统将证书安装到系统证书目录下。