在审查可疑的网络活动时,我们常常会碰着加密的流量。由于大多数网站利用安全超文本传输协议(HTTPS)协议。和网站一样,各种类型的恶意软件也利用HTTPS。在检讨恶意软件活动中的PCAP时,理解传染后流量中包含的内容非常主要。
该Wireshark教程讲解如何利用https日志文件从Wireshark中的pcap解密HTTPS流量。该日志包含https加密密钥数据。利用此密钥日志文件,我们可以从pcap中解密HTTPS活动并查看其内容。
本教程以检讨Dridex恶意软件传染的HTTPS活动作为例子。

把稳:该教程已假设你已经会自定义Wireshark显示办法了,如果不会可以参考教程:https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/
本教程利用的pcap和密钥日志文件下载:https://github.com/pan-unit42/wireshark-tutorial-decrypting-HTTPS-traffic
警告:本教程利用的pcap包含基于Windows的恶意软件。如果利用Windows打算机,则存在传染的风险。我们建议您尽可能在非Windows环境(例如BSD,Linux或macOS)中查看此pcap。
【——全网最全的网络安全学习资料包分享给爱学习的你,关注我,私信回答“领取”获取——】
1.网络安全多个方向学习路线
2.全网最全的CTF入门学习资料
3.一线大佬实战履历分享条记
4.网安大厂口试题合集
5.红蓝对抗实战技能秘籍
6.网络安全根本入门、Linux、web安全、渗透测试方面视频
#加密流量背景
在1990年代中期至后期,网站利用的最常见协议是超文本传输协议(HTTP),该协议天生未加密的Web流量。但是,随着安全性日益受到关注,网站开始切换到HTTPS,现在我们很少看到来自Web浏览的HTTP流量。
HTTPS实质上是一个包含HTTP流量的加密通信隧道。这些隧道首先利用安全套接字层(SSL)作为加密协议。如今,大多数HTTPS流量都利用传输层安全(TLS)。
#HTTPS Web流量HTTPS流量常日会显示一个域名。例如,当在Web浏览器中查看https://www.wireshark.org时,在自定义的Wireshark列显示中查看时,pcap将显示www.wireshark.org作为此流量的做事器名称。不幸的是,我们不知道其他详细信息,例如实际的URL或从做事器返回的数据。从传输掌握协议(TCP)流看不会显示此流量的内容,由于它是经由加密的。
#加密密钥日志文件
加密密钥日志是一个文本文件。如图所示。
这些日志是在最初记录PCAP时利用中间人(MITM)技能创建的。如果在记录pcap时没有创建这样的文件,则无法解密该pcap中的HTTPS流量。
#具有密钥日志文件的PCAP示例这个Github存储库供应了一个受密码保护的ZIP存档,个中包含pcap及其密钥日志文件。转到Github页面,单击ZIP存档条款,然后下载它,如下图所示。值得把稳的是,此ZIP存档中包含的pcap在利用密钥日志解密时供应了对基于Windows的恶意软件示例的访问。一如既往,我们建议您谨慎行事,并在非Windows环境中遵照本教程中的步骤。
利用"infected"作为密码从ZIP存档中提取pcap和密钥日志文件。这将供应两个文件,如图所示:
#没有密钥日志文件的HTTPS流量
在Wireshark中打开Wireshark-tutorial-on-decrypting-HTTPS-SSL-TLS-traffic.pcap。按照上一教程中关于Wireshark过滤器的解释,利用基本的网络过滤。针对Wireshark 3.x的基本过滤是:
(http.request or tls.handshake.type eq 1) and !(ssdp)
此pcap来自Windows 10主机上的Dridex恶意软件传染。所有Web流量(包括传染活动)都是HTTPS。如果没有密钥日志文件,我们将无法看到流量的任何详细信息,只能看到IP地址、TCP端口和域名,如图所示。
#加载密钥日志文件
在Wireshark中打开Wireshark-tutorial-on-decrypting-HTTPS-SSL-TLS-traffic.pcap。然后利用菜单Edit-->Preferences调出Preferences菜单,如图所示。
在Preferences菜单的左侧,单击Protocol,如图所示。
如果您利用的是Wireshark版本2.x,向下滚动直到找到SSL并将其选中。如果您利用的是Wireshark 3.x版,请向下滚动至TLS并选择它。选择SSL或TLS后,您该当会看到一行(Pre)-Master-Secret log filename。单击“Browse”按钮并选择名为Wireshark-Tutorial-KeysLogFile.txt的密钥日志文件,如图所示。
#具有密钥日志文件的HTTPS流量单击“OK”之后,在利用基本过滤时,Wireshark列显示将在每行HTTPS下列出解密的HTTP要求,如图所示。
在此pcap中,我们现在看到对先前隐蔽在HTTPS流量中的microsoft.com和sky pe.com域的HTTP要求。我们还创造了由Dridex传染造成的以下流量:
foodsgoodforliver[.]com - GET /invest_20.dll
105711[.]com - POST /docs.php
对foodsgood forliver[.]com的GET要求返回了Dridex的DLL文件。对105711[.]COM的POST要求是来自传染Dridex的Windows主机与命令和掌握(C2)的通信。
我们可以通过跟踪HTTP流来查看流量。右键单击该行以将其选中,然后左键单击以调出跟随HTTP流的菜单。下图显示了对foodsgood forliver[.]com的HTTP GET要求的HTTP流。
由于我们有此流量的密钥日志文件,因此现在可以从pcap中导出此恶意软件。利用菜单path File-->Export Objects-->HTTP从pcap中导出此文件,如图所示。
如果您在BSD,Linux或macOS环境中,请打开一个终端窗口,然后利用file命令确认这是一个DLL文件。然后利用shasum -a 256获取文件的SHA256哈希,如下图所示。
此恶意软件的SHA256哈希为:
31cf42b2a7c5c558f44cfc67684cc344c17d4946d3a1e0b2cecb8eb58173cb2f
如果在线搜索此散列,则应至少从两个公开可用的在线沙箱环境中找到结果。
末了,我们可以查看此Dridex传染的C2流量。利用基本网络过滤,然后沿着个中一个POST要求的HTTP流到达105711[.]com。如下图显示了个中一个HTTP流的示例。
#结论
本教程讲解了如何利用密钥日志文本文件通过Wireshark解密pcap中的HTTPS流量。如果在最初记录pcap时没有创建密钥日志文件,将无法在Wireshark中解密来自该pcap的HTTPS流量。
有关Wireshark的更多帮助,请参阅我们之前的教程:
Customizing Wireshark – Changing Your Column DisplayUsing Wireshark – Display Filter ExpressionsUsing Wireshark: Identifying Hosts and UsersUsing Wireshark: Exporting Objects from a PcapWireshark Tutorial: Examining Trickbot InfectionsWireshark Tutorial: Examining Ursnif InfectionsWireshark Tutorial: Examining Qakbot Infections#解释本文由合天网安实验室编译,转载请注明来源。
原文地址:https://unit42.paloaltonetworks.com/wireshark-tutorial-decrypting-https-traffic/