MacでWiresharkを使う

  • 25
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

インストール

現在は、brewで入るらしい。

$ brew install wireshark --with-qt

なんか、インターフェイスリストが空になってしまうバグが有るらしいので、以下のコマンドを打って直す。

$ curl 'https://bugs.wireshark.org/bugzilla/attachment.cgi?id=3373' -o ChmodBPF.tar.gz
$ tar zxvf ChmodBPF.tar.gz
$ open ChmodBPF/Install\ ChmodBPF.app

起動してみる

$ wireshark

でGUIが開く。

特定の通信を見てみる

例として、https://api.github.comへの通信を見てみる

準備

$ nslookup api.github.com

をして、api.github.comのIP Addressを取得する。

Name:   api.github.com
Address: 192.30.252.125

とわかる。

パケットフィルタとして、こことの通信だけを見たいので

ip.dst==192.30.252.125||ip.src==192.30.252.125

とすれば良いことがわかる。

実は、api.github.comのipはすぐ変わってしまうので、ホスト名指定のip.dst_hostとかを使いたかったが上手くいかなかった。ipで指定しておくのが無難そう。

実践

この状態で

$ curl https://api.github.com

と打つと以下のようになる

Kobito.ZHtbIb.png

上の部分だけ頑張って切り貼りした画像作った。通信の流れの一覧は以下のようになっている。

Kobito.XE7tT5.png

TCPの3ウェイ・ハンドシェイクやHTTPSの鍵交換などが行われているのもよく分かる。
最後の方にRSTパケットが送られているが、FINを送った後ずっと定期的にRSTを送る仕様になってるみたい。2回目に同じことをやったら個々の部分だけ少しだけ順番が違った。

Kobito.i4uV56.png

これは練習なので、ここまでで終わりとしますが、httpsの通信の詳細や、ここで最後にエラーが出ているのは「SSLキャッシュが効いているから」みたいな話は以下のブログが詳しかったです。
http://d.hatena.ne.jp/ozuma/20140413/1397397632