抓包环境配置

抓包工具分类

1
2
3
4
5
6
全局抓包工具 Httpv7 http、debugger pro
代理抓包工具 Charles、Fiddler
VPN抓包工具 HttpCanary
网卡抓包工具 wireshark
手机抓包工具 tcpdump
Hook抓包工具 r0Capture

Charles配置

配置JDK 启用超级管理员 关闭防火墙

https://www.charlesproxy.com/download/

注册 https://zzzmode.com/mytools/charles/

代理设置,手机把代理设置到charles代理的IP和端口,然后在这个端口抓包,charles相当于代理服务器

Proxy->Proxy settings

取消勾选Support HTTP/2,勾上Enable SOCKS proxy,指定端口

Postern的安装配置

装在手机上的,可以把http代理变成socks代理,抓到更多的包

左上角菜单 -> 配置代理 -> 添加代理服务器,配服务器地址、端口、类型选socks

左上角菜单 -> 配置规则,匹配类型选匹配所有,动作选通过代理连接,代理组就是上面设置的

左上角菜单 -> 打开VPN

charles会弹出对话框,是否允许设备连接

https的抓包

抓百度

chales里,proxy->SSL proxy settings,勾上Enable SSL Proxying,左侧Include添加Host和Port都为*

Help里,SSL Proxying->Install Charles Root Certificate on a Mobile…,会弹出一个教程

如果教程不好用的话,可以选Save Certificate下载证书

1
adb push 11111.pem /sdcard

然后在手机上,设置->安全->加密与凭据->从存储设备安装,选择刚才的.pem证书,安装

此时安装之后可以在加密与凭据->信任的凭据里看到证书是在用户目录下而不是在系统目录下

但是这个时候只能抓浏览器的包,抓不了app的包,比如iqyi,登录点获取验证码无法获取

Android7以后系统只信任系统证书,需要把用户证书移动到系统证书目录

系统证书路径 /etc/security/cacerts

用户证书路径 /data/misc/user/0/cacerts-added

利用Magisk的move certificates模块移动证书,安装这个模块之后重启手机即可

HttpCanary安装配置

HttpCanary装在手机上,可以抓tcp包,就是在手机上搜索之类的有点麻烦

安装完之后进入需要安装证书,就默认顺序点击就行了

注意系统时间要对的上

为什么charles要配合postern,因为有的app不走http代理,socks可以抓到网络层的包

数字证书的话,由服务器下发公钥,然后客户端拿着公钥加密AES密钥,这个AES密钥只有服务器能解,后续就拿着这个AES密钥通信,抓包就是伪造一个公钥去下发给客户端,客户端拿着这个公钥去加密AES密钥,抓包工具就能解密了

r0capture的使用

通用的hook抓包脚本,原理就是hook了libssl.so里的SSL_writeSSL_read等等函数,但是没有去hook libc.so里的函数,如果这个工具抓不到的话,还是得去hook libc.so里的函数,然后打印堆栈,看上层的so是哪些

github上有源码 https://github.com/r0ysue/r0capture

使用方式

1
2
3
4
5
安装依赖 pip install hexdump
attach模式,抓包内容可以保存成pcap文件
python3 r0capture.py -U 包名 -v -p filename.pcap
spawn模式
python3 r0capture.py -U -f 包名 -v