Featured image of post 通过 WSA 抓取 android 的 https 网络请求包

通过 WSA 抓取 android 的 https 网络请求包

android 9 以上版本,app 不再信任用户安装的证书,只能通过 root 手机把证书移动到 system 分区才能实现抓包。一般日常使用手机为了安全是不可能 root 的,这里通过 Windows 的 WSA 来实现抓包。

准备环境

  1. WSABuilds 下载安装已 root 带 magisk 的 WSA 镜像(假如之前已安装过 WSA,需要先到系统应用列表中,把旧的卸载)

  2. 安装后,开始菜单中搜索 android,找到 WSA 设置应用并打开,选择 开发人员,并打开开发人员模式

  1. 安装 APK 安装程序,实现双击安装 apk 和自动安装 adb 命令工具

  2. 安装 WSA 工具箱,用于上传文件到 WSA

  3. 下载 Magisk app,并安装

  4. 下载 Reqable 抓包工具,并安装

安装 Reqable 证书到 system 分区

  1. 打开 Reqable,选择菜单 证书 -> 安装根证书到 Android 设备 -> Magisk 模块,并下载 Magisk 模块 reqable-magisk.zip

  2. 打开WSA 工具箱,使用文件传输功能把刚刚保存的证书上传到 wsa 的Download目录

  3. 下载 MagiskMagiskTrustUserCerts模块压缩包,并通过WSA 工具箱上传到Download目录

  1. 打开 Magisk app,点击模块 -> 从本地安装,选择刚刚上传的Download目录下的reqable-magisk.zipAlwaysTrustUserCerts压缩包

  1. 安装成功后,正常会提示你重启 wsa,没的话,在命令行中执行adb reboot手工重启下

  2. 重启后,点击WSA 工具箱首页的Android设置,正常能在安全->更多安全设置->加密与凭据->信任的凭据->系统中,看到reqable证书

WSA 工具箱假如连接不上,可以在命令行中使用 adb connect 127.0.0.1:58526 命令重启adb server

配置代理抓包

  1. 打开 Reqable,启动抓包

  2. 打开命令行,执行下面的命令设置 WSA 代理:

adb connect 127.0.0.1:58526
adb shell settings put global http_proxy 192.168.x.x:9000

其中192.168.x.x需改为Reqable所在的 ip 地址

  1. 下载安装需要抓包的 app,访问就能在Reqable看到 https 流量了:)

删除代理

去掉代理需执行下面命令:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

部分 app 抓不到包

  1. app 可能使用了 http3(quic) 协议

很多手机厂商的官方 app 都是使用 quic 协议,而现在抓包软件一般都不支持。可以使用 jadx 打开 apk 搜索 quic,看能不能找到相关信息。

解决方法可以参考文章 APP逆向分析,使用 Frida hook 修改 app ,强制降级为 https 协议。

参考资料

一种对QUIC协议的抓包方案

快手v8.x版本抓包分析

Built with Hugo
主题 StackJimmy 设计