我收集了 SSL 客户端和服务器(确切地说是openssls_client
和s_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
?
最终起作用的是使用 指定端口-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)
归档时间: |
|
查看次数: |
3322 次 |
最近记录: |