原文地址: 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. 发现新大陆:一个最简单的破解SSL加密网络数据包的方法

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

  2. Wireshark捕获非加密的数据包

    启动监听模式 root@sch01ar:~# airmon-ng start wlan0 启动Wireshark工具 root@sch01ar:~# wireshark 选择接口,这里选择wlan0m ...

  3. Linux下Wireshark的网络抓包使用方法

    Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使用pcap network ...

  4. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

  5. 【VS开发】使用WinPcap编程(4)——把网络数据包存储到一个文件中

    这里用到的数据结构是pcap_dumper_t,这也是一个相当于文件描述符的东西,我们在用的时候先指定pcap_dumper_t *dumpfp; 使用两个函数来存储网络数据,一个是pcap_dump ...

  6. 一个C++版的网络数据包解析策略

    C++版的网络数据包解析策略(升级版) 一.数据包格式形如下图 二.代码 int ReceiveFromRemoteEndPoint() { int nPackageDataLength = ; ch ...

  7. 利用Fiddler和Wireshark解密SSL加密流量

    原文地址:http://kelvinh.github.io/blog/2014/01/12/decrypt-ssl-using-fiddler-and-wireshark/ Fiddler是一个著名的 ...

  8. Tcp/Ip协议族简单解读及网络数据包/报/帧数据格式及封装及解包;

    http://www.creseek.cn/products-install/install_on_bsd_linux/ 中文检索 离线cloudera ecosystem components: h ...

  9. Wireshark 抓取USB的数据包

    需要使用root权限来运行Wireshark,并利用Wireshark来嗅探USB通信数据.当然了,我们并不建议大家利用root权限来进行操作.我们可以使用Linux提供的usbmon来为我们获取和导 ...

随机推荐

  1. 【坐在马桶上看算法】算法4:队列——解密QQ号

            新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问QQ号,小哈当然不会直接告诉小哼啦,原因嘛你懂的.所以小哈给了小哼一串加密过的数字,同时小哈也告诉了小哼解密规则. ...

  2. elasticsearch常见异常及解决办法

    报错信息:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 20602552 ...

  3. C语言:指针实现交换两个变量的值

    用指针交换两个变量的值(10分) 题目内容: 用指针交换两个变量的值 主函数参考: int main( ) { int a,b; scanf("%d%d",&a,& ...

  4. 【LOJ】#2888. 「APIO2015」巴邻旁之桥 Palembang Bridges

    题解 发现我们选择一座桥会选择力\(\frac{s + t}{2}\)较近的一座桥 然后我们只需要按照\(s + t\)排序,然后枚举断点,左边取所有s和t的中位数,右边同理 动态求中位数用平衡树维护 ...

  5. Linux 配置mail发送邮件

    一.在/etc/mail.rc下添加如下内容 set from=lipingchang@pystandard.com set smtp=smtp.pystandard.com set smtp-aut ...

  6. hadoop2.6.4的HA集群搭建超详细步骤

    hadoop2.0已经发布了稳定版本了,增加了很多特性,比如HDFS HA.YARN等.最新的hadoop-2.6.4又增加了YARN HA 注意:apache提供的hadoop-2.6.4的安装包是 ...

  7. PHP内置函数实现简单洗牌

    function wash_card($num_card) { $a = array_keys(array_fill(0, $num_card, '')); $b = array_keys(array ...

  8. jquery.validate.js自定义表单验证

    $(document).ready(function() { //在下列位置输入页面加载的逻辑代码 $("#inputForm").validate({ rules: { seq: ...

  9. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  10. Ubuntu 安装Chrome

    apt方式安装Chrome 1.添加密匙 wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key a ...