tcpdumpでパケット収集

Kalilinux
Screenshot

tcpdumpとtsharkは両方とも通信データ(パケット)を収集するツール。

wiresharkと同じですが、wiresharkはGUIに対し、この両者ともCLIのツールです。

この両者で収集したパケットは、後でGUIのwiresharkで解析することもできます。

本当は両者同時に取り上げたかったのですが、長くなりますので今回は ” tcpdump ” の方を取り上げます。

tcpdumpの起動

Kali ー 09-Sniffing & Spoofing ー tcpdump

tcpdump

ヘルプ画面が表示されます。バージョンは4.99.5

tcpdump help

tcpdumpの実行

上記コマンドで勝手にパケットの収集を始めます。

tcpdump

収集をストップする時は、Ctrl+C。

オプション ” -c 数字 ” とすれば予め設定したパケット数を収集後に終了します。
例) sudo tcpdump -c 100
(100パケット集めて停止)

tcpdumpの主なオプション

-nn

名前解決しないオプション。IPやポート番号を数字のままで表示。

-nn

このオプションは基本的につけておいた方が、後で出力結果を読みやすいようです。

-D

インターフェースの一覧を表示します。

-D

-i

インターフェースを指定。

例)

” -i ” オプションを何も指定しない場合には、上記 ” -D ” オプションで得られた一覧表のうちの、最も小さいインターフェース(自分自身宛:ループバック ” lo ” :上記リストでは3:を除く)を自動で選択します。

上記一覧表のリスト番号での指定も可能です。

上記の場合、リストの1番目(=wlan0)を指定したことになります。

-p

自分宛の通信しか受信しない設定にする。

その逆は、第三者へ宛てた通信も受信する設定(=プロミスキャス・モード)です。

プロミスキャス・モード : 盗聴や監視に使用されるモード

もちろん届くのは自分と同じLAN内に参加しているホスト宛の通信だけですがね。

-v, -vv, -vvv

詳細表示( ” v ” の数が多くなるほど詳細。)

-v
-vv
-vvv

-w と -r

集めたデータを出力ファイルに書き出す ” -w ” と、それを読み込む ” -r ” です。

ファイルの書き出し ” -w ”

例)

収集結果を ” tdfile.pcap ” というファイルに書き出してみます。

適当な所で ” Ctrl + C ” で止めると、3パケット集まっていました。

ホームディレクトリ内には、 ” tdfile.pcap ” というファイルが出来ています。

そのファイルの中身。

ファイルの読み込み ” -r ”

次はそれを読み込んでみます。

収集結果が表示されます。

-X と -A

今ではめっきり少なくなってしまいましたが、暗号化されていない ” http:// ” 通信であれば、その中身(本文)が読めるオプションです。

以下は ” -X ” オプションの例。右列に意味が分かる文字列が読み取れます。

-X

自分が立てた暗号化されていないサーバーに接続した結果です。

tcpdumpのフィルタリング

ホスト名とポート番号の指定

host ホスト名通信相手ホストを指定
port ポート番号ポート番号を指定
src host ホスト名送信元ホストを指定
src port ポート番号送信元ポート番号を指定
dst host ホスト名送信先ホスト名を指定
dst port ポート番号送信先ポート番号を指定

例)送信元のポートが443のパケットのみを集める場合。

src port

プロトコルの指定

ツール名は ” tcpdump ” ですが、tcp以外のプロトコルにも対応しており、指定選択して収集できます。以下は対応プロトコルの一部。

例) udpのみ収集する場合

udp

tcpdumpの結果解釈

結果は以下の順に並んでいます。

すみません。解釈にはTCP/IPの勉強が必要です。

私はあまり勉強できてませんので、その説明には自ずと限界があります。

まとめ

パケット収集ツール ” tcpdump ” の使用方法についてでした。tcpと名付けられていますが、tcp以外も収集出来ます。

3つのツール ” wireshark ” 、 ” tshark ” 、 ” tcpdump ” は、同じデータを観測するので、収集結果は同じとなるはずです。

次回は残りの ” tshark ” を取り上げます。

コメント

タイトルとURLをコピーしました