飞道的博客

抓包神器 Wireshark,帮你快速定位线上网络故障(4)

373人阅读  评论(0)

1

 Wireshark 抓一个 HTTPS 的包 

通过 Wireshark 来分析 HTTP 的包,无论是 GET、POST 请求包,在网络传输时可谓是一览无遗,更别提什么隐私信息。那要如何保护隐私信息呢?HTTPS 是一个不错的选择。

HTTPS 相对 HTTP 的优势主要是所有通信的数据包都采用了加密技术,但是目前有很多不同的加密方法,在进行分析时,要结合实际情况去考虑。

程序员最喜欢做的事情,是一首歌从天亮听到天黑,上图是打开 QQ 音乐时抓取的包,过滤条件简单使用 tcp.port == 443 就行,很显然包都被加密了,几乎对它们一无所知。

2

 Wireshark 脱掉 HTTPS 的加密外壳 

加密包会给排查问题带来不少障碍,所以很有必要知道该如何对它进行解码,接下来看看如何借助 Wireshark 工具来脱掉 HTTPS 的加密外壳。

招式一:采用日志文件的方式进行解密。

第一步:记录 Key,做好准备工作。


   
  1. #配置环境变量
  2. export SSLKEYLOGFILE= $PWD/keylog.log
  3. #先把其它chrome进程全部停掉,然后在终端执行此命令开启chrome新的进程
  4. open -n /Applications/Google\ Chrome.app

按照上面的配置操作后,浏览器将会在每次 HTTPS 会话结束后,将会话数据解密的 Key 记录到 keylog 文件中。

第二步:使用 Key,解密字节数据。

打开 Wireshark,选择 Preferences -> Protocols -> TLS,配置访问 keylog 文件,如下图所示。

点击 OK,就成功解密捕获到 HTTPS 会话数据流啦,真牛掰。

招式二:采用 RSA Key 文件进行解密。

为了操作方便,本次就直接借用官方提供的例子进行演示。

https://gitlab.com/wireshark/wireshark/-/wikis/uploads/__moin_import__/attachments/SampleCaptures/snakeoil2_070531.tgz

第一步:解压 snakeoil2_070531.tgz,并记住 rsasnakeoil2.key 文件的位置。

第二步:用 Wireshark 打开 rsasnakeoil2.cap。

第三步:选择 Key 文件,进行解密。

妙招一:在 Wireshark 的菜单栏依次选择 Edit -> Preferences -> Protocols -> TLS,然后在弹出的窗口中配置服务端地址、端口、协议以及 RSA Key文件。

配置完成后,就可以把官方提供的 HTTPS 包进行成功解密啦。

妙招二:单击 Wireshark 的 Edit -> Preferences -> RSA Keys。然后选择 key 文件,如下图所示。

然后单击 Wireshark 的 Edit -> Decode As -> OK,包就成功解码了,HTTPS 脱掉加密外壳之后的样子,又一览无遗啦。

3

 HTTPS 握手哪些事儿 

HTTPS 握手的过程,借助 Wireshark 能够看的很清晰,感兴趣的老铁,可以采取剥洋葱的方式,一层一层去分析,本次不做深入展开。

4

 写在最后 

纸上得来终觉浅,绝知此事要躬行。本次 Wireshark 分享就写到这里,为了能够让分享不出现纰漏,查阅了很多文档、书籍以及官方资料,归纳汇总一下给老铁,希望对老铁能有所帮助。

资料分享:

经典例子:https://gitlab.com/wireshark/wireshark/-/wikis/SampleCaptures

官方文档:https://www.wireshark.org/docs/wsug_html_chunked/

文章分享的数据包可以从这里 get 到:

https://gitlab.com/wireshark/wireshark/-/wikis/uploads/__moin_import__/attachments/SampleCaptures/snakeoil2_070531.tgz

参考书籍:

《从实践中学习Wireshark数据分析》

《Wireshark网络分析就是这么简单》

一起聊技术、谈业务、喷架构,少走弯路,不踩大坑。会持续输出精彩分享,敬请期待!

历史推文(欢迎转发&点赞&在看):

抓包神器 Wireshark,帮你快速定位线上网络故障(1)

抓包神器 Wireshark,帮你快速定位线上网络故障(2)

抓包神器 Wireshark,帮你快速定位线上网络故障(3)

真实|技术人员该如何接手一个复杂的系统?吐血推荐这几招


转载:https://blog.csdn.net/javaforwork/article/details/111771759
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场