安卓7.0手机抓包配置(2023/05/22 yan)
*常见安卓系统抓包策略:
1.android 7.0以下系统的设备,但不管是真机还是模拟器,运行起来都是比较卡的;
2.把应用apk的targetSdkVersion设置为23及以下;
3.在应用的res/xml目录下添加文件 network_security_config.xml,设置信任用户证书;
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<!-- 设置允许http明文传输-->
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<!-- 设置信任系统级别证书-->
<certificates src="system" />
<!-- 设置信任用户自定义证书,设置之后才能用fiddler之类的抓取https请求,出包最好不要设置,防止被抓包-->
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
设置属性:android:networkSecurityConfig=“@xml/network_security_config”
4.安装抓包证书到安卓系统。
一、准备:
1.root手机(模拟器:夜神、雷电或者安卓root的真机)
2.Openssl
二、未能抓包原因:
安卓设备android 7.0+的系统同时应用设置targetSdkVersion >= 24,默认是不信任用户证书的,所以就没法抓到应用发起的https请求,Fiddler就会看到一堆200 HTTP Tunnel to xxx.xxx.xxx:443的请求日志,这些都是没有成功抓取的https请求。
三、Fiddler导出证书:
Fiddler的证书导出到电脑,点击Tools
-> Options
-> HTTPS
-> Actions
-> Export Root Certificate to Desktop
四、openssl安装:
下载地址:https://slproweb.com/products/Win32OpenSSL.html
1.下载Window版openssl,打开页面,下拉到下面,选择最上面的64位EXE点击下载安装
2.验证工具是否安装成功:cmd–>openssl
3.若提示“openssl”不是内部或外部命令,则需配置环境变量
4.配置环境变量:
五、证书生成:
1.证书转换,已经是pem格式的证书不需要执行这一步(Fiddler导出的为.cer证书;Charls导出的为.pem证书)
openssl x509 -inform DER -in xxx.cer -out cacert.pem
2.进行MD5的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
从上面可以看到,生成Fiddler证书的hash值是269953fb
3.将pem
证书重命名
使用上面复制的值(269953fb)对pem
证书进行重命名
ren cacert.pem 269953fb.0
六、将新证书放入手机系统证书目录(/system/etc/security/cacerts):
1.查看模拟器获取权限,证书放置:
adb devices
adb root
adb remount
adb push xxxx/xxx/xxxx/ system/etc/security/cacerts
2.查看是否放入成功(adb shell)
3.查看系统
模拟器的设置 -> 安全 -> 信任的凭据 -> 系统,往下拉可以看到Fiddler证书