引言
目前我们使用浏览器访问网站基本上都是默认HTTPS。
HTTPS=HTTP+TLS,TLS是在通道层加密数据用的,用于保护我们网络通信数据不会被黑客轻易窃听。
本文介绍在Linux下用Wireshark抓包本机Chrome浏览网站的过程,并将HTTPS密文解密为HTTP明文。
操作步骤
设置Chrome浏览器的tls session_key保存至本地
网上很多博客都是介绍Windows下如何保存tls session_key。
在Linux下配置方式是类似的,设置一个全局变量即可,建议设置到~/.profile下,即在该文件末尾增加一栏:
export SSLKEYLOGFILE=$HOME/Workspaces/my_ssl.log
(session_key路径可自由替换)
wireshark抓包
- 命令行执行 sudo wireshark,以管理员权限打开wireshark,否则可能无法抓包。
- 选择正在使用的网卡,开始抓包。
- 使用Chrome浏览器访问www.baidu.com。
- 停止抓包
此时我们已能在配置的路径下找到chrome自动保存的"my_ssl.log"文件:
wireshark解密
解密数据
在wireshark中点击"edit -> preferences",选中之前保存的my_ssl.log文件,点击"OK"
此时wireshark将自动完成解密。
确认baidu的ip地址
短短的时间内可能抓取了大量网络包,因此我们按照ip地址来过滤出需要查看的包:
nslookup 解析 baidu的地址
╰─ nslookup www.baidu.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 180.101.49.12
Name: www.a.shifen.com
Address: 180.101.49.11
wireshark中按ip过滤网络包
在wireshark框图中输入过滤规则:
http && ip.addr == 180.101.49.11
解密HTTPS完成。