Android抓包环境配置
抓包环境配置
抓包工具分类
1 | 全局抓包工具 Httpv7 http、debugger pro |
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_write
和SSL_read
等等函数,但是没有去hook libc.so
里的函数,如果这个工具抓不到的话,还是得去hook libc.so
里的函数,然后打印堆栈,看上层的so是哪些
github上有源码 https://github.com/r0ysue/r0capture
使用方式
1 | 安装依赖 pip install hexdump |