(在客户端)https抓包解密

(一)原理分析

https的数据包是用对称秘钥(https协议协商出来的随机数)加密后的密文。

对称秘钥在传输线路上是密文的(被非对称加密过),但是在client、server端是明文的(因为要用于加解密)。

对称秘钥如何获取?谷歌浏览器有一个接口,chrome浏览器的https协议中的对称秘钥会保存在”SSLKEYLOGFILE" (windows的一个环境变量,值为自定义的一个文本文件)中,wireshark有读取对称秘钥文件的接口。

这样一来,就可以抓包和解密了。

说明:不要以为会获取对称秘钥就可以破解网络上任意的https数据包了。这个对称秘钥是临时协商出来的。你下一次访问,对称秘钥又要改变了。所以,你不参与到client、server端,只参与到传输过程抓包,是无法获取当时的对称秘钥的(被非对称秘钥加了密),也就无法解密https的。所以本文名称为(在客户端)https抓包解密。

 

(二)操作演示

1、获取对称秘钥

1)windows中设置全局变量

新建一个文件:D:\Temp\sslkey.log      (空文件,不用管里面的内容)

配置环境变量:

  变量名:SSLKEYLOGFILE

  变量值:D:\Temp\sslkey.log

 

 

2)wireshark中设置读取全局变量

 

 

2、抓对应的包

1)选择需要抓包的网卡

 

 

2)重启谷歌浏览器,访问目标网站(如:https://www.baidu.com)。必须重启谷歌浏览器,否则无法解密。

3)几秒后终止wireshark抓包

4)cmd中ping www.baidu.com 获取ip:163.177.151.109

5)ip.addr == 163.177.151.109 过滤wireshark中的包。

 

6)wireshark底部查看明文数据

 

 

 

 

(二)解密成功后的标记

1、数据包背景色为浅绿色

2、wireshark底部有解密后的选项卡

 

取消解密文件后报错;

进入

C:\Users\xxxuser\AppData\Roaming\Wireshark 

删除文件:ssl_keys

重启wireshark不再报错。

 

 

其他参考:

https解密

https://www.cnblogs.com/aucy/p/9082429.html

https://blog.csdn.net/u010726042/article/details/53408077
https://www.2cto.com/article/201502/377678.html

 

posted @ 2019-09-24 18:04  安迪9468  阅读(11105)  评论(0编辑  收藏  举报