原文地址: http://article.yeeyan.org/view/530101/444688

一般来说,我们用WireShark来抓取包进行分析是没有多大问题的。但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策。在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的

1. 简介


相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它来抓取相应的网络数据包来进行问题分析或者其他你懂的之类的事情。

一般来说,我们用WireShark来抓取包进行分析是没有多大问题的。但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策。在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的,但这已经是想当年还用RSA进行网络数据加密的年代的事情了。当今大家都已经逐渐拥抱前向加密技术PFS 的时代了,所以该方法就不再适用了。因为前向加密技术的目的就是让每个数据交互都使用的是不同的私钥,所以你像以前RSA时代一样想只用一个私钥就能把整个session会话的网络数据包都破解出来的话是不可能的了。所以这将是一个挺恼火的事情。

2. Session Key日记记录来救火!


大家先别火起,这里我来告诉你另外一个简单的方法来解决这个问题!其实Firefox和Chrome浏览器都支持用日记文件的方式记录下用来加密TLS数据包对称会话秘钥的。这样你就可以在WireShark中指定该文件来快速完成你的破解目的了。请继续往下看具体的步骤。

3. Browsers配置


首先你需要配置一个环境变量。

3.1 在Windows下的配置:

怎么去到环境变量配置页面相信不需要我多说了,毕竟国内还是Windows的天下。

在上图的位置增加一个新的叫做“SSLKEYLOGFILE”的环境变量并指定其路径到你想要保存你的会话私钥的地方。

3.2 在Linux或者MAC OS X上的配置:

1
$ export SSLKEYLOGFILE=~/path/to/sslkeylog.log

当然,如果你想在你的系统每次启动的时候都指定该日记路径的话,你可以在你的Linux下执行下面的动作:

1
~/.bashrc

或者在你的MAC OS X上执行以下命令:

1
~/.MacOSX/environment

这样我们下次启动Firefox或者Chrome的开发者模式的时候,TLS秘钥就会自动写入到该指定文件下面了。

4. Wireshark配置


为了支持这个功能,你当前的WireShark版本必须是1.6或者更新。我们仅仅要做的就是先进入偏好设置页面:

展开协议选项:

找到SSL选项然后如下图所示打开上面设置好的会话秘钥保存文件:

5. 结果


下图就是我们通常见到的WireShark抓到TLS数据包后的显示结果:

This is what it looks like when you switch to the “Decrypted SSL Data” tab.  Note that we can now see the request information in plain-text!  Success!大家可以看到WireShark下面会有一个“已解密的SSL Data”的标签,点击之后你就可以如下图所示的看到已经解密的TLS数据包的相信信息了:

6. 小结


通过本文我真心希望你能从中学到一些东西,该方法让我们能够如此直截了当的去把TLS数据包给破解出来。这种方式的另外一个值得一提的好处是,给会话过程中的两台机器根本不需要安装任何Wireshark工具,因为你会担心安装上去会搞得问题是做多错多都不知道哪里出问题了。你只需要做的是把他们上面的该会话秘钥文件指定到一个网络共享文件夹然后用另外一个已经机器上安装WireShark并如前所示指定该秘钥文件进行抓包就了事了。

最后多谢大家查看本文。如想每天都能看到最新的技术等资讯文章,敬请关注本人下面提供的微信公众号:techgogogo。谢谢!

-------------完------------------

英文原文引用:https://jimshaver.net/2015/02/11/decrypting-tls-browser-traffic-with-wireshark-the-easy-way/

