0x01、简单介绍

看到很多人问,所以抽空写了这篇帖子。
对于 App 数据包逆向分析来说,第一步也就是最重要的一步就是抓到完整的数据包。在国内 App 抓包方案中成熟的有很多也很好用,经典的就是 Fiddler 、 Charles、Burpsuite等等。但在分析外网 App 时,通过这些方案进行抓包都会面临一个问题,没梯子,抓不到包。本文将介绍如何使用 Charles + Clash + Postern 这三个工具来捕获和分析外网 App 的网络数据包。

0x02、配置环境

Charles 任意本版
Postern 任意本版
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  # 用root用户重新挂载为rwx权限, 这两步必须在shell外部执行
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 进行如下设置:
图片描述

0x06、WiFi 代理抓包

1、WiFi 代理设置

手机连接与电脑相同 WiFi 对其进行代理,IP 为对应的主机 IP,端口为 Charles HTTP Proxy 所配置的端口。
图片描述

2、WiFi 代理抓包测试

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

0x07、Postern 抓包

1、Postern 服务器和端口设置

Postern 的作用是代理转发,Vpx 代理是处于网络层的,可以抓到更多的数据包。
图片描述
服务器名称:可任意填写
服务器地址:主机 IP 地址就是服务器地址,我这是 172.20.10.5。
服务器端口:可自行在 Charles 中设置,参考:Charles的配置,默认为8889,可更改。
代理类型:SOCKS5
用户名 & 密码:填 | 不填 都可

2、Postern 匹配规则设置

匹配类型:匹配所有地址
动作:通过代理连接
代理/代理组:上面设置的:服务器名称 - 服务器地址:服务器端口,例:test - 172.20.10.5:16666
图片描述

3、抓包测试

上述内容都配置好后,点击开启 Vpx,会看到手机顶部会有个钥匙的标志或 Vpx 字样,不同品牌、不同版本手机会有所不同:
图片描述
开启后,在手机上对 google.com 进行访问,看 Charles 是否能抓到相关数据包,若能则成功:
图片描述

0x08、总结

抓包的方法有很多,找到适合自己的就好了,祝大家都能抓到自己想要的包。

最新回复:
RiDiN 2024-07-12 15:33:01

论方便,这个办法说第一应该没人敢称第二的 https://bbs.kanxue.com/thread-281053.htm 

mb_ldbucrik 2024-07-12 23:06:52
感谢楼主分享
mb_dbpxyjyk 2024-07-15 17:01:11
我有个app 根本不能抓到  一直是unknown   invalid first line in request 
行简 2024-07-16 09:50:04
mb_dbpxyjyk 我有个app 根本不能抓到 一直是unknown invalid first line in request
并不是所有app都能抓到包,你看看配置好了之后别的app能不能抓包,如果可以就是这个app有相关检测,你需要绕过。