Wiresharkでパケットキャプチャしてみた
Wiresharkとは
TCP/IPで流れるデータを確認できる「パケットキャプチャ」ソフトの代表格。
Windows版, Mac版, Linux版それぞれあります。
ここではMac版を試します。
Wiresharkの公式サイト: https://www.wireshark.org/
Wiresharkをインストール
Wiresharkはhomebrewでインストールできるらしい。
参考: homebrewでwiresharkのQt版をインストール - Qiita
それではTerminalを開いて、下記コマンドをえいやっ。
$ brew install wireshark --with-qt
なんかwaringがでて--with-qt
は非推奨だぜって怒られてます。
が、勝手に推奨されているものをinstallしてくれているので問題無し。
古かったみたいです。最新は以下のようです。
$ brew install wireshark --with-qt5
それではWiresharkを起動してみます。
$ wireshark
….ありまっ。。No interface found
とでてきました。。
先ほどのinstall時のログを見てみるとIf your list of available capture interfaces is empty
と書いてあり、brew cask install wireshark-chmodbpf
を実行してって。
ということで、言われるがままに、えいやっ。
$ brew cask install wireshark-chmodbpf
そして再度Wiresharkを起動すると、
今度はインターフェイスリストが表示されました。
上記を踏まえると、以下の手順でやるとスムーズですね。
$ brew install wireshark --with-qt5 $ brew cask install wireshark-chmodbpf
補足:
homebrewを入れていない人は
下記記事を参考にしてみて使えるようにしてみては。
参考: パッケージ管理システム Homebrew - Qiita
Wiresharkの使い方
Wiresharkを起動したら、「キャプチャ」メニューから「オプション」を選択。
インターネットとの通信をパケットキャプチャしたいので、
インターネットと繋がっているネットワークを選択して、開始!
UDPのパケットを見る
画面上部のFilterにudp.port==53
といれると、
DNSのパケットに絞り込んで見れます。
TCPのパケットを見る
TCPもUDPと同様にFilterにtcp.port==80
といれると、
TCPのパケットに絞り込んで見れます。
ただし、上記だけでは他のアプリの通信も拾ってしまうので
パブリックIPアドレスを絞り込み条件に加えます。
パブリックIPアドレスはTerminalからnslookupコマンドで確認できます。
こんな感じです。
$ nslookup leihauoli.com
すると、こんな感じで表示され、54.249.34.46
がパブリックIPアドレスです。
Filterにtcp.port==80 and ip.dst_host==54.249.34.46
のように入力すれば
通信を見たいサイトのパケットを確認できます。
上記imgのNo206 - 209は「SYN」「SYN+ACK」「ACK」の3ウェイハンドシェーク。
また、中央部にはGETコマンドが送信されていることもわかります。
ひっさしぶりの投稿でした。