解决Android 7以上抓包问题

解决Android 7以上抓包问题

Posted by 木已成舟 on March 5, 2021

0x00 背景

由于要测试的APP在模拟器上布局出现了点小问题,只能转向测试机,但发现测试机抓HTTPS的包有问题,因之前看过APP安全测试的书,知道大概的原因:在Android 7以前的版本把ca证书安装到用户证书下即可抓HTTPS的包,但Android 7以后只有系统级证书才能被信任,因此为了能正常抓包,需要想办法把ca证书安装到系统证书下。

今天,真正自己操作起来还是遇到了不少坑点。

  1. 证书格式转换问题,系统证书目录下的证书后缀是.0的文件,而fiddler、burp的证书是cer后缀的
  2. 使用adb cp命令将用户证书拷贝到系统证书目录下时,会提【Read-only file system】

下面是我解决的过程。

0x01 下载与安装fiddler证书

下载fiddler证书(后缀.cer的证书),进行安装(用户证书),安装成功后证书在用户证书的目录下就会变成后缀为.0的文件。

20210305214119

0x02 安装ES文件浏览器

进入ES文件浏览器,安装【Root工具箱】

20210305214210

开启【Root工具箱】后,已Root的手机就可以进入根目录下了。

20210305214238

20210305214258

0x03 复制证书文件

使用ES浏览器进入用户证书目录,复制证书文件到系统目录下是没问题的,之后抓取HTTPS就没问题了。

  • 用户证书目录:/data/misc/user/0/cacerts-added
  • 系统证书目录:/etc/security/cacerts

20210305214358

0x04 配置Fiddler上游代理

Fiddler有时可能没有Burp那么顺手,因此可以给它设置上级代理,将流量转发到Burp中。

点击【Tools】,【Options】,【Gateway】设置代理。

20210305214436