声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途给予盈利等目的,否则后果自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
文章有疑问的,可以公众号发消息问我,或者留言。我每天都会看的。
前言
在这里,祝师傅们五一快乐。
我们抓HTTP包,往往是通过中间人的方式,这种很方便,只要配置证书,配置代理,就能在抓包软件上看到请求和响应。
但随着安全受到重视,安卓APP多少要带点校验,我们也能有各种应对手段应付过去。
接下来介绍一种通过tcpdump + wireshark抓HTTPS包的办法。本文主要参考看雪一个师傅写的文章,推荐感兴趣的师傅去看看,写得很详细,工具也很不错。
• 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内容。但我们可以通过在wireshark中导入sslkey实现。
Chrome浏览器
创建一个空白文件
D:code_analysissslsslkey.log
给Chrome创建一个快捷方式,打开属性,在其中添加一条命令
"C:xxxxchrome.exe" --ssl-key-log-file="D:code_analysissslsslkey.log"
wireshark
打开wireshark,编辑——》首选项——》protocols老版本的wireshark,选择SSL,新版本的把SSL合并到TLS中了。
既然浏览器的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下是否生成文件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
过滤
"C:xxxxchrome.exe" --ssl-key-log-file="D:code_analysissslsslkey.log"
0
可以看到,原本是HTTPS的数据,在wireshark中也能直接查看了总结
那个师傅还有一篇“通杀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/
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...