🛫 系列文章导航
- 【Frida】【Android】01_手把手教你环境搭建 https://blog.csdn.net/kinghzking/article/details/136986950
- 【Frida】【Android】02_JAVA层HOOK https://blog.csdn.net/kinghzking/article/details/137008446
- 【Frida】【Android】03_RPC https://blog.csdn.net/kinghzking/article/details/137050967
- 【Frida】【Android】04_Objection安装和使用 https://blog.csdn.net/kinghzking/article/details/137071768
- 【Frida】【Android】05_Objection实战 https://blog.csdn.net/kinghzking/article/details/137071826
- 【Frida】【Android】 06_夜神模拟器中间人抓包 https://blog.csdn.net/kinghzking/article/details/137162859
- 【Frida】【Android】 07_爬虫之网络通信库HttpURLConnection https://blog.csdn.net/kinghzking/article/details/137211973
- 【Frida】【Android】 08_爬虫之网络通信库okhttp3 https://blog.csdn.net/kinghzking/article/details/137227041
- 【Frida】【Android】 09_爬虫之Socket https://blog.csdn.net/kinghzking/article/details/137284648
- 【Frida】【Android】 工具篇:ZenTracer https://blog.csdn.net/kinghzking/article/details/137284648
▒ 目录 ▒
- 🛫 系列文章导航
- 🛫 导读
- 开发环境
- 1️⃣ ProxyPin介绍
- 主要特性
- 工作原理
- “用户证书”vs“系统证书”
- 2️⃣ 安裝和使用
- 安裝
- 安裝证书
- 启动HTTPS代理
- 启动抓包
- 验证
- 3️⃣ 竞品介绍
- reqable
- HttpCanary(小黄鸟)【不推荐】
- 🛬 文章小结
- 📖 参考资料
🛫 导读
开发环境
版本号 | 描述 | |
---|---|---|
文章日期 | 2024-03-24 | |
操作系统 | Win11 - 22H2 | 22621.2715 |
node -v | v20.10.0 | |
npm -v | 10.2.3 | |
夜神模拟器 | 7.0.5.8 | |
Android | 9 | |
python | 3.9.9 | |
frida | 16.2.1 | |
frida-tools | 12.3.0 | |
objection | 1.11.0 | |
ProxyPin | 1.0.9 | |
1️⃣ ProxyPin介绍
ProxyPin是一种基于MITM(中间人攻击)的抓包工具,主要用于移动应用程序的安全测试和调试。下面是关于ProxyPin的详解。
主要特性
- HTTP/HTTPS抓包:ProxyPin可以拦截并解析HTTP和HTTPS协议下的数据包,包括请求和响应内容。
- 数据篡改:用户可以在抓包过程中修改请求和响应数据,从而进行相关的安全测试。
- WebSocket支持:除了HTTP/HTTPS,ProxyPin还支持WebSocket协议的抓包和分析。
- 脚本扩展:用户可以编写脚本来扩展ProxyPin的功能,实现自定义的数据处理和分析。
工作原理
中间人攻击(MITM)
:ProxyPin通过将自己伪装成目标服务器与客户端通信,从而使得所有的数据流经ProxyPin,实现抓包和修改数据的目的。SSL/TLS解密
:ProxyPin可以解密通过SSL/TLS加密的数据流量,这使得用户可以查看和分析应用程序中的加密通信内容。
ps: 具体原理可以参考系列文章之《【Frida】【Android】 06_夜神模拟器中间人抓包 https://blog.csdn.net/kinghzking/article/details/137162859》
“用户证书”vs“系统证书”
Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个Tab。用户通过浏览器下载安装或者通过WLAN高级设置安装的证书均为用户证书。
安装为系统证书有什么好处呢?
安装用户证书必须要设置
开机密码
,而且设置后就不能取消,除非先删掉所有的用户证书。如果安装为系统证书就不需要设置开机密码,自动化操作时更方便。Android 7以上版本APP
默认不信任用户证书
,只信任系统证书,安装为用户证书,对APP的HTTPS抓包会失败。安装为全局证书才能被所有APP信任,方可进行HTTPS抓包。
2️⃣ 安裝和使用
安裝
- 下载
从github官网(https://github.com/wanghongenpin/network_proxy_flutter/releases)下载,目前最新是1.0.9
,我们使用的是模拟器,所以需要下载ProxyPin-Android.apk
- 安装
直接拖入模拟器就可以了,打开后如下所示:
安裝证书
- 打开
HTTPS代理
页面
如下图,点击右上角三个点,然后点击HTTPS代理
最后将显示如下界面,包含“用户证书”和“系统证书”
- 下载系统证书
点击上图中的下载系统根证书
按钮,在下载
页面,将其保存下来即可。
- 安装系统根证书
- 打开
Amaze
- 授权超级用户权限
- 复制系统根证书
切换到Download
目录,选择系统根证书文件,点击复制菜单
- 拷贝系统根证书
切换到/system/etc/security/cacerts
目录(点击左侧根目录,然后依次选择etc、security、cacerts目录),最后点击如下图的粘贴
按钮即可。
- 授权证书文件
adb shell连接安卓,然后执行下面命令:mount -o remount,rw /system chmod 777 /etc/security/cacerts/* mount -o remount,ro /system
- 验证系统证书
在设置中,搜索信任的凭据
,在系统
tab中,可以找到ProxyPin
证书,表示安装成功。
启动HTTPS代理
回到ProxyPin软件,打开
HTTPS代理
页面,如下所示开启HTTPS代理
启动抓包
回到ProxyPin软件主页面,点击右下角“播放”按钮
在弹出窗口中点击确定
验证
此时,我们以浏览器,百度页面为例,可以看到已经可以抓到封包了。
3️⃣ 竞品介绍
Android抓包有很多竞品软件,这里介绍一下大名鼎鼎的“小黄鸟”及其新品reqable。
reqable
reqable是小黄鸟的进阶版,依然不开源,不过有了官网 https://reqable.com/,更靠谱一些了。
支持各个平台,个人感觉该软件比ProxyPin更好用。
下面是部分软件截图:
HttpCanary(小黄鸟)【不推荐】
抓包的都知道小黄鸟,但是小黄鸟的解锁版版本很多,由于其不开源,网上很多版本是魔改的,有兼容性问题。不过小编多次测试,其依然可用的。
有兴趣的可以直接参考文章:《[Android 分享] 小黄鸟HttpCanary抓包 5个版本 都是解锁版 + 证书安装教程。https://www.52pojie.cn/thread-1592529-1-1.html》,这里不做过多介绍了。
🛬 文章小结
ProxyPin还有很多功能,这里不一一演示了,以后有机会在实战中进行讲解。
- ProxyPin可以过滤域名和APP,方便抓包使用
- ProxyPin可以将结果打包成
har
文件,在chrome中导入,方便分析结果- ProxyPin可以重写请求,直接在Android上进行封包修改
- ProxyPin可以使用脚本,灵活控制封包。
ps: 不要同时开启多个抓包软件,避免冲突
📖 参考资料
- ProxyPin官网:https://github.com/wanghongenpin/network_proxy_flutter
- reqable(小黃鸟新名字)官网 https://reqable.com/
- 添加Fiddler/Mitmproxy证书为安卓系统证书 https://blog.csdn.net/epson615/article/details/120586471
- objection地址:https://github.com/sensepost/objection
ps: 文章中内容仅用于技术交流,请勿用于违规违法行为。