抓取并解密HTTPS流量
wireshark
wireshark解密tls数据流,从网上已有资料来看,主要是两种方式:一是服务端私钥直接解密,二是使用sslkeylogfile获取握手过程中的会话密钥信息进行解密。
这里只尝试第二种方式解密tls数据。可用的应用包括:chrome、firefox、curl。
首先设置sslkeylogfile用户环境变量,值为自定义的文件路径。示例:
或是启动浏览器进程时追加参数--ssl-key-log-file=<path>。
测试开始,开启wireshark,访问https://www.baidu.com,网页加载完成后退出浏览器,wireshark结束抓包。目标路径下生成了相应密钥文件。然后wireshark中,编辑 -> 首选项 -> protocols -> tls,里面可以添加rsa解密私钥、预共享密钥、主密钥。这里只是用了(预)主密钥,导入先前生成的密钥文件。最后在主窗口中查看,或是追踪tls流,相应数据已经被解密。
fiddler
但是通常在分析一些非浏览器进程时,对于使用https的,也不需要看tcp数据的,可以使用fiddler(工作于应用层),虚拟机中导入该工具携带的证书,然后在fiddler中开启https解密选项,即可解密。
参考:
https://blog.didierstevens.com/2020/12/14/decrypting-tls-streams-with-wireshark-part-1/(服务器密钥导入)
https://blog.didierstevens.com/2021/01/11/decrypting-tls-streams-with-wireshark-part-3/(密钥导出和嵌入)
下一篇: 微信小程序通过uni-app进行全局分享