当前位置: 首页 > news >正文

wireshark开启对https密文抓包

HTTPS抓包解密指南

通常情况下,Wireshark只能抓取HTTP的明文包,对于HTTPS的报文需要特殊设置才能抓取。如果不进行设置,抓取到的都是TLS加密报文,这对调试工作造成了很大困难。

前言

提到HTTPS抓包,基本都绕不开SSLKEYLOGFILE环境变量。这个由Mozilla开发团队首先引入的调试功能,随后被Google Chrome等浏览器采纳,成为网络分析工具(如Wireshark和Sniff Master)的非正式行业惯例。

Sniff Master作为一款专业的网络分析工具,同样支持通过SSLKEYLOGFILE来解密HTTPS流量,其操作流程与Wireshark类似但更加直观。

工作原理

由Wireshark/Sniff Master + Chrome抓HTTPS包的原理大致如下:

  1. Chrome发起HTTPS请求时,会将站点的加密密钥信息存储到SSLKEYLOGFILE指定的文件中
  2. 分析工具会从SSLKEYLOGFILE指定的文件中读取加密密钥信息,对加密报文进行解密

配置步骤

1. 增加环境变量

在环境变量中增加SSLKEYLOGFILE变量,值指定一个KEY文件路径,用于存储TLS会话的加密密钥信息。配置后,在该路径下新建KEY.LOG文件。

2. 配置抓包工具

Wireshark配置
打开Wireshark,在菜单"编辑"->"首选项"打开配置窗口,在左侧的协议树中展开Protocols,找到TLS项,将SSLKEYLOGFILE环境变量指定的文件路径填入。

Sniff Master配置
Sniff Master提供了更便捷的配置方式,直接在"工具"->“SSL/TLS设置"中勾选"启用SSL解密”,然后指定KEY.LOG文件路径即可。

实际抓包

设置完毕后,开启抓包工具对网卡进行抓包,重启Chrome浏览器访问HTTPS站点。在Wireshark中输入http2,或在Sniff Master中使用其内置的HTTPS过滤条件,就能抓到解密后的HTTPS报文了。

编程中的HTTPS抓包

以Go语言为例,请求HTTPS时实现对HTTPS报文抓取的关键是增加SSLKEYLOGFILE的支持:

req, err := http.NewRequest("POST", url, body)
if err != nil {
    logger.Error("new request err:", err)
    return "", err
}

// 设置请求头等...

var transport *http.Transport
keyLogFile, err := os.OpenFile(os.Getenv("SSLKEYLOGFILE"), os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err == nil {
    tlsConfig := &tls.Config{
        KeyLogWriter:       keyLogFile,
        InsecureSkipVerify: true, //自签证书不校验
    }
    transport = &http.Transport{
        TLSClientConfig: tlsConfig,
    }
}
defer keyLogFile.Close()

client := &http.Client{}
if transport != nil {
    client.Transport = transport
}
// 发送请求并处理响应...

工具对比

  • Wireshark:功能全面但配置稍复杂
  • Sniff Master:界面友好,HTTPS解密功能更直观易用
  • Chrome开发者工具:适合前端调试但无法捕获底层网络包

选择适合的工具取决于具体的使用场景和需求。对于需要深度分析网络流量的场景,Sniff Master和Wireshark都是不错的选择。

相关文章:

  • 【工具使用-编译器】VScode(Ubuntu)使用
  • 【Android15 ShellTransitions】(九)结束动画+Android原生ANR问题分析
  • 深度学习篇---回归分类任务的损失函数
  • Git(八)如何在同一台电脑登录两个Git
  • 45 55跳跃游戏解题记录
  • static方法使用bean的方式
  • Nodejs上传文件的问题
  • 【JavaScript】JavaScript Promises实践指南
  • UE5 UE4 右键/最大化-菜单-不显示/闪/黑色/黑屏--修复方法
  • DBeaver配置postgresql数据库连接驱动
  • PHP开发者2025生存指南
  • Android 蓝牙/Wi-Fi通信协议之:经典蓝牙(BT 2.1/3.0+)介绍
  • CentOS 7 安装 EMQX (MQTT)
  • IP第一次笔记
  • 学习中学习的小tips(主要是学习苍穹外卖的一些学习)
  • MetInfo6.0.0目录遍历漏洞原理分析
  • Kubernetes 结点排水卡住的原因及解决方案
  • Python 学习路线推荐
  • JSON5 格式标准 Data Exchange Format 官方文档 中英双语
  • 深度学习论文: Transformers without Normalization
  • 五一假期首日,多地党政主官暗访督查节日安全和值班值守工作
  • 申活观察|咖香涌动北外滩,带来哪些消费新想象?
  • 神舟十九号航天员乘组平安抵京
  • 擦亮“世界美食之都”金字招牌,淮安的努力不止于餐桌
  • 李乐成任工业和信息化部部长
  • 中国人民解放军南部战区位南海海域进行例行巡航