一个最简单的通过WireShark破解SSL加密网络数据包的方法相关推荐

  1. wireshark抓取聊天网络数据包

    wireshark抓取聊天网络数据包 一.实验任务 二.实验步骤 三.总结 总结 一.实验任务 据包.在两台及两台以上的电脑(已知IPv4地址)上运行 "疯狂聊天室"程序,通过wi ...

  2. 写一个java的网络数据包分析程序(一)

    需要写一个工具监控我所负责项目中的服务器与客户端的交易事件,而我又不方便修改系统代码(因为此工具只是我自己为了工作方便而作),因此需要通过监听并分析网络数据包来获取信息. 原本打算将tcpdump的C ...

  3. 南京邮电大学网络信息安全——网络数据包捕获WireShark(实验一)

    南京邮电大学网络信息安全课程实验:网络数据包捕获WireShark(实验一) 系列前言 实验目标 实验环境 实验一过程记录 目标一:使用正确的姿势打开WireShark 目标二:只捕获TCP的流量包 ...

  4. 网络数据包分析软件Wireshark简介

    Wireshark是被广泛使用的免费开源的网络协议分析软件(network protocol analyzer)或网络数据包分析软件,它可以让你在微观层面上查看网络上发生的事情,它的功能是截取网络数据 ...

  5. Connectify+Wireshark捕获手机APP的数据包

    前言: 抓取电脑的数据包比较简单,使用一些抓包软件即可实现,譬如Wireshark.Fiddle.Sniffer.Appsniff.IRIS等等,这些的使用并不多说,反正要掌握各自的过滤方法,只查看有 ...

  6. Wireshark 3.0.0 正式版发布,免费开源的网络数据包分析软件

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Wireshark 3.0.0 已于2月28日发布正式版,并提供了 Windows 和 macOS 平台的安装程序,源代码也已开 ...

  7. Wireshark抓取疯狂聊天数据包

    Wireshark抓取疯狂聊天数据包 一.准备工作 二.开始聊天 三.wireshark进行抓包 (一)抓取数字信息数据包 (二)抓取中文数据包 (三)抓取英文数据包 四.总结 五.参考资料 一.准备 ...

  8. Wireshark网络抓包之抓取聊天网络数据包

    一.Wireshark 1. Wireshark简介 Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料.Wi ...

  9. wireshark抓虚拟网卡_抓取Vmware虚拟网卡上的网络数据包

    抓取 Vmware 虚拟网卡上的网络数据包 首先简单介绍一下 Vmware 中的几种网络连接方式, Vmware 安装后默认安装 3 个虚拟 网卡: Vmnet0 . Vmnet1 . Vmnet8 ...

最新文章

  1. Android中的多线程(字节跳动)
  2. ThinkPad E440 加内存后导致开不了机
  3. python十九:map,filter,reduce函数
  4. PL/SQL -- 函数
  5. Linux上用户之间对话
  6. iLogtail使用入门-K8S环境日志采集到SLS
  7. 创建VPC前,网络规划的4个问题你弄清了吗?
  8. 解决python在pycharm中可以import本地文件,但命令行运行时报错:no model named xxxx本地文件
  9. linux 输入子系统(4)---- input子系统的初始化
  10. php-5.6.26源代码 - hash存储结构 - hash算法
  11. 一个极其简单的在线C#IDE例子
  12. 【Python】Time模块 ValueError: unconverted data remains: UnicodeEncodeError:
  13. TencentOS Server编译安装nginx(1.22.0)
  14. 积分运营体系四——积分激励体系从策略到产品落地的全过程
  15. 全网首发 | Mac版 PS2022 终于来了,支持M1芯片,五大新黑科技
  16. 字符串之间的大小比较方法
  17. 利用Python计算UDP校验和
  18. win 安装mysql
  19. Linux 如何设置当前时间
  20. 计算机绘图员证有无取消,计算机辅助设计

热门文章

  1. Linux常用性能检测命令
  2. 附录G Netty与NettyUtils
  3. weex 阶段总结
  4. 懒汉式单例和饿汉式单例优缺点
  5. How to Use HTML5 FUll Screen API(怎样使用HTML5全屏接口)
  6. mysql 匹配 findinset
  7. this - 想说爱你不容易
  8. Linux驱动修炼之道-RTC子系统框架与源码分析【转】
  9. Linux----函数中变量的作用域、local关键字。
  10. 一个build.xml实例