利用Wireshark 解密HTTPS流量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用Wireshark 解密HTTPS流量相关的知识,希望对你有一定的参考价值。

在我之前的一篇文章中已经介绍了一种解密HTTPS流量的一种方法,大致方法就是客户端手动信任中间人,然后中间人重新封包SSL流量。

文章地址: http://professor.blog.51cto.com/996189/1746183    

--------------------------------------------------------------------------------------

今天给大家介绍另外一种解密HTTPS流量的方法。


Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:

    1)如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;

    2)某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。

本文重点介绍第二种方法。


Firefox 和 Chrome 都支持生成上述第二种方式的文件,具体格式见这里:NSS Key Log Format。但 Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成该文件,先来加上这个环境变量(以Windows为例):

打开设置环境变量窗口:systempropertiesadvanced.exe

技术分享

添加环境变量(可以为系统环境变量 也可以是用户环境变量)

技术分享

确定保存。 

然后新打开个cmd窗口,输入 echo %SSLKEYLOGFILE% 回车,看是否能打印出刚刚设置的路径。

如果不能打印出路径,那么你应该检查下是否设置正确。


设置完成过后,完全退出Chrome 或者 Firefox程序,然后重新打开。(我这里就用chrome演示了)

技术分享

打开浏览器,访问一个HTTPS 网页,然后打开刚才SSLKEYLOGFILE环境变量值的文件路径就可以看到TLS协商的随机字符串记录。


打开你的Wireshark (推荐最新的2.0+版本)

打开首选项,修改协议 -》 SSL设置

技术分享

最后一栏 Pre-Master-Securet log file添上刚才SSLKEYLOGFILE变量设置的路径的日志文件。



开始抓包:

为了避免抓到很多其他的数据包,可以添上捕获过滤器条件

技术分享

然后浏览器打开一个HTTPS页面,我这里就淘宝为例。

技术分享


可以看到我又加了一个 http 的显示过滤,光标停留的那一条数据正好是一个 服务端返回的302跳转。


到此就完成了客户端对HTTPS流量的解密,大家可以自己动手试一试。

本文出自 “Professor哥” 博客,请务必保留此出处http://professor.blog.51cto.com/996189/1789316

以上是关于利用Wireshark 解密HTTPS流量的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS流量解密

使用wireshark查看IPSEC加密流量

记一次解密wireshark抓取的冰蝎通信流量

如何在 Windows 上找到 Master-key 和 Session-ID 以使用 wireshark 解密 SSl/TLS 流量?

Wireshark基础使用,SSL解密及http抓包入门教程

从自签名证书到wireshark解密https