利用Wireshark 解密HTTPS流量
在我之前的一篇文章中已经介绍了一种解密HTTPS流量的一种方法,大致方法就是客户端手动信任中间人,然后中间人重新封包SSL流量。
文章地址: http://professor.blog.51cto.com/996189/1746183
方法概览
今天给大家介绍另外一种解密HTTPS流量的方法。
Wireshark 的抓包原理是直接读取并分析网卡数据,要想让它解密 HTTPS 流量,有两个办法:
- 如果你拥有 HTTPS 网站的加密私钥,可以用来解密这个网站的加密流量;
- 某些浏览器支持将 TLS 会话中使用的对称密钥保存在外部文件中,可供 Wireshark 加密使用。
本文重点介绍第二种方法。
实际操作
Firefox 和 Chrome 都支持生成上述第二种方式的文件,具体格式见这里:NSS Key Log Formathttps://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format 。
但 Firefox 和 Chrome 只会在系统环境变量中存在 SSLKEYLOGFILE 路径时才会生成该文件,先来加上这个环境变量(以Windows为例):
打开设置环境变量窗口:systempropertiesadvanced.exe

添加环境变量(可以为系统环境变量 也可以是用户环境变量)

确定保存。
然后新打开个cmd窗口,输入 echo %SSLKEYLOGFILE% 回车,看是否能打印出刚刚设置的路径。
如果不能打印出路径,那么你应该检查下是否设置正确。
设置完成过后,完全退出Chrome 或者 Firefox程序,然后重新打开。(我这里就用chrome演示了)

打开浏览器,访问一个HTTPS 网页,然后打开刚才 SSLKEYLOGFILE 环境变量值的文件路径就可以看到TLS协商的随机字符串记录。
打开你的Wireshark (推荐最新的2.0+版本)
打开首选项,修改协议 -》 SSL设置

最后一栏 Pre-Master-Securet log filename(预主密钥) 添上刚才SSLKEYLOGFILE变量设置的路径的日志文件。
开始抓包:
为了避免抓到很多其他的数据包,可以添上捕获过滤器条件

然后浏览器打开一个HTTPS页面,我这里就淘宝为例。

可以看到我又加了一个 http 的显示过滤,光标停留的那一条数据正好是一个 服务端返回的302跳转。
到此就完成了客户端对HTTPS流量的解密,大家可以自己动手试一试。
利用Wireshark 解密HTTPS流量的更多相关文章
- Wireshark解密HTTPS流量的两种方法
原理 我们先回顾一下SSL/TLS的整个握手过程: Clienthello:发送客户端的功能和首选项给服务器,在连接建立后,当希望重协商.或者响应服务器的重协商请求时会发送. version:客户端支 ...
- 如何利用Wireshark解密SSL和TLS流量
如何利用Wireshark解密SSL和TLS流量https://support.citrix.com/article/CTX135121 1.有server端的private key,直接在wires ...
- 三种解密 HTTPS 流量的方法介绍
转载自:https://imququ.com/post/how-to-decrypt-https.html作者: Jerry Qu Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全壁垒土崩瓦 ...
- Wireshark解密HTTPS数据流
如果是chrome浏览器的数据流 直接配置”SSLKEYLOGFILE“就可以解密了. 实现过程: 1.配置系统环境变量 变量名:SSLKEYLOGFILE 变量值:随意指定一个存储路径,以便chro ...
- 抓取并解密HTTPS流量
WireShark Wireshark解密TLS数据流,从网上已有资料来看,主要是两种方式:一是服务端私钥直接解密,二是使用SSLKEYLOGFILE获取握手过程中的会话密钥信息进行解密. 这 ...
- 在服务器上用Fiddler抓取HTTPS流量
转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常 ...
- 【转】fiddler抓包时出现了tunnel to ......443 解密HTTPS数据
转: 1.在抓取https的数据包时,fiddler会话栏目会显示“Tunnel to….443”的信息,这个是什么原因呢? connect表示https的握手(也就是认证信息,只要是https就要进 ...
- 利用Fiddler和Wireshark解密SSL加密流量
原文地址:http://kelvinh.github.io/blog/2014/01/12/decrypt-ssl-using-fiddler-and-wireshark/ Fiddler是一个著名的 ...
- wireshark解密本地https流量笔记
此方式支持firefox,chrome 建立path变量 SSLKEYLOGFILE=c:\ssl.key 重启firefox chrome,访问https网站会自动生成ssl session key ...
随机推荐
- Kotlin协程入门
开发环境 IntelliJ IDEA 2021.2.2 (Community Edition) Kotlin: 212-1.5.10-release-IJ5284.40 介绍Kotlin中的协程.用一 ...
- Kotlin协程基础
开发环境 IntelliJ IDEA 2021.2.2 (Community Edition) Kotlin: 212-1.5.10-release-IJ5284.40 我们已经通过第一个例子学会了启 ...
- 后台开发 3个题目 array_chunk, 100块钱找零钱(动态规划 dynamic programming), 双向循环链表 llist 删除节点
1. array_chunk 实现 http://php.net/manual/en/function.array-chunk.php <?php function my_array_chunk ...
- InstallSheild相关
一.关于使用InstallSheild制作安装包的总结. 1.定制化制作需要了解InstallScript语法,相关资料可以去网上查找,后续提供比较好的资料. 2.有些软件运行是需要一些环境的,譬如使 ...
- 深入理解Java虚拟机之垃圾回收篇
垃圾回收简介 Java 会对内存进行自动分配与回收管理,使上层业务更加安全,方便地使用内存实现程序逻辑.在不同的 JVM 实现及不同的回收机制中,堆内存的划分方式是不一样的. 简要地介绍下垃圾 ...
- FastAPI 学习之路(二十七)安全校验
你写API接口肯定你是希望是有权限的人才能访问,没有权限的人是不能访问的,那么我们应该如何去处理呢,我们可以用的验证方式有很多,我们这次分享的是用:OAuth2来认证.那么我们看下,需要怎么才能实现呢 ...
- python socket 基本使用
socket通常也叫做"套接字",用于连接server client,是一个通信链的句柄,应用程序通常通过套接字向网络发出请求或应答网络请求. 就像python 处理file一样: ...
- 【机器学习基础】逻辑回归——LogisticRegression
LR算法作为一种比较经典的分类算法,在实际应用和面试中经常受到青睐,虽然在理论方面不是特别复杂,但LR所牵涉的知识点还是比较多的,同时与概率生成模型.神经网络都有着一定的联系,本节就针对这一算法及其所 ...
- Redis 高阶数据类型重温
今天这个专题接着上一篇 Redis 的基本数据类型 继续讲解剩下的高阶数据类型:BitMap.HyperLogLog 和 GEO hash.这些数据结构的底层也都是基于我们前面说的 5 种 基本类型, ...
- VMware虚拟机安装Linux
我们都知道,Linux的学习如果依靠大量的物理真机,是不切实际的,会非常的麻烦. 今天来和分享一下VMware虚拟机安装Linux操作系统的方法 (centos 7) 1. 我们要先把VMware虚 ...