使用tshark嗅探SSL握手

如何使用tshark以可读格式获得SSL握手的转储? 我需要将此提供给供应商debugging失败的SSL握手问题。

这需要在tshark中完成,而不是在没有GUI的远程服务器上完成。

喜欢这个。

tshark -nn -i <interface> -s 0 -w mycapture.pcap <hostname> and port <portnumber> 

<interface>replace为接口名称(例如, eth0 )。 将<hostname>replace为要为其捕获数据包的远程主机的名称或IP地址。 将<portnumber>replace为运行服务的端口(可能是443 )。

您也可以使用tcpdump 。 Wireshark和tcpdump使用libpcap进行捕获,因此您将捕获完全相同的信息。 您也可以复制生成的文件并在另一台计算机上的Wireshark中打开它。

tcpdumptshark的命令行标志足够接近,大多数情况下它们可以互换使用。

假设你已经知道如何用tshark使用filter,只需要提供下面的显示filter:

 ssl.handshake.type == 1 

如果你想要所有的sslstream量,只需要把ssl作为filter。

您不能直接在捕获filter中使用这些捕获过滤机制,因为捕获过滤机制不知道有效负载是否为ssl。

或者,如果您知道sslstream量正在经过的端口,则可以为该端口使用捕获filter,例如,如果sslstream量正在端口443上,则使用filterport 443

更多阅读请参阅:

  1. 更广泛的ssl显示过滤列表在这里。

  2. 如何使用捕获filter捕获ssl

一个示例命令用于以可读的格式捕获sslstream量并将其放入一个文件中:

 tshark -i <interface> -c <no. of packets to capture> -V -R "ssl" > capturefile.txt 

或者使用捕获filter

 tshark -i <interface> -c <no. of packets to capture> -V -f "port 443" > capturefile.txt 

有关更多详细信息,请参阅tshark手册页 。