原文地址: 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. python中open函数的用法

    用法如下: name = open('errname.txt','w')name.readline()name.close() 1.看下第一行的代码 用来访问磁盘中存放的文件,可以进行读写等操作,例如 ...

  2. 错误的理解引起的bug async await 执行顺序

    今天有幸好碰到一个bug,让我知道了之前我对await async 的理解有点偏差. 错误的理解 之前我一直以为  await 后面的表达式,如果是直接返回一个具体的值就不会等待,而是继续执行asyn ...

  3. zabbix3.0配置服务器流量告警

    zabbix配置流量告警 zabbix虽然已经对服务器的网卡流量进行了监控,但为了防止某台机器流量过高导致网络慢,或者因为中病毒或木马等原因,导致流量很高,可使用zabbix的流量告警功能来对流量进行 ...

  4. SQL Server 连接池 (ADO.NET) MSDN

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...

  5. 使用crontab命令添加计划任务

    Ubuntu 16.04, 计划任务 就是 有(时间)计划地执行(做)任务,有计划 包括 定时执行(在哪些时间点执行任务).按照周期执行(每隔多少时间执行任务). 那么,什么是任务呢?就是 自己想要干 ...

  6. python基础-列表元组字典

    1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...

  7. ZCTF-2017 比赛总结

    这次ZCTF办的还是相当不错的,至少对于Pwn来说是能够让人学习到一些东西. 第一天做的不是很顺利,一直卡在一道题上不动.第二天队友很给力,自己的思路也开阔起来了. 关于赛题的优点 我觉得这次的Pwn ...

  8. prometheus的平台侧和应用侧结合,实现应用的metrics的抓取

    这个细节,迷惑了我一段时间,前面也写过一篇blog,描述过这个问题. 今天看到一种更好的解决方法. 记录一下. prometheus在k8s集群里,抓取应用的metrics. 是需要平台侧和应用侧相互 ...

  9. 7-9The Morning after Halloween uva1601

    这题可以用普通bfs来做  也可以用双向bfs来做(先欠着) 有点类似专题训练的一题   不过那题是找钥匙开门   不过都用了状态压缩 题意:  n,m(<=16) 的网络上有t(<=3) ...

  10. centos7 firewall 相关

    1.centos 6 是iptables, 7 开始就以firewalld代替iptables; 2.systemctl stop firewalld.service  停 systemctl sta ...