解决APP抓不到包——安装证书到系统根证书

1 概述

本文介绍了如何安装证书到系统根证书的方法和过程。此方法也适用于抓取微信小程序的数据包。

思路:

1 使用openssl将der证书转为pem证书,生成pem证书的hash,生成要使用的证书。

2 使用adb调试功能,将证书放到系统证书目录中。

本次使用环境:夜神模拟器、BurpSuite证书、Kali系统

2 详情

一般情况下手机在安装了BurpSuite的伪证书后,是可以抓大部分APP数据包的,但APP在安卓7.0或更高的系统下,无法抓取数据包,是因为安卓从7.0开始应用只会信任系统预装的CA证书,而不会信任用户安装的CA证书,所谓的中间人攻击就不起效果了。这种的情况下,一个解决方法就是使用低于7.0版本的安卓系统进行抓包,另一个就是把使用的伪证书安装到系统证书目录中,伪装成系统证书。


如下图所示,是只把burp证书装到了用户证书中,APP打开后无法正常使用,验证码都无法正常加载出来。

image-20220720170327752

2.1 制作证书

导出证书:以下两种方法均可,通过浏览器访问http://burp下载证书,或者直接导出证书。

image-20220720170416881


image-20220720170425009


打开Kali终端,将der证书转为pem证书:

openssl x509 -inform der -in burp.der -out burp.pem

生成pem证书的hash:

openssl x509 -inform PEM -subject_hash_old -in burp.pem

重命名/复制证书:

cp burp.pem 9a5ba575.0

如果上面的过程没有错的话,生成的证书hash以及文件内容应该是下面截图是一样的。

image-20220720170453509


得到Hash值后,将证书文件修改名称为Hash值.0,之后用adb工具push到测试设备,或者文件管理器等其他方式上传到设备的/system/etc/security/cacerts/目录下,最后再给证书文件添加644权限即可。

2.2 复制到系统证书目录

注意:adb检测不到模拟器的解决方法如下

主流安卓模拟器连接方式:

夜神模拟器:adb connect 127.0.0.1:62001

逍遥安卓模拟器:adb connect 127.0.0.1:21503

天天模拟器:adb connect 127.0.0.1:6555

海马玩模拟器:adb connect 127.0.0.1:53001

网易MUMU模拟器:adb connect 127.0.0.1:7555 MacOS:adb connect 127.0.0.1:5555

genymotion模拟器:adb connect 127.0.0.1:5555

谷歌原生模拟器:adb connect <设备的IP地址>:5555

打开adb,查看设备,夜神模拟器bin文件夹下既有adb这个工具,可以直接使用。记得把9a5ba575.0文件放入到bin目录下,使用手机的话记得开启usb调试模式。

image-20220720170527099


依次执行

adb root // 提升到root权限

adb remount //重新挂载system分区

adb push 9a5ba575.0 /system/etc/security/cacerts/ //将证书放到系统证书目录

查看系统证书就会发现成功安装

image-20220720170537530

image-20220720170602598

image-20220720170616096


执行完之后,就可以正常抓取到数据包,正常使用APP功能。

image-20220720170626092

posted @ 2022-07-20 22:29  NoId1  阅读(5447)  评论(0编辑  收藏  举报