如何在 macOS 中使用 Chrome 或 Firefox 和 Wireshark 解密SSL
50610
Created On 04/27/21 00:18 AM - Last Modified 01/03/25 15:24 PM
Objective
从 Chrome 或 Firefox 中的加密网络浏览或其他网络应用程序流量中捕获SSL会话密钥,并使用它来解密 Wireshark 中的数据包捕获。
Environment
- macOS 10.15 或更高版本
- Chrome 85 或更高版本,或者 Firefox 81 或更高版本
- Wireshark 3.2.7 或更高版本
- 使用 RSA、DHE 或 ECDHE 密钥交换算法的SSL/TLS会话。
Procedure
1. 彻底关闭 Chrome 或 Firefox。使用“强制退出”选项确保所有实例都已关闭(右键单击应用程序 Dock 中的 Web 浏览器图标,按住 Option 键,然后选择“强制退出”)。
2. 打开终端窗口并使用以下命令设置 SSLKEYLOGFILE 环境变量。
导出 SSLKEYLOGFILE="/Users/$USER/sslkey.log"
| 不要关闭终端窗口。 |
3.启动Wireshark,开始packet capture(数据包捕获-pcap)。
4. 使用在步骤 2 中设置环境变量的终端窗口启动 Chrome 或 Firefox。(环境变量仅为特定的终端会话设置)。
对于 Chrome:
打开 /Applications/Google\ app
对于 Firefox:
打开app
5. 使用终端验证 sslkey.log 文件是否已创建。
文件 /Users/$USER/sslkey.log
如果文件正确创建,预期输出将是:
/Users/user1/sslkey.log:ASCII 文本
6. 浏览正在测试的网站或 Web应用程序并运行所有需要捕获的操作。
在我们的示例中,我们从 EICAR 安全站点下载恶意软件测试文件。
7. 检查 Wireshark 以确认活动已被正确收集,然后停止捕获。
8. 在 Wireshark 中,进入 [ 偏好设置 > 协议 > TLS ]。在 (Pre)-Master-Secret 日志文件名下,选择在步骤 5 中创建的 sslkey.log 文件,然后单击OK。
9.解密后的packet capture(数据包捕获-pcap)显示在Wireshark中。
10.(可选)按照HTTP流可视化解密的内容。
注1 :当MAC OS 或 Chrome 更新时,步骤可能会发生变化。
注2:本文仅供参考。Palo Palo Alto Networks不支持任何第三方操作系统。
Additional Information
使用tshark解密并导出数据包
目前无法以 PCAP 格式导出 Wireshark 解密的数据包捕获,但是可以使用 tshark(Wireshark 的命令行对应程序)完成此任务。它允许您提取和保存解密的数据。
-
确保您拥有可用的 (Pre)-Master-Secret 密钥。
-
Run
tsharkwith the TLS key log and appropriate decryption settings:tshark -r original.pcap -o tls.keylog_file:/path/to/your/tls_keys.log -o tls.desegment_ssl_records:TRUE -o tls.desegment_ssl_application_data:TRUE -w decrypted.pcap-r original.pcap: Your original PCAP file with encrypted TLS packets.-o tls.keylog_file: Path to your TLS key log file.-o tls.desegment_ssl_records: Ensures proper segmentation of SSL/TLS records.-o tls.desegment_ssl_application_data: Ensures the SSL/TLS application data is properly reassembled.
The
-w decrypted.pcapflag will write the decrypted packets to a new output file.