#概述

本教程面向进行流量分析的安全专业人员。本教程假定你已经熟悉Wireshark的基本使用,并使用Wireshark 3.x版。

在审查可疑的网络活动时,我们经常会遇到加密的流量。因为大多数网站使用安全超文本传输​协议(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。

#加密流量背景

在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 Display
  • Using Wireshark – Display Filter Expressions
  • Using Wireshark: Identifying Hosts and Users
  • Using Wireshark: Exporting Objects from a Pcap
  • Wireshark Tutorial: Examining Trickbot Infections
  • Wireshark Tutorial: Examining Ursnif Infections
  • Wireshark Tutorial: Examining Qakbot Infections

#说明

本文由合天网安实验室编译,转载请注明来源。

原文地址:
https://unit42.paloaltonetworks.com/wireshark-tutorial-decrypting-https-traffic/

Wireshark教程:解密HTTPS流量相关推荐

  1. wireshark 无法解密tls_为什么Wireshark无法解密HTTPS数据

    问题 由于需要定位一个问题,在服务器上tcpdump抓取https数据包,然后下载到本地打开wireshark分析.然后我们下载域名私钥配置到wireshark,发现数据包居然无法解密.是wiresh ...

  2. 基于OpenSSL设计旁路解密HTTPS流量

    文章目录 1 引言 1.1 编写目的 1.2 背景 1.3 参考资料 2 总体设计 2.1 需求概述 2.2 总体设计图 2.3 流程设计 2.4 功能描述 2.5 功能设计 2.5.1 SSL/TL ...

  3. Wireshark 解密 RDP 流量

    向劳动人民致敬! Wireshark Tutorial: Decrypting RDP Traffic 近年来,攻击者利用远程桌面协议(RDP)访问不安全的服务器和企业网络.自2017年以来,RDP已 ...

  4. 【转载】在服务器上用Fiddler抓取HTTPS流量

    转载地址:https://yoursunny.cn/t/2011/FiddlerHTTPS/ 在服务器上用Fiddler抓取HTTPS流量 开发互联网应用的过程中,常常会设立或利用网络接口.为了调试对 ...

  5. 在服务器上用Fiddler抓取HTTPS流量

    http://yoursunny.com/t/2011/FiddlerHTTPS/ 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常会设立或利用网络接口.为了调试对网络接口的使用,往 ...

  6. Fiddler抓取HTTPs流量

    Fiddler抓取HTTPS流量的原理 TLS是一种端到端的传输层加密协议,是HTTPS协议的一个组成部分.访问HTTPS站点时,HTTP请求.响应都通过TLS协议在浏览器和服务器之间加密传输,并且通 ...

  7. 如何使用Wireshark分析解密后的手机APP以及PC软件的HTTPS加密流量

    本文将分享一种解密SSL/TLS加密流量的通用方式,并配合wireshark进行解密后的分析. 很多的新手使用wireshark都会有这样的需求,即利用wireshark分析加密的流量,例如HTTPS ...

  8. wireshark Fiddler抓包分析与解密https Fiddler修改https请求和响应

    Https理论 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全.为 ...

  9. wireshark抓取https并解密方法一

    一.https与http的区别 1.http协议:是超文本传输协议,信息是明文传输.如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息. 2.https协议:是具有安全性 ...

最新文章

  1. Struts2_day04--课程介绍_Struts2拦截器概述底层原理_重要的概念
  2. Oracle学习网站
  3. 对h.264压缩视频码流中i帧的提取(firstime)
  4. java sort排序
  5. Docker Compose如何与SkyEye完美结合
  6. Vue调试工具的安装方法(动动鼠标就完成,不会意外报错,超爽~)
  7. MYSQL读写性能测试
  8. this.controls指所有控件吗?_Excel 控件【窗体控件】和【ActiveX控件】使用基础教程...
  9. 动机才是需求,问题只是现象
  10. VS2019添加自定义发布本地的Nuget(.nupkg文件)
  11. IPv4地址-地址分类与用途
  12. 应聘游戏策划是否该将完整策划案给面试官看
  13. html仿qq截图,截图工具(仿QQ截图,大致功能都已实现)
  14. 前端要失业了么,sketch-code让草图秒变HTML
  15. F5负载均衡技术的学习
  16. 紫薯第10章数学 kaungbin专题14数论基础
  17. unity游戏开发之令人上瘾的6大手游设计’潜规则’
  18. 朋友问他是否该跳槽了?我是这么跟他说的
  19. 我的2022总结和2023展望
  20. Python:从入门到实践-20章有关Heroku的各种坑(2)

热门文章

  1. IDEA制作简易登录界面
  2. 大家好!我是屁孩君儿子,今天给大家带来一个 1085 球弹跳高度的计算
  3. 基于java文件压缩与解压缩实践
  4. 程序员应了解的著作权(版权)
  5. 通过schematic原理图创建symbol视图
  6. Tiny6410开机logo制作
  7. DES加密工具类-DesUtil
  8. 文字转换成语音,这里有简单的方法
  9. 3D商城是什么样的?
  10. 市场调研-全球与中国牙科氧化锆盘市场现状及未来发展趋势