#每日三件事,第1932天#
在wireshark中解密https流量,同样要配置SSLKEYLOGFILE环境变量,让浏览器访问https网站时可以采集到会话密钥信息。
一、Windows系统配置方法
- 设置windows环境变量。
以win11为例。在我的电脑 -> 属性,在搜索栏输入“环境”,点击“编辑系统环境变量”,或者在右侧下方找到“系统信息”,点击“高级
特别注意:变量值中填写的文件,一定要有读写的权限。尤其是用虚拟机的朋友,一定要注意。这个文件可以不用手工去创建。
- 访问https网站
这是为了测试SSLKEYLOGFILE能否正常收集会话密钥。此时访问https网站,sslkey.log文件会自动创建,而且大小会一直增加。
使用的浏览器可以是Edge,firefox和chrome,其他浏览器没有测试,估计都是可以的。
- 配置wireshark
和MacOS下的配置一样,打开wireshark,在菜单 编辑-> 首选项,找到protocols -> TLS,在(Pre)-master -securet log filename,输入环境变量SSLKEYLOGFILE的值“c:\users\liyz\sslkey.log”
然后开始抓包,SSL协商完毕后,数据包会以明文的形势呈现。
在浏览器中打开baidu.com,输入关键字“keyflagabc123”搜索。如果wireshark没有解密的话,在整个数据包中是看不到“keyflagabc123”这个关键字的。使用本文介绍的方法,解密后就能找到“keyflagabc123”这个关键字了。
二、Linux配置方法
Linux相对简单一些。本人在MAC的Parallels上安装了kali和ubuntu系统,最折腾的是kali,始终没有成功。后来安装了ubuntu,终于看到了久违的ssl.log。现在分析原因的话,估计是和安装的kali系统有关,可能是什么地方有缺陷。
- 设置SSLKEYLOGFILE环境参数
export SSLKEYLOGFILE=~/ssl.log
- 运行firefox
要在设置环境变量的窗口执行命令,而且之前所有的firefox必须全部关闭。
firefox &
- 设置wireshark
和windows、MacOS都是一样的。在首选项 -> protocols -> TLS -> (Pre)-master -securet log filename,输入环境变量SSLKEYLOGFILE的值“/home/parallels/ssl.log”
echo $SSLKEYLOGFILE
/home/parallels/ssl.log
接下来就是抓包、查看、分析了。