如何使用 tshark 打印 SSL 数据包详细信息?

如何使用 tshark 打印 SSL 数据包详细信息?

我收集了 SSL 客户端和服务器(确切地说是openssls_client和)之间的简短交换,并希望使用 查看 pcap 文件的 ssl 部分。我不需要解密加密部分,但至少想知道未加密字段中的值。s_servertshark

将文件从服务器复制到我的桌面时,我可以使用 Wireshark 打开 pcap 文件并默认查看字段:

wireshark 输出

另一方面,tshark -r tls_dump.pcap仅显示数据包的 TCP 部分。例如,对于同一个数据包:

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 'port 44330' -w tls_dump.pcap我尝试使用和使用收集数据包tshark -nn -i lo -s 0 -w tls_dump.pcap port 44330(因为这里),但是尝试查看数据包时结果是一样的。

tshark我尝试过的选项:

  • -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"给了我一个No such protocol ssl, can't enable错误

如何输出 SSL 数据包的 SSL 数据包详细信息tshark

答案1

最终有效的是使用指定端口-d tcp.port==44330,ssl,因此我的完整命令是:

tshark -r tls_dump.pcap -d tcp.port==44330,ssl

之所以需要这样做,是因为 Wireshark 中存在一些特定于版本的差异。我的桌面有版本2.6.0,它能够自动检测 SSL 协议。服务器有版本2.4.6,它无法检测 SSL,需要指定端口号。

只能打印 SSL 数据包:

tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl"

仅限 JSON 格式的 SSL 数据包:

tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl" -T json

相关内容