【网安-研判-WireShark流量分析】HTTPS流量解密

目录

一、前言

Wireshark是分析网络流量、追溯恶意行为的核心工具。面对混杂正常业务、系统服务、恶意通信的流量包(PCAP),单纯肉眼查看数据包效率极低,精准的过滤表达式 才是排查威胁的关键。

审查可疑网络时,加密流量十分常见。目前主流网站普遍使用 HTTPS 协议,各类恶意软件也会利用 HTTPS 隐匿恶意行为,因此解析加密流量,对研判威胁、追溯攻击链路尤为重要。HTTPS 实质是承载 HTTP 数据的加密通道,早期依靠 SSL 加密,如今则以 TLS 协议为主。

二、实验

下载链接,解压密码:infected

1. 实验文件

  • 抓包文件:Wireshark-tutorial-on-decrypting-HTTPS-SSL-TLS-traffic.pcap
  • 密钥日志文件:Wireshark-tutorial-KeysLogFile.txt(核心解密文件)
  • 场景:Windows 10 主机感染 Dridex 银行木马,所有外联流量均为 HTTPS 加密

2. 通用过滤规则(Wireshark 3.x 适用)

复制代码
(http.request or tls.handshake.type eq 1) and !(ssdp)

作用:筛选网页请求 + TLS 客户端握手包,排除局域网 SSDP 广播流量,专注Web相关流量。

3、无密钥日志 --- 仅查看加密HTTPS流量

观测到的域名列表:

  1. config.edge.skype.com
  2. self.events.data.microsoft.com
  3. foodsgoodforliver.com(恶意域名)
  4. settings-win-ppe.data.microsoft.com
  5. 105711.com(木马C2域名)

直接用上述过滤规则打开pcap文件,无法看到明文请求内容,仅能获取基础信息:

  • 目标IP、443端口(HTTPS默认端口)
  • TLS Client Hello 握手包
  • SNI 域名(服务端域名)

此时所有HTTP请求、传输数据均被TLS加密,无法判断流量用途。

4、加载密钥日志 --- 配置Wireshark解密HTTPS

原理铺垫 :

HTTPS 基于 TLS/SSL 加密通信,通信双方会协商预主密钥/主密钥 。

密钥日志文件记录了本次抓包对应的会话密钥,Wireshark 导入后即可利用密钥逆向解密加密载荷。

操作步骤 :

Step1 :打开目标 Wireshark-tutorial-on-decrypting-HTTPS-SSL-TLS-traffic.pcap 抓包文件

Step2 :菜单栏依次点击:Edit(编辑) → Preferences(首选项)

Step3 :左侧选择 Protocols(协议) → 下拉找到 TLS

Step4 :找到配置项:(Pre)-Master-Secret log filename(预主密钥日志文件)

Step5 :点击 Browse,选中密钥文件 Wireshark-tutorial-KeysLogFile.txt

Step6 :点击 确定 保存配置,解密立即生效。

5、解密完成 --- 分析明文HTTPS流量

重新使用通用过滤规则,流量会拆分出明文HTTP请求,可清晰区分正常业务流量与恶意流量。

(1)正常合法流量

微软、Skype 官方服务:

  • config.edge.skype.com:GET 配置文件请求
  • self.events.data.microsoft.com / settings-win-ppe.data.microsoft.com:微软埋点、配置同步的 POST/GET 请求

(2)追踪 HTTP 流

①恶意文件下载流量
  • 域名:foodsgoodforliver.com
  • 请求方式:GET /invest_20.dll
  • 行为:主机主动下载 DLL 动态链接库(木马本体)

如需查看单次请求的完整请求头+响应内容,使用「跟随HTTP流」功能:

Step1:选中任意一条明文HTTP请求包

Step2 :右键 → Follow → HTTP Stream

Step3:窗口内展示完整交互:请求头、响应头、传输二进制数据

②导出HTTP对象(提取木马文件)

Step1 :菜单栏:File → Export Objects → HTTP

Step2 :在弹出的列表中,找到 foodsgoodforliver.com 对应的二进制文件

Step3 :选中文件,点击 保存 / 全部保存 导出到本地。保存名称为invest_20.dll

③文件类型校验 & 计算 SHA256 哈希

打开Powershell终端执行两条命令:

  1. 识别文件类型或查看详情
