吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5526|回复: 21
收起左侧

[Android 原创] WSA中抓取SSL/TLS加密数据包

  [复制链接]
T4b1b1t0 发表于 2022-7-26 08:48

本文是原创文章,转自个人专栏,仅记录笔者初次Android抓包的过程记录,内容为初级知识,高手请随意 Ctrl + W 。

前言

出于某种个人需求,需要抓取某App的网络数据包。而大多数应用都会使用SSL/TLS协议传递加密数据包,这就为Android抓包增加了一定难度。比较常见的一些抓包应用(如Fiddler、Charles等)是利用创建代理服务器充当中间人的角色从而截取App的加密数据包。但是进行协议数据包的解密需要安装根证书,在Android 7以下的版本可以直接在设置里安装,而Android 7及以上版本证书被分为系统证书和用户证书,并且App默认不会信任用户安装证书。因此往往需要手动将证书安装到系统证书,而这在大多数情况需要 Root 权限。可是在Android手机日趋封闭的趋势下,在实体机上获取 Root 权限是比较困难的。

其中的一种解决思路是在虚拟机上进行抓包分析,但是常见的虚拟机 Android 版本比较低且某些App只提供了 ARM ABI,这就造成了一些应用的兼容性问题。而WSA(Windows Subsystem for Android)利用的 Intel Bridge 技术可以在基于 x86 的处理器上模拟ARM应用程序,并且支持较高的安卓版本(笔者安装时已默认为Android 12),这就为逆向分析提供了很大便利。

本文将记录笔者初次进行安卓抓包的过程,包括WSA、Magisk等模块、根证书的安装,最终实现了SSL/TLS数据包的解密。

过程

首先我们需要一个用于测试捕包的Android环境,一开始我是选用了Microsoft提供的原生WSA环境。其中,在安装前需要进行BIOS的虚拟化、Windows可选功能中的Hyper-V和虚拟机平台等配置。由于笔者使用的是Windows 11 家庭版,默认不支持Hyper-V,需要通过运行以下的脚本开启。

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause

在配置好前置环境后,我们就可以前往 Microsoft Store 进行WSA的一键安装,也可以通过下载Microsoft提供的 WSA 和 Microsoft UI Xaml文件进行手动安装。

安装好后我们可以进行开发者模式等设置的配置,并安装 WSA TOOLBOX、WSA PacMan等工具便于我们进一步进行系统设置和apk安装。

配置好WSA环境后,我们就可以指定WSA的虚拟网卡进行捕包分析了。在对某App请求的特定接口进行数据包分析时,可以看到在该过程中客户端与服务器端使用了加密的TLS协议进行通信。

因此我们需要对加密的TLS数据包进行解密。由于 Wireshark 的解密似乎较为麻烦(笔者尚未成功实现qaq),下面将采用 Windows 中的 Fiddler 以及 Android 中的 HttpCanary 进行解密。

鉴于上述的两种方法都需要 Root 权限以安装根证书,我们不再采用原生的WSA,转而使用

集成了Magisk等模块的WSA。

跟随该项目README的指引,我们fork出自己的项目,进行Github Action的构建,自定义需要的build。

构建完成后我们下载对应的build并解压,以管理员模式运行文件夹下的 Install.ps1 脚本,安装成功后 Magisk/Play store 会自动启动。

为了在WSA上安装系统根证书,我们需要再安装 LSPosed 和 MagiskTrustUserCerts 模块,这个 Magisk 模块会在系统每次启动时将用户证书移动到系统证书里。为了解决不少App存在的 SSL Pinning 问题(只信任自己设置的根证书),可能还需要安装 JustTrustMe模块。

到此为止,我们已经配置好抓包所需要的Android环境。下面我们正式使用 Fiddler 和 HttpCanary 两种工具进行某App的抓包分析。

Fiddler

首先点击菜单栏的 Tools/Options 打开设置页面。

在 HTTPS 页面勾选 Decrypt HTTPS traffic 以启用 Fiddler 的 HTTPS 协议的解析功能。

在 Connections 页面勾选 Allow remote computers to connect 以允许远程连接,并配置Fiddler监听的端口,使用默认的8888即可。

接下来我们打开 WSA TOOLBOX进行网络代理的配置。

将代理的IP地址指定为WSA的网关地址,端口设置为Fiddler监听的8888。

接下来我们在 Windows 的浏览器中访问 http://127.0.0.1:8888 下载 Fiddler 的根证书,通过 ADB TOOLBOX 或 adb指令将它传送到WSA中。然后在 Android 设置 / 安全 / 加密与凭据 / 从SD卡安装 进行 Fiddler根证书的安装。最后不要忘了重启WSA以使 MagiskTrustUserCert 模块生效,在每次启动时将 Fiddler证书移动到系统根证书。(并注意一下重启后代理貌似会失效,请重新配置一下QAQ)

最后打开需要抓包的App,开始我们的快乐捕包。好耶ヾ(≧▽≦*)o

HttpCanary

由于高版本的Android收紧了App安装CA证书的权限,只能用户手动安装。而 HttpCanary 已有较长时间未更新,导致高版本Android无法正常安装证书抓包,该工具使用的困难也主要在证书的安装上。

下文将只介绍具体安装过程,实现所需要的逆向分析思路在参考资料中给出。

首先我们需要获取HttpCanary的证书,由于较新版本的未安装证书无法导出,所以需要到 /data/data/com.guoshi.httpcanary/cache 复制出 HttpCanary.pem 和 HttpCanary.p12到一个便于访问的位置(比如Downloads)。

然后选择 HttpCanary.pem 安装为CA证书,选择 HttpCanary.p12 输入密码 'HttpCanary' 安装为 VPN和应用用户证书。

为了让应用识别到证书,需要到 /data/data/com.guoshi.httpcanary.premium/cache 创建一个空文件并命名为 HttpCanary.jks。再创建一个 HttpCanary.pem 复制并重命名为 87bc3517.0。

最后就可以开始我们的ntr抓包了(/ω\)。

注:如果使用Fiddler开启了代理,在使用HttpCanary记得关闭。

参考资料

  1. 使用Fiddler在WSA-Windows安卓子系统-上抓包

  2. HttpCanary 在 Android 11 上的使用 - 简单逆向分析

免费评分

参与人数 8威望 +1 吾爱币 +32 热心值 +6 收起 理由
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
YZXHZY + 1 谢谢@Thanks!
Lontern + 1 + 1 谢谢@Thanks!
renshaowei + 1 我很赞同!
lingyun011 + 1 + 1 用心讨论,共获提升!
李佑辰 + 1 谢谢@Thanks!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
721woaipojie + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xixicoco 发表于 2022-7-26 19:16
有意思,很速度的
riboly 发表于 2022-7-26 19:23
yixuxi 发表于 2022-7-27 09:39
hjw01 发表于 2022-7-27 12:39
mark了  谢谢
nullable 发表于 2022-7-27 13:51
一位不愿透露姓名的米系root并且安装httpcanary成功的用户默默路过。
taiyang188 发表于 2022-7-27 14:00
谢谢分享
你就是我的阳光 发表于 2022-7-27 15:49

谢谢分享
yanecc 发表于 2022-7-27 17:32
学习了,感谢分享
joylau123 发表于 2022-7-27 19:54
感谢分享.向大佬学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 09:22

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表