如何解决在Wireshark中过滤TLS 1.3流量 Wireshark tshark 使用Lua创建自己的显示过滤器
是否有一种简单的方法可以在Wireshark中过滤TLS 1.3数据包?
tls.record.version
将不起作用,因为它通常包含值0x0303
(TLS 1.2)。
我假设Wireshark通过查看ServerHello消息中的SupportedVersions扩展来识别TLS 1.3,如果版本为0x0304
(TLS 1.3),则可能将协议应用于整个TLS流。
TLSv1.3
显示在“协议”列中,但是我不确定要应用哪个显示过滤器来过滤这些数据包。
解决方法
对于TLSv1.3,没有简单的过滤器,因为出于兼容性原因,TLSv1.3试图伪装成TLSv1.2。
截至2020-10-05的最新信息(Wireshark可能会在某些时候添加)
Wireshark
在Wireshark中,您可以通过以下方式跟踪此TLSv1.3流:右键单击流中的数据包,然后添加&& tls
以仅查看流中的TLSv1.3数据包(tcp数据包将显示在流中)。在一起,应该像tcp stream eq 0 && tls
。
tshark
您可以使用以下bash脚本轻松找到此显示过滤器:
#!/bin/bash
filename=YOUR_PCAP.pcap
tcp_streams="$(tshark -r $filename -T fields -e tcp.stream \
-Y 'tls.handshake.extensions.supported_version == 0x0304' | sort | uniq)"
display_filter="tls && ("
first_stream="true"
for s in $tcp_streams; do
if [ $first_stream == "true" ]; then
first_stream="false"
else
display_filter+=" || "
fi
display_filter+="tcp.stream eq $s"
done
display_filter+=")"
printf "Display filter for TLSv1.3:\n$display_filter\n"
在这里,我们
- 获取TLSv1.3流编号的排序列表
- 遍历这些流,以便显示过滤器看起来像
tls && ($stream1 || $stream 2 || ...)
使用Lua创建自己的显示过滤器
根据Wireshark论坛上的same question要求,有一个lua script会与此bash脚本进行相同的工作。这是Wireshark文档的一部分,并作为示例代码提供,您可以根据需要进行修改。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。