bash 复制代码
PS C:\> (Get-Item invest_20.dll).VersionInfo | Format-List *
  1. 计算 SHA256 哈希(恶意样本溯源核心)
bash 复制代码
PS C:\> Get-FileHash -Algorithm SHA256 .\invest_20.dll

样本SHA256哈希值:

复制代码
31CF42B2A7C5C558F44CFC67684CC344C17D4946D3A1E0B2CECB8EB58173CB2F

用途:将哈希上传至在线沙箱(VT、微步、哈勃等),可查询该样本的病毒属性、家族、行为特征。

(3)远控C2通信流量

  • 域名:105711.com
  • 请求方式:多次 POST /docs.php
  • 行为:受害主机向黑客C2服务器上报数据、接收指令,属于典型远控通信

查看有关域名105711.com相关的条目:

针对 105711.com 的 POST /docs.php 请求,同样使用「跟随HTTP流」分析:

  1. 客户端

Step1:选中客户端响应的条目,右击 → 追踪流 → TCP Stream

Step2:查看流信息

伪装浏览器UA,向C2服务器发送加密二进制数据(主机信息、窃取数据等)

  1. 服务端:

Step1 :选中服务端响应的条目,右击 → 追踪流 → Http Stream

Step2:查看流信息

返回 502 Bad Gateway,附带 TlsProtocolException 报错,说明本次C2连接失败。

该行为是远控木马典型特征:受害主机主动外联C2服务器进行数据交互。

三、总结

1、实操效果

  1. 访问 foodsgoodforliver.com 的流:服务器返回 200 OK,内容类型为 application/octet-stream(二进制流),内容为DLL程序。
  2. 访问 105711.com 的流:主机发送加密二进制数据,服务器返回 502 Bad Gateway,C2链路异常。

2、HTTPS 解密核心原理

  • HTTPS = HTTP + TLS/SSL,应用层数据被TLS加密,抓包默认看不到明文。
  • TLS 握手阶段会协商预主密钥/主密钥,所有加密数据均由该密钥加解密。
  • 密钥日志文件:记录了本次抓包全过程的会话密钥,是Wireshark解密的唯一依据。
  • 硬性限制:抓包时未生成密钥日志 → 后续永远无法解密该份HTTPS抓包。

3、流量区分技巧(安全分析常用)

流量类型 特征
正常业务HTTPS 知名厂商域名、请求路径规范、返回标准业务数据
木马下载流量 陌生恶意域名、GET请求下载 .dll/.exe 等可执行文件
木马C2流量 陌生域名、高频POST请求、传输二进制加密数据

4、工具操作速记

  1. 过滤Web流量:(http.request or tls.handshake.type eq 1) and !(ssdp)
  2. 导入密钥解密:首选项 → Protocols → TLS/SSL → 加载密钥日志文件
  3. 查看完整会话:右键包 → Follow → HTTP Stream
  4. 提取文件:File → Export Objects → HTTP
  5. 样本校验:先查看类型、SHA256算哈希
相关推荐
wuyk55512 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 33 章 Wireshark 无线抓包环境搭建、802.11 帧过滤规则
物联网·测试工具·wireshark
zxanz116 小时前
网站为什么需要 SSL 证书来实现 https?
https
Lsetea21 小时前
curl报58 unable to set private key file:客户端证书与私钥加载排查
运维·https·ssl证书·openssl·curl
Lsetea1 天前
OpenSSL报certificate is not yet valid:error 9与notBefore时间排查
linux·运维·https·ssl证书·openssl
2501_915909061 天前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
Smoothcloud润云1 天前
GPU服务器租用实例DNS与HTTPS下载排障实战
大数据·运维·服务器·人工智能·https·gpu算力
神一样的老师1 天前
WS63 访问 HTTPS 握手失败(-0x7780)根治
数据库·网络协议·https
Lsetea3 天前
curl用IP测试HTTPS报证书不匹配:--resolve与Host头别混用
linux·https·ssl证书·openssl·curl
掉进电商坑三年没爬出来的东叔3 天前
云服务器搭建个人网站实战:从零到公网访问,含域名HTTPS
运维·服务器·https
我的xiaodoujiao3 天前
Django 基础知识详细图文教程 13-Django 模型定义与使用 3
数据库·后端·python·测试工具·oracle·django