web-dev-qa-db-ja.com

tsharkを使用してSSLハンドシェイクを嗅ぐ

Tsharkを使用して人間が読める形式でSSLハンドシェイクのダンプを取得するにはどうすればよいですか?失敗したSSLハンドシェイクの問題をデバッグするために、これをベンダーに提供する必要があります。

これは、GUIのない​​リモートサーバーで実行されるため、wiresharkではなくtsharkで実行する必要があります。

7
goji

このような。

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

置換<interface>は、キャプチャするインターフェイス名(例:eth0)。置換<hostname>は、パケットをキャプチャするリモートホストの名前またはIPアドレスです。置換<portnumber>サービスが実行されているポート(おそらく443)。

代わりにtcpdumpを使用することもできます。 Wiresharkとtcpdumpはどちらもキャプチャにlibpcapを使用するため、まったく同じ情報をキャプチャします。結果のファイルをコピーして、別のコンピューターのWiresharkで開くこともできます。

tcpdumptsharkのコマンドラインフラグは十分に近いため、ほとんどの場合、互換的に使用できます。

4
bahamat

Tsharkでフィルターを使用する方法を既に知っていると仮定して、次の表示フィルターを指定するだけです。

ssl.handshake.type == 1

すべてのsslトラフィックが必要な場合は、sslをフィルターとして使用します。

ペイロードがsslであるかどうかをキャプチャフィルタリングメカニズムが認識していないため、これらをキャプチャフィルターで直接使用することはできません。

または、sslトラフィックが通過するポートがわかっている場合は、そのポートにキャプチャフィルターを使用できます。たとえば、sslトラフィックがポート443に送信される場合は、フィルターport 443を使用します。

詳細については、以下を参照してください。

  1. ここにssl表示フィルターのより広範なリストがあります。

  2. キャプチャフィルターを使用してSSLをキャプチャする方法

人間が読める形式でSSLトラフィックをキャプチャし、ファイルに入れるためのコマンドの例は次のとおりです。

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

またはキャプチャフィルターを使用する

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

詳細は tshark man page も参照してください。

4
Akshet