tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包

admin 2025年5月23日15:55:41tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包已关闭评论0 views字数 3503阅读11分40秒阅读模式
tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包

声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢

文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包

字数 1023,阅读大约需 6 分钟

前言

在这里,祝师傅们五一快乐。

我们抓HTTP包,往往是通过中间人的方式,这种很方便,只要配置证书,配置代理,就能在抓包软件上看到请求和响应。

但随着安全受到重视,安卓APP多少要带点校验,我们也能有各种应对手段应付过去。

接下来介绍一种通过tcpdump + wireshark抓HTTPS包的办法。

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
cfe8d84a83418224f781459000f2ea10.png

本文主要参考看雪一个师傅写的文章,推荐感兴趣的师傅去看看,写得很详细,工具也很不错。

  • • frida-analykit wireshark 流量抓包(上)- 初探libssl体验wireshark无视证书校验的实时https抓包 https://bbs.kanxue.com/thread-286510.htm
  • • frida-analykit wireshark 流量抓包(下)- 通杀flutter和webview等常规静态链接boringssl的tls流量解密 https://bbs.kanxue.com/thread-286620.htm

wireshark 查看 HTTPS报文

先介绍一下如何用wireshark抓HTTPS的请求和响应。

正常来说,并不能抓包查看到HTTPS协议内的HTTP内容。

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
c8e8584ca889c8ced75ec0e0bf5df928.png

但我们可以通过在wireshark中导入sslkey实现。

Chrome浏览器

创建一个空白文件

D:\code_analysis\ssl\sslkey.log

给Chrome创建一个快捷方式,打开属性,在其中添加一条命令

"C:\xxxx\chrome.exe"  --ssl-key-log-file="D:\code_analysis\ssl\sslkey.log"

wireshark

打开wireshark,编辑——》首选项——》protocols老版本的wireshark,选择SSL,新版本的把SSL合并到TLS中了。

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
d96f72c40e90e96b75ce8af1c74aa9d3.png

重新访问baidu.com

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
d94a9a4eb901efef171669b2a3fb0e45.png

可以看到在 http 中能看到数据包追踪流,选择HTTP或者TLS都可以

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
a534624d8ce71aad8902bc621965d311.png

成功看到数据包

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
266cfebbe0b99dcf505741d8d68ac137.png

既然浏览器的HTTPS可以抓,同理,APK的也可以。

安卓APP抓HTTPS包

通过tcpdump+wireshark,实现远程实时抓包分析。

有时候,我们用的是手机热点,或者我们的frida是在虚拟机中启动的,走NAT连接的frida-server。这种情况,很难配置wireshark直接监听android数据包。

示例

  • • android apk https://github.com/ZSA233/android-reverse-examples/blob/main/002_frida-analykit-ssl-log-secret/app-debug.apk
  • • 启动的fs远程连接 192.168.126.112:27123

frida-analykit

项目地址:https://github.com/ZSA233/frida-analykit该项目在linux或者mac上可直接用,Windows上需要修改配置

linux上演示,

git clone https://github.com/ZSA233/frida-analykit.git# 在这之前选定自己想要指定的全局或者pyenv环境来安装依赖.# pip install -r requirements.txt# 生成环境文件(在当前目录生成index.ts, config.yml, ptpython_spaw.sh等帮助脚本和配置)python frida-analykit/gen.py dev

配置config.yml

app: com.frida_analykit.ssl_log_secretjsfile: _agent.jsserver:  servername: /data/local/tmp/frida-server  host: 192.168.126.112:27123  device:agent:  datadir: ./data/  stdout: ./logs/outerr.log  stderr: ./logs/outerr.logscript:  nettools:    # 要输出sslkey.log文件的路径,[图1]位置选择该文件    ssl_log_secret: ./data/nettools/sslkey/

修改 index.ts

  • • 下面的apk采用的是libssl.so的ssl
import './frida-analykit/script/rpc.js'import { SSLTools } from './frida-analykit/script/net/ssl.js'import { help } from './frida-analykit/script/helper.js'setImmediate(() => {    SSLTools.attachLibsslKeylogFunc()    help.$error(`[SSLTools.attachLibsslKeylogFunc] ok`)})
# 执行下面命令行来监听index.ts脚本的修改变动以实时编译生成_agent.jsnpm run watch

启动frida-server服务

  • • 如果已经启动了,就不用执行了
python frida-analykit/main.py bootup-server

运行脚本

# 按照# 1. 使用repl来启动spawn/attach注入./ptpython_spawn.sh./ptpython_attach.sh# 2. 脚本直接运行python frida-analykit/main.py spawn

先发送一次数据包,检查data下是否生成文件

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
431ae936891b4791d9ed5a4a2a722203.png

wireshark配置 TLS

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
836177d1052e6d792a33ffa72228fe95.png

android上

# tcpdump 将80端口和443端口的请求发送到11111端口,如果https是其他端口,则修改下面的443tcpdump -i wlan0 -s0 'tcp port 80 or tcp port 443' -w -  | nc -l -p 11111

wireshark所在的机器

# adb 端口转发adb forward tcp:11111 tcp:11111nc localhost 11111 | wireshark -k -S -i -

wireshark

过滤

http || http2 || http3

可以看到,原本是HTTPS的数据,在wireshark中也能直接查看了

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
a274316012fe25a6122424d8f0275f39.png

因为是直接导入的ssllog,并且是监听、非中间人的,所以不会触发sslpinning。

tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包
4d331cb4b286ab64f2bd9a87c93a8b81.png

总结

那个师傅还有一篇“通杀flutter和webview”的文章,复现步骤和上面的一样。

参考资料

  • • Wireshark分析https流量 https://blog.csdn.net/hacode/article/details/126828569
  • • frida-analykit wireshark 流量抓包(上)- 初探libssl体验wireshark无视证书校验的实时https抓包 https://bbs.kanxue.com/thread-286510.htm
  • • frida-analykit wireshark 流量抓包(下)- 通杀flutter和webview等常规静态链接boringssl的tls流量解密 https://bbs.kanxue.com/thread-286620.htm
  • • 使用 tcpdump 和 Wireshark 进行远程实时抓包分析 https://thiscute.world/posts/tcpdump-and-wireshark/

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月23日15:55:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   tcpdump + wireshark 联动 frida,实现APP无感抓取HTTPS数据包http://cn-sec.com/archives/4084046.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.