Android7以上证书安装
source link: http://blog.wen2go.site/2021/12/07/Android7%E4%BB%A5%E4%B8%8A%E8%AF%81%E4%B9%A6%E5%AE%89%E8%A3%85/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Android 7.0
后更新安全策略,软件可以自身选择是否相信用户导入的证书。所以当我们在手机导入charles
的证书后,有些软件依旧抓不到Https
的包。我们需要把证书导入到手机系统里面而非用户里面。
上图是我的pixel 3xl (安卓9.0)导入成功之后的截图。亲测可以抓到https
的包。
这里提供三种方案处理证书:
获取证书的
hash
值,将证书名改成系统可识别的证书导入到根目录。首先准备
openssl
命令行工具,手机需要root
,证书导出到桌面官网的
openssl
需要配置很多东西,这里我们可以下载其他人做的便捷版安装包 http://slproweb.com/products/Win32OpenSSL.html, 下载对应版本安装好 ,然后配置一下环境变量就可以了。将证书转为
pem
格式。charles
可以直接转为pem
格式,fiddler需要自己转:openssl x509 -in charles.cer -inform der -out charles.pem # cer转为pem
使用
openssl
查看pem
证书的 MD5值:openssl x509 -inform PEM -subject_hash_old -in charles.pem
获取一段类似
32d678a2
的字串,将文件名重命名为32d678a2.0
最后把
32d678a2.0
文件放到手机的/system/etc/security/cacerts
目录下,重启手机即可。如果手机root了,确没有
system
挂载权限,可以先用adb shell
把文件push到/sdcard
里,再用MT管理器
或者RE管理器
移动到指定目录。adb push 32d678a2.0 /sdcard
注意:有时候证书导入到根目录依然抓不到包,用下面指令再获取一个加密值,跟之前一样导入到根目录,两个文件一起放进去。
openssl x509 -inform PEM -subject_hash -in charles.pem
安装
Magisk
,然后从magisk
里安装Move Certificates
插件直接在
magisk
模块页面搜插件名就可以- 然后导入
charles
证书,正常安装到用户目录,当你抓包的时候,插件会自动帮你把证书移到根目录使用,看插件指令就能看出来。
- 然后导入
使用框架,把app装到沙箱里,然后用
[JustTrustMe](https://github.com/Fuzion24/JustTrustMe)
模块。- 因为
Xposed
官方只支持到8.0, 对于更高版本可能有不兼容的情况,这里建议安装太极框架,太极框架兼容xpsoed
的模块
上图为太极框架界面,手机没root,只能用太极阴,我这里是太极阳,没关系,这并不影响下面的操作。
点击添加应用,把想要抓包的软件添加到框架里,太极阴需要加载一会并卸载软件重装,装完之后点击模块管理,
把安装的
JustTrustMe
勾选上
- 因为
- 重新打开需要抓包的软件,就可以进行
https
抓包了
第三种办法应该就是hook了软件的证书验证,其实我们也可以使用
frida hook
证书验证,不过需要自己找到证书验证的hook
点, 本人 java比较辣鸡,找起来比较费劲,只能找大佬造好的轮子用了。。。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK