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

vas*_*rud 4 ubuntu ssl tshark

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

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

线鲨输出

另一方面,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 ...
Run Code Online (Sandbox Code Playgroud)

我尝试使用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

vas*_*rud 5

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

tshark -r tls_dump.pcap -d tcp.port==44330,ssl
Run Code Online (Sandbox Code Playgroud)

这是必要的原因是由于 Wireshark 中的某些特定于版本的差异。我的桌面有版本2.6.0,它能够自动检测 SSL 协议。服务器有 version 2.4.6,它无法检测 SSL 并且需要指定端口号。

只能打印 SSL 数据包:

tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl"
Run Code Online (Sandbox Code Playgroud)

仅 JSON 格式的 SSL 数据包:

tshark -r tls_dump.pcap -d tcp.port==44330,ssl -2R "ssl" -T json
Run Code Online (Sandbox Code Playgroud)