【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程

以下教程可能耗费你数小时时间,请注意时间。

 

目标:抓取HTTPS的包

如果你的手机是在Android 7.0+及其以上,想要抓取HTTPS的请求,必须要将证书(*.pem)用系统用户的权限安装,即把这个证书,要放到Android系统的加密与凭据->信任的CA证书。

以下这个是我们要完成的最终目标——把Charles的证书放到系统文件下。

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第1张图片

前置工作:

1.准备一台已经有ROOT权限的小米手机。(具体步骤就是先去解锁,然后刷开发版的包,然后在安全中心中开启ROOT,开启USB调试)【重要】http://www.miui.com/unlock/index.html,按照步骤即可解锁。

 

2.电脑安装了Charles (https://www.charlesproxy.com/assets/release/4.5.6/charles-proxy-4.5.6-win64.msi
)。

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第2张图片

然后,紧接着,把这个证书保存到桌面,命名为Charles.pem,我建议是放到和后面用到的安卓adb工具一个路径。

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第3张图片

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第4张图片

3.安装adb(platform-tools)。

打开https://developer.android.google.cn/studio/releases/platform-tools 下载平台工具,你是哪种操作系统就下哪个,我这里是Windows。然后在桌面解压

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第5张图片

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第6张图片

4.安装openssl以及配置环境变量

这里仅展示Windows。下载地址http://slproweb.com/products/Win32OpenSSL.html

选择64位。迅雷可以尝试这个地址: https://slproweb.com/download/Win64OpenSSL-1_1_1g.exe

安装完毕后。配置环境变量,将 openssl的bin目录放到Path环境变量,我的是这个路径 C:\Program Files\OpenSSL-Win64\bin

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第7张图片

完成这些准备工作后,就和很多的教程一样了。

1.把前面桌面的那个证书charles.pem复制到桌面的文件夹内如图

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第8张图片

2.紧接着, 使用快捷键将CMD控制台唤出(Shift + 鼠标右键) 

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第9张图片

3.此时,插入手机,并且确保USB调试已经打开。 

4.在命令行中键入命令

adb devices

可以看到已经检测到手机

 5.然后,依次执行下面命令,#后面是注释,关注adb开头即可。

# 以 root 权限执行

adb root

# 解决目录 read only 关键命令行

adb disable-verity

# 重启  (手机如果没有自动重启,可以手动重启)

adb reboot

# 以 root 权限运行

adb root

# 重新挂载

adb remount

# 设置读写

adb shell mount -o rw,remount /system

这个网上的一般教程,但是我在这块执行到最后一个命令adb shell mount -o rw,remount /system的时候出现的问题。 

这里爆出了一个错。后来查阅后,其实在上一个重新挂载的命令就已经可以有写权限了,因为默认是只读权限。所以这个问题我们根本不用理会!

mount: '/system' not in /proc/mounts

6.权限完成后,要准备使用openssl命令了。这里确保前面的openssl的环境变量安装成功,要不然会告诉你openssl命令不存在。

#计算hash,后面会用到,红框中的字符串就是

openssl x509 -subject_hash_old -in charles.pem

 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第10张图片

7.修改这个charles.pem文件的名称为 hash值.0 。我这里的hash是bdb7xxx,那么原来的charles.pem文件就改为bdb7xxx.0。

如图

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第11张图片

 8.最后一步,.把凭据复制到系统凭据目录下

# 安装命令

adb push bdb7xxx.0 /system/etc/security/cacerts

以下如果提示你file pushed不用看。

出现什么权限不足,空间不足的可以看看。 

如果出现 remote write failed: No space left on device,说明空间可能不够了。具体方法在下面链接,把系统自带的一个Apk删除,留出空域的空间,即可完成复制。

https://blog.csdn.net/zxb394874928/article/details/52702383

然后

# 重启  (手机如果没有自动重启,可以手动重启)

adb reboot

# 以 root 权限运行

adb root

# 重新挂载

adb remount

# 安装命令

adb push bdb7xxx.0 /system/etc/security/cacerts

 【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第12张图片

 完成。最后在回到第一步进入,设置->密码隐私与安全->系统安全->加密与凭据-》信任的凭据,系统栏就可以看到了。

这里是小米的一个https的一个请求,可以明显看到参数已经抓到,再也不是「」了

【教程】小米手机Android 7.0+抓取HTTPS请求安装Charles证书主要流程_第13张图片

参考:

https://segmentfault.com/a/1190000011573699

https://www.cnblogs.com/Entr0py/p/9675061.html

https://blog.csdn.net/u013412772/article/details/103251506

你可能感兴趣的:(教程,https抓包,小米手机,charles,Android)