使用 Wireshark 监控流量时如何过滤 https?

使用 Wireshark 监控流量时如何过滤 https?

我想观察 HTTPs 协议。如何使用 Wireshark 过滤器来实现这一点?

答案1

正如 3molo 所说。如果您正在拦截流量,那么这port 443就是您需要的过滤器。如果您有网站的私钥,您还可以解密该 SSL。(需要启用 SSL 的 Wireshark 版本/构建。)

http://wiki.wireshark.org/TLS

编辑

这个答案得到了很多关注,所以我添加了第二个选项,它不需要访问服务器私钥(RSA 解密也被弃用)

  1. 设置环境变量:SSLKEYLOGFILE到主目录内的文件路径*。(例如~/ssl-log.txt
  2. 打开浏览器并访问任何 TLS 站点。检查指定的文件是否已创建。
  3. 启动Wireshark。打开优先->协议->TLS
  4. 在(Pre)-Master-Secret Log 中,浏览到新文件。

现在正常捕获会话,您应该可以快速看到会话流量是否正在被动态解密。

这更安全,因为您不必保留服务器的私钥副本,但自然只在您可以在捕获之前设置环境变量的系统上有效。

*会话密钥也是私有的。其他人也可以使用它们来解密相同的会话数据,因此请确保它们位于只有您可以读取的位置。

答案2

过滤窗口中的 tcp.port==443(mac)

答案3

您可以使用“tls”过滤器:

在此处输入图片描述

TLS 代表传输层安全性,它是 SSL 协议的后继者。如果您正在尝试检查 HTTPS 请求,那么此过滤器可能就是您要找的。

答案4

过滤tcp.port==443,然后使用从网络浏览器获取的 (Pre)-Master-Secret 解密流量。

一些有用的链接:

https://security.stackexchange.com/questions/35639/decrypting-tls-in-wireshark-when-using-dhe-rsa-ciphersuites/42350#42350

https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/

“自 SVN 修订版 36876 以来,即使您没有服务器密钥但可以访问预主密钥,也可以解密流量……简而言之,应该可以通过设置环境变量 (SSLKEYLOGFILE=) 将预主密钥记录到当前版本的 Firefox、Chromium 或 Chrome 的文件中。QT 的当前版本(4 和 5)也允许导出预主密钥,但导出到固定路径 /tmp/qt-ssl-keys,并且它们需要编译时选项:对于 Java 程序,可以从 SSL 调试日志中提取预主密钥,或通过此代理直接以 Wireshark 所需的格式输出。”(jSSLKeyLog)

相关内容