天问

wireshark https抓包

https双向加密的,如果需要解密数据,除非知道 客户端/服务器 任何一方私钥!否则无法解密,常用手段:

(1)基于vpn协议做中间人攻击抓包

这类工具诸如 fiddler ,实现的是中间人代理,它不需要客户端/服务器一方私钥,而是将客户端私钥改为fiddler自己的,这样每次通信都使用自己的私钥加密,服务器就可以通过公钥解密了。。而且只能抓http/https包。。。。

(2)基于网卡tcp抓包

要知道fiddler抓包是基于应用层协议抓包!所以数据更接近真实得到的。而wireshark基于网络层抓包。所以抓到的都是一些基于网卡发来的tcp/ip协议的包:

列表首先能看到的就是双方的ip,也就是tcp/ip包。然后就是应用层协议,有http/ack/tls等等。如果协议是公开的,就可以直接显示数据的。https协议由于不知道客户端/服务器私钥,所以无法解密!

(2.1)好在chrome强大,再https通信过程中,如果设置环境变量:

SSLKEYLOGFILE C:\Users\xx\sslkey.log

chrome就会自动把每次https通信的客户端私钥/服务器端公钥记录到上面的文件中!为什么会有很多行呢????客户端每次通信的时候都会随机生成一个私钥和服务器通信的!

(2.2)wireshark配置

wireshark可以利用 sslkey.log 解密所有数据了。只需要
编辑-------首选项------protocols-------tls:

请注意, 编辑-------首选项------protocols-------tls ,原来老版本的(2019年前的)是ssl。所以别说找不到了。。

(2.3)删除sslkey.log

必须得强调一下 C:\Users\xx\sslkey.log 文件抓包前需要删除!否则可能会抓包卡死!

博客地址:http://blog.yoqi.me/?p=15975
扫我捐助哦
喜欢 11

这篇文章有4条评论

  1. lala 2019/8/27 #1 [REPLY]

    反正mac 试了是不能

    • lyq, lyq (作者) 回复 lala 2019/10/15 [REPLY]

      请描述清楚你的问题。

  2. TIME 2019/8/13 #2 [REPLY]

    请问,wireshark抓包前为什么需要删除.log文件,不是随机选择一个来用的吗,为什么会卡死呢?:-D

    • lyq, lyq (作者) 回复 TIME 2019/10/15 [REPLY]

      请问,wireshark抓包前为什么需要删除.log文件,不是随机选择一个来用的吗,为什么会卡死呢?:-D

      #1[REPLY]

      sslkey.log 里面保存了非常多的tls随机记录!! 解密数据都需要遍历查找这个文件!文件太大打开wireshark就会卡死!这是我的经验!

发表评论