由于安卓14在证书的路径有变化,导致之前的证书移动到system下面不再生效,分析了下framework.jar,新的系统信任的CA证书放在了/apex/com.android.conscrypt/cacerts下面,并且/apex全部是不可变的。
private static File getDirectory() {
if (System.getProperty("system.certs.enabled") != null && System.getProperty("system.certs.enabled").equals("true")) {
return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}
File updatable_dir = new File("/apex/com.android.conscrypt/cacerts");
if (updatable_dir.exists() && updatable_dir.list().length != 0) {
return updatable_dir;
}
return new File(System.getenv("ANDROID_ROOT") + "/etc/security/cacerts");
}
参考wuxianlin大佬之前发的微博:
Android 14将系统根CA证书,从系统目录/system/etc/security/cacerts迁移到com.android.conscrypt.apex(可通过Google Play动态更新)中,apex的挂载后的目录/apex/com.android.conscrypt/cacerts。
核心修改是这笔提交在原来基于magisk模块overlay /system/etc/security/cacerts方案的基础上,可以在magisk模块的post-fs-data.sh增加一句bind mount即可解决问题。亲测使用HttpCanary在Android 14可以抓仅信任系统根CA证书的应用的包。命令如下:
mount -o bind /system/etc/security/cacerts /apex/com.android.conscrypt/cacerts
当然也可以直接在模块中判断是否存在apex目录,如果存在则直接overlay apex目录,否则overlay system目录
把之前开源的证书移动模块稍微修改了下,增加了安卓14的支持。
一加12 使用APAtch刷入模块测试成功,Magisk和kernelSU自测。
模块下载地址:https://wwfi.lanzouj.com/iF3FH1mama8j
github下载地址:
https://github.com/zhaoboy9692/movecert
参考:
1.https://weibo.com/3322982490/Ni21tFiR9
2.https://book.hacktricks.xyz/v/cn/mobile-pentesting/android-app-pentesting/install-burp-certificate#android-14-zhi-hou
3.https://github.com/NahidaBuer/HttpCanary-SSL-Magisk-A14
原文始发于微信公众号(小白技术社):解决安卓14的抓包证书模块
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论