【Android安全-Charles + Clash 对外网 App 进行抓包】此文章归类为:Android安全。
0x01、简单介绍
看到很多人问,所以抽空写了这篇帖子。
对于 App 数据包逆向分析来说,第一步也就是最重要的一步就是抓到完整的数据包。在国内 App 抓包方案中成熟的有很多也很好用,经典的就是 Fiddler 、 Charles、Burpsuite等等。但在分析外网 App 时,通过这些方案进行抓包都会面临一个问题,没梯子,抓不到包。本文将介绍如何使用 Charles 和 Clash 这两个个工具来捕获和分析外网 App 的网络数据包。
0x02、配置环境
Charles 任意本版
Clash 任意版本,需科学
0x03、配置 Clash
科学后,查看常规端口,记住该端口,再将允许局域网代理打开,如不打开局域网代理,手机无法接入。

0x04、Charles CA 证书安装
Android 7之前把 CA 证书安装到用户证书下即可,但 Android 7 之后的版本只有系统证书才能被信任,所以需要将 CA 证书安装到系统证书下。
方法一: Move Certificates 模块
部分版本可以通过 Magisk Move Certificates 模块达到此效果,该模块会把用户安装在信任凭证中属于用户部分的证书在重启时移入系统证书目录下,但在部分系统中安装的 CA 证书在用户凭证下,该模块失效。

方法二:自制证书
在电脑中将 Charles 的证书(.pem格式)导出到本地路径,名称为charles.pem。
计算证书 hash 值并修改名称:
1 | openssl x509 - inform PEM - subject_hash_old - in charles.pem
|
将首行 e9352f7c 的 8 位的 hash 值进行复制,拷贝并命名证书:
1 | cp charles.pem e9352f7c. 0
|
证书导入到手机,执行以下adb命令将证书导入到/system/etc/security/cacerts/
1 2 3 4 5 6 7 | adb root
adb remount
adb push e9352f7c. 0 / sdcard /
adb shell
mount - o rw,remount / system
mv / sdcard / e9352f7c. 0 / system / etc / security / cacerts /
chmod 644 / system / etc / security / cacerts / e9352f7c. 0
|
系统设置 → 更多设置 → 系统安全 → 加密与凭证 → 信任的凭据中可查看

0x05、Charles 配置
Proxy->Proxy Settings 进行如下设置:

Proxy->External Proxy Settings 进行如下设置:

手机连接与电脑相同 WiFi 对其进行代理,IP 为对应的主机 IP。

0x06、测试
将代理设置好后,在手机上对 google.com 进行访问,看 Charles 是否能抓到相关数据包,若能则成功。

更多【Android安全-Charles + Clash 对外网 App 进行抓包】相关视频教程:www.yxfzedu.com