返回

Android 7.0系统下抓包并解密HTTPS的内容

发布时间:2022-03-30 14:33:58 851
# fiddler# android# 技术# 监控# 软件

从Nougat开始,Android更改了对用户安装证书的默认信任行为。这意味着,从sdcard安装Burp CA将无法拦截应用流量。除非另有说明,否则应用程序将只会信任系统级别的CA。
因此,在安卓7.0及以上系统中,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书的。(ios和安卓<7.0的版本没有此问题)

操作流程(以Burp Suite为例,Fiddler同理):

一、生成证书文件

1、以DER格式导出CA证书,这里将它保存为cacert.der。

2、下载安装OpenSSL:
http://slproweb.com/products/Win32OpenSSL.html

3、用OpenSSL将DER证书转换成PEM格式:
openssl x509 -inform DER -in cacert.der -out cacert.pem

4、获取证书对应的hash值(在输出内容的第一行):
OpenSSL 版本>=1.0时:
openssl x509 -inform PEM -subject_hash_old -in cacert.pem
OpenSSL 版本<1.0时:
openssl x509 -inform PEM -subject_hash -in cacert.pem
如图,这里获取到的hash值为:9a5ba575

5、把PEM格式的证书文件重命名为hash值并以.0结尾的文件名。
(这里以hash值为“9a5ba575”为例,文件名修改为“9a5ba575.0”)

二、Android 7.0+导入ca证书(设备需要ROOT)

1、将证书复制到设备
(1)用adb来复制证书,但由于必须将其复制到/system文件系统,所以我们需要将它重新挂载为可写。作为root用户,adb remount非常简单。
(假设PEM格式的证书已经重命名为<hash>.0,这里的文件名为“9a5ba575.0”)

adb root
adb remount
adb push <hash>.0 /sdcard/

(2)进入adb shell将文件移动到/system/etc/security/cacerts,并将文件权限修改为644:
(这里的文件名为“9a5ba575.0”)

adb shell
su
mount -o rw,remount /system
mv /sdcard/<hash>.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/<hash>.0



(3)重启设备:
reboot

2、检查导入的证书是否生效
证书导入完成,设备重启后,在手机“设置->安全和隐私->加密与凭据->信任的凭据” 里查看有没有刚刚导入的证书。

三、开始抓包
按照抓包软件的通常使用方式启动抓包即可。(如配置抓包软件的代理监听端口,在安卓系统中配置系统代理为抓包软件所监听的IP和端口,然后启动抓包软件的抓包功能,在安卓系统中打开要抓包的APP开始抓包解密)

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线