我收集了SSL客户端和服务器之间的简短交换(确切地说是openssl的s_client和s_server),并希望使用tshark查看pcap文件的ssl部分.我不需要解密加密部分,但至少想知道未加密字段中的值.
将文件从服务器复制到我的桌面时,我可以使用Wireshark打开pcap文件并默认查看字段:@H_403_2@
另一方面,tshark -r tls_dump.pcap仅显示数据包的TCP部分.例如,对于相同的数据包:@H_403_2@
4 0.000069237 127.0.0.1 → 127.0.0.1 TCP 373 54312 → 44330 [PSH,ACK] Seq=1 Ack=1 Win=43776 Len=307 ...
我尝试使用tcpdump -U -i lo’端口44330′-w tls_dump.pcap和tshark -nn -i lo -s 0 -w tls_dump.pcap端口44330(如here)收集数据包,但在尝试查看时数据包的结果是一样的.@H_403_2@
tshark选项我试过:@H_403_2@
> -2无效
> -2R“ssl”什么都没有显示
> -Y“ssl”什么都没显示
> -o“ssl.desegment_ssl_records:TRUE”-o“ssl.desegment_ssl_application_data:TRUE”无效
> -T json仅显示原始未解释的TCP有效负载数据
> -V仅显示原始未解释的TCP有效负载数据
> –print没有效果
> –enable-protocol“ssl”无效
> –enable-heuristic“ssl”给了我一个没有这样的协议ssl,无法启用错误@H_403_2@
最后工作的是使用-d tcp.port == 44330,ssl指定端口,因此我的完整命令是:
原文链接:https://www.f2er.com/ubuntu/348062.htmltshark -r tls_dump.pcap -d tcp.port==44330,ssl
这是必要的原因是由于Wireshark中的某些版本特定的差异.我的桌面版本为2.6.0,能够自动检测SSL协议.服务器的版本为2.4.6,无法检测SSL并需要指定端口号.@H_403_2@
只能打印SSL数据包:@H_403_2@
tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl"
仅JSON格式的SSL数据包:@H_403_2@
tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl" -T json