安卓APP-HTTPS抓包Frida Hook教程

文章目录
  • 安卓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过程也相对简单。

  1. 下载安装Bluestacks
  2. 运行Bluestacks Multi-instance Manager,发现默认安装的版本为Android Pie 64bit版本,即Android 9.0
  3. 关闭bluestack后编辑bluestacks配置文件,%programdata%\BlueStacks_nxt\bluestacks.conf
  4. 在配置文件中查找root关键词,对应值修改为1,共两处
  5. 启动bluestack模拟器,安装Root Checker APP,点击验证root

打开 adb调试

  1. bluestack设置-高级中打开Adb调试,并记录下端口
  2. 打开主机命令行,运行adb connect localhost:6652,端口号修改为上一步的端口号
  3. 进入adb shell,执行su进入root权限
frida环境搭建

frida是大名鼎鼎的动态分析的hook神器,用它可以直接访问修改二进制的内存、函数和对象,非常方便。它对于Android的支持也是很完美。

客户端环境搭建(Windows)

firda客户端基于python3开发,执行pip install frida-tools即可完成安装。运行frida --version可验证frida版本。

服务器 环境搭建(Android)

  1. 下载frida-server
  2. frida-server传入Android模拟器
  3. 运行 frida-server
  4. 测试是否连接成功
  5. 转发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提供了更直观的流量可视化功能,可以帮助用户更快地识别关键数据包。

查看包名

  1. 查看将要启动或退出app的包名
  2. 查看安装的第三方app的包名
  3. 查看当前界面的app的包名
  4. 查看启动的app的包名
  5. 查看所有启动的应用的包名
  6. 查看当前启动应用的包名
  7. 通过应用查看包名
相关推荐
汤愈韬1 小时前
路由反射器实验、环回接口建立IBGP邻居、更新源检查机制
网络·网络协议·网络安全·security
不会写DN3 小时前
构建一个抗揍的 Go TCP 聊天服务:异常兜底与防御性编程实践
tcp/ip·golang·php
胖咕噜的稞达鸭3 小时前
总结面试经验TCP和UDP的区别,TCP慢启动机制,拥塞控制,Linux指令,DNS的理解,TLS握手流程
tcp/ip·面试·udp
FPGA小迷弟4 小时前
FPGA工程师面试题汇总(二十五)
网络协议·tcp/ip·fpga开发·verilog·fpga
pl4H522a65 小时前
istio初探以及解决http-426的问题
http·kubernetes·istio
2501_921649496 小时前
Java 接入外汇数据 API 完整教程:实时报价、历史 K 线与 WebSocket 推送
java·开发语言·websocket·金融
Strange_Head6 小时前
《Linux系统网络协议》用 C 语言写一个最小 HTTP Server 与 Client——网络篇
网络·网络协议·http
KhalilRuan6 小时前
什么是KCP?QUIC?Websocket?
网络·websocket·网络协议
不会写DN7 小时前
让 gRPC 服务同时支持 HTTP/JSON 的gRPC-Gateway
http·json·gateway
深念Y7 小时前
从WebSocket到WebRTC,豆包级实时语音交互背后的技术演进
websocket·网络协议·实时互动·webrtc·语音识别·实时音视频