抓取并解密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/2020/12/28/decrypting-tls-streams-with-wireshark-part-2/(SSLKEYLOGFILE)

https://blog.didierstevens.com/2021/01/11/decrypting-tls-streams-with-wireshark-part-3/(密钥导出和嵌入)

https://support.f5.com/csp/article/K50557518

posted @ 2021-05-22 23:05  Bl0od  阅读(151)  评论(0编辑  收藏  举报