将抓包工具证书安装到系统证书目录
正当我不知道下一篇文章水什么的时候,我的小伙伴就直接扔来一张图,说是之前可以
问题
报错提示:The c lient failed to negotiate a TLS connection to xx.com Remote host closed(客户未能与xx.com协商建立TLS连接 远程主机已关闭)
抓包环境
-
Android 10 -
burp -
证书安装在用户目录
猜测
第一反应应该是证书校验了,但突然反应过来,他使用的Android 版本是10,所以很大可能是应用不信任用户凭据,之后在想到微信在7.0版本之后不再信任用户的证书,具体如下:
安卓系统 7.0 以下版本,不管微信任意版本,都会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以下版本,微信会信任系统提供的证书
安卓系统 7.0 以上版本,微信 7.0 以上版本,微信只信任它自己配置的证书列表
原因
在安卓7.0及以上系统对于证书的安全策略做了更改,AndroidNougat之后,更改了Android处理受信任证书的颁发机构方式,而微信在系统7.0版本之后也不再信任用户的凭据。
解决办法
第一种: 下载wx 7.0版本以下的apk;将burp的证书移动到系统根目录下
第二种:使用低版本模拟器,比如mumu模拟器本身Android版本就低于7.0 就可以解决问题
将证书移动到系统根目录
前提: 需要root 手机一部(后续需要对/system目录进行操作)
安装模拟器和下载apk都不用提,我来写一下怎么将抓包工具的证书导入系统根目录
-
导出抓包工具CA 以burp 为例 选择一个文件,next 完成证书导出 -
更改证书格式 先要使用openssl 提取证书的hash值,burp导出的证书的der 格式,所以先要转成pem证书 将der 格式转成der格式
openssl x509 -inform DER -in burp.der -out burp.pem
获取证书的hash
openssl x509 -inform PEM -subject_hash_old -in burp.pem
-
推送到Android 根目录 Android 根证书目录都是以pem证书的hash值+.0 格式 先修改文件名 cp burp.pem 9a5ba575.0 然后可以用adb 推送到Android 手机(当权限不够,可以先推送到可写目录,在使用文件管理器移动到根目录) 这里要注意,一般root的手机是不能直接访问system目录的(模拟器本身就是root权限可以直接访问) 我们可以用MT管理器完成向系统根目录的推送,将证书推送到如下目录,这是每个手机都有的目录,比较常用 ./adb push /Users/xxw/Documents/资源/burp/证书/9a5ba575.0 /sdcard/Download/
-
打开MT管理器,将证书移动到根目录 -
查看系统凭据
抓包测试
总结
要注意证书的格式,burp导出的der格式,charles导出的是pem格式,Android 高版本更加的安全,但对我们渗透人员限制也多,尽量在测试时选择低版本手机去测试,会大大节省调试的时间。
|