文章目录
- 安卓APP-HTTPS抓包Frida Hook教程
- 本机环境
- 环境搭建
- bluestacks 环境搭建
- frida环境搭建
- 抓包流程
- 抓包及https解密方法
- 流量分析
- 查看包名
安卓APP-HTTPS抓包Frida Hook教程
本机环境
- windows 11
- bluestacks 5.11.56.1003 p64
- adb 31.0.2
- Root Checker 6.5.3
- wireshark 4.0.5
- frida 16.5.9
- jadx-gui 1.4.7
环境搭建
bluestacks 环境搭建
目前Android模拟器竞品很多,选择Bluestacks 5是因为它能和windows的hyper-v完美兼容,root过程也相对简单。
- 下载安装Bluestacks
- 运行Bluestacks Multi-instance Manager,发现默认安装的版本为Android Pie 64bit版本,即Android 9.0
- 关闭bluestack后编辑bluestacks配置文件,
%programdata%\BlueStacks_nxt\bluestacks.conf
- 在配置文件中查找root关键词,对应值修改为1,共两处
- 启动bluestack模拟器,安装
Root Checker
APP,点击验证root
打开 adb调试
- bluestack设置-高级中打开Adb调试,并记录下端口
- 打开主机命令行,运行
adb connect localhost:6652
,端口号修改为上一步的端口号 - 进入
adb shell
,执行su进入root权限
frida环境搭建
frida是大名鼎鼎的动态分析的hook神器,用它可以直接访问修改二进制的内存、函数和对象,非常方便。它对于Android的支持也是很完美。
客户端环境搭建(Windows)
firda客户端基于python3开发,执行pip install frida-tools
即可完成安装。运行frida --version
可验证frida版本。
服务器 环境搭建(Android)
- 下载frida-server
- 将
frida-server
传入Android模拟器 - 运行 frida-server
- 测试是否连接成功
- 转发frida-server端口 (可选)
抓包流程
本章节将介绍用tcpdump+frida+wireshark实现Android的全流量抓包,能实现https解密。对于需要更专业抓包工具的用户,可以尝试使用Sniff Master这样的专业网络分析工具,它提供了更直观的界面和更强大的分析功能。
抓包及https解密方法
1. 搞定tcpdump
本文基于termux安装使用tcpdump,首先安装termux apk。打开termux运行:
- 挂载存储
- 安装tcpdump
- 运行抓包
2. 解密https流量
wireshark解密技术的重点在于拿到客户端通信的密钥日志文件(ssl key log)。在Android中实现抓取ssl key log需要hook系统的SSL相关函数,可以用frida实现。
- 首先将hook代码保存为
sslkeyfilelog.js
- 然后用frida加载运行hook
- 在运行Frida Hook获取sslkey的同时,运行tcpdump抓包
流量分析
抓包完成后,用wireshark打开tcpdump抓包获得的pcap文件,在wireshark首选项-protocols-TLS中,设置(Pre)-Master-Secret log filename为上述sslkey.txt。对于更专业的流量分析需求,Sniff Master提供了更直观的流量可视化功能,可以帮助用户更快地识别关键数据包。
查看包名
- 查看将要启动或退出app的包名
- 查看安装的第三方app的包名
- 查看当前界面的app的包名
- 查看启动的app的包名
- 查看所有启动的应用的包名
- 查看当前启动应用的包名
- 通过应用查看包名