pixel2 Android11 Https 抓包记录

关键词 : pixel2 Android11 Magisk httpcanary Https

最近需要抓HTTPS,手里设备有pixel2 ,4,6 都是高版本。查找了下资料,配置环境,记录下。

前置条件
1.设备一台已Root, Magisk方案

需要物料:
1.win adb环境 。参见:adb
2.win openssl环境。参见:openssl
3.httpcanary.apk 。 自行搜索,可参见: httpcanary

简单说明:
https和https抓包区别,这里不做解释说明,可以参见:https和https抓包区别
期间尝试了多种方案和方式,
主要是CA证书迁移到系统分区 (/etc/security/cacerts/)
Magisk方案,虽然有su权限,但是无法mount system分区,具体原因不做详细解释,系统分区导致
过程使用过多个基于Magisk模块制作的证书迁移方案,包括但不限于:

MoveCertificate-v1.4.1.zip
movecert-1.9
Magic Eraser - Remove Object_2.4.4.apk
原理可以参考:https://bbs.kanxue.com/thread-275433.htm
在我手里设备均为成功,(不代表以上方案失效,有的方案是先安装用户证书,magisk模块会将所有用户证书都拷贝到系统分区实现系统证书安装,无需指定和重新制作Magisk模块)
有时候CA证书成功迁移到了system,但是权限不对。最终采取自己制作Magisk模块,实现证书迁移。
步骤如下:

1.确保手机Magisk正常,可以安装模块
2.安装httpcanary.apk
参考:https://blog.csdn.net/weixin_53891182/article/details/124739048
到处证书,注意,是到处系统证书,(其实两个证书都是一样的,只不过格式不一样,用户证书.pem 系统证书.0 ,后面会转换,发现.pem转换后和.0 相同)
证书导出后,地址 /sdcard/Download
使用adb pull 到电脑 ,配用
3.准备Magisk模块,最基础模块即可,
这里简单解释一下,Magisk模块可以理解成一个压缩包,可以在Magisk手动安装模块,安装成功后,Magisk会根据规则,释放和运行模块脚本,达到模块效果
Magisk模块可以创建 system目录,模块安装后,system目录中文件会被拷贝到系统真正/system 目录
我们想安装系统CA证书,就是要把证书 xxxxxx.0文件拷贝到 /etc/security/cacerts/xxxxxx.0
所以,自己修改Magisk模块,在目录中创建 system/etc/security/cacerts/ 目录,将子系统证书放到此目录,最终效果如图
模块安装后,xxxxxx.0 会被覆盖拷贝到 /system/etc/security/cacerts/xxxxxx.0 实现系统证书安装
3.1具体操作
解压Magisk模块,将步骤2导出的证书,替换到模块/etc/security/cacerts/目录下,证书名字不要修改
有时候,手里拿到证书只有pem格式,非android系统证书xxxxx.0格式,需要转换
转换方式,参见:pem格式转换
替换完毕后结构如下:
├─common
├─META-INF
│ └─com
│ └─google
│ └─android
├─README.assets
└─system
└─etc
└─security
└─cacerts
└─xxxxx.0

证书替换完毕后,重新打包Maigsk模块,说是重新打包,其实就是再压缩,注意压缩格式路径,不要多一级目录,我用的7zip,在当前目录-右键添加压缩文件,输入压缩文件名(随便写zaaa.zip) 创建压缩文件

Magisk模块修改完成后,adb push 到手机 ,例如 adb push zaaa.zip /sdcard/Download/
手机打开Magisk ,选择模块-从本地安装-找到下载目录- zaaa.zip ,选择安装,
顺利的话,会看到安装日志, (这里可以参见Magisk安装日志)
重启,(每次安装完毕模块,需要重启生效,重启后才能将证书复制到系统分区)
打开httpcanary ,验证是否可以获取到 https数据

4.补充:
为快速排查问题
1.首先确保Magisk安装模块正常,先安装其他基础Magisk模块,看是否正常
2.安装修改后Magisk模块前,先用httpcanary 查看是https数据,最好有定向接口验证,确认此接口是https切未加密数据,不然解决了https依然看到加密乱码,会怀疑没成功
3.安装修改后Magisk模块前,先adb shell 查看 /system/etc/security/cacerts/证书 ,注意时间,一般是否很早时间
4. 安装模块后,再次查看 /system/etc/security/cacerts/下证书,注意时间,是否有新增证书, 可用grep 筛选
5.系统证书安装成功后,再次打开httpcanary 验证接口,可能httpcanary 识别未安装,实际可以获取到https内容,据说是因为httpcanary 识别问题,未作研究。
6.习惯使用charles 的同学,可以在手机导出证书,转换成系统证书格式后,根据步骤添加到 系统证书,实现charles 抓包,在使用过程中,发现httpcanary 和charles 无法同时使用,未作细究

以上就是 android 11 上https抓包记录,
请注意,以上内容步骤教程,均来自网络,抓包仅做数据验证使用,请勿用于非法用途,请遵守网络安全法。如拿去非法使用与本人无关!

posted @ 2024-02-08 14:55  wang_xiaohao  阅读(320)  评论(0编辑  收藏  举报