SSLクライアントとサーバーの間の簡単な交換(opensslのs_client
およびs_server
、正確には)を収集し、tshark
を使用してpcapファイルのssl部分を表示したいと考えています。暗号化された部分を復号化する必要はありませんが、少なくとも暗号化されていないフィールドの値を知りたいです。
ファイルをサーバーからデスクトップにコピーするとき、pshファイルを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
エラーを表示します
tshark
を使用して、SSLパケットのSSLパケットの詳細をどのように出力しますか?
最後に機能したのは、-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