tcpdumpとtsharkは両方とも通信データ(パケット)を収集するツール。
wiresharkと同じですが、wiresharkはGUIに対し、この両者ともCLIのツールです。
この両者で収集したパケットは、後でGUIのwiresharkで解析することもできます。
本当は両者同時に取り上げたかったのですが、長くなりますので今回は ” tcpdump ” の方を取り上げます。
tcpdumpの起動
Kali ー 09-Sniffing & Spoofing ー tcpdump
ヘルプ画面が表示されます。バージョンは4.99.5
tcpdumpの実行
sudo tcpdump
上記コマンドで勝手にパケットの収集を始めます。
収集をストップする時は、Ctrl+C。
オプション ” -c 数字 ” とすれば予め設定したパケット数を収集後に終了します。
例) sudo tcpdump -c 100
(100パケット集めて停止)
tcpdumpの主なオプション
-nn
名前解決しないオプション。IPやポート番号を数字のままで表示。
このオプションは基本的につけておいた方が、後で出力結果を読みやすいようです。
-D
インターフェースの一覧を表示します。
-i
インターフェースを指定。
例)
sudo tcpdump -i wlan0
” -i ” オプションを何も指定しない場合には、上記 ” -D ” オプションで得られた一覧表のうちの、最も小さいインターフェース(自分自身宛:ループバック ” lo ” :上記リストでは3:を除く)を自動で選択します。
上記一覧表のリスト番号での指定も可能です。
sudo tcpdump -i 1
上記の場合、リストの1番目(=wlan0)を指定したことになります。
-p
自分宛の通信しか受信しない設定にする。
その逆は、第三者へ宛てた通信も受信する設定(=プロミスキャス・モード)です。
プロミスキャス・モード : 盗聴や監視に使用されるモード
もちろん届くのは自分と同じLAN内に参加しているホスト宛の通信だけですがね。
-v, -vv, -vvv
詳細表示( ” v ” の数が多くなるほど詳細。)
-w と -r
集めたデータを出力ファイルに書き出す ” -w ” と、それを読み込む ” -r ” です。
ファイルの書き出し ” -w ”
例)
sudo tcpdump -w ファイル名
収集結果を ” tdfile.pcap ” というファイルに書き出してみます。
適当な所で ” Ctrl + C ” で止めると、3パケット集まっていました。
ホームディレクトリ内には、 ” tdfile.pcap ” というファイルが出来ています。
そのファイルの中身。
ファイルの読み込み ” -r ”
次はそれを読み込んでみます。
sudo tcpdump -r ファイル名
収集結果が表示されます。
-X と -A
今ではめっきり少なくなってしまいましたが、暗号化されていない ” http:// ” 通信であれば、その中身(本文)が読めるオプションです。
以下は ” -X ” オプションの例。右列に意味が分かる文字列が読み取れます。
自分が立てた暗号化されていないサーバーに接続した結果です。
tcpdumpのフィルタリング
ホスト名とポート番号の指定
host ホスト名 | 通信相手ホストを指定 |
port ポート番号 | ポート番号を指定 |
src host ホスト名 | 送信元ホストを指定 |
src port ポート番号 | 送信元ポート番号を指定 |
dst host ホスト名 | 送信先ホスト名を指定 |
dst port ポート番号 | 送信先ポート番号を指定 |
例)送信元のポートが443のパケットのみを集める場合。
sudo tcpdump -nn src port 443
プロトコルの指定
ツール名は ” tcpdump ” ですが、tcp以外のプロトコルにも対応しており、指定選択して収集できます。以下は対応プロトコルの一部。
- arp
- ip
- ip6
- icmp
- icmp6
- tcp
- udp
例) udpのみ収集する場合
sudo tcpdump udp
tcpdumpの結果解釈
結果は以下の順に並んでいます。
- 時間
- IPヘッダ
- 送信元IPとポート > 送信先IPとポート :
- TCPヘッダ
すみません。解釈にはTCP/IPの勉強が必要です。
私はあまり勉強できてませんので、その説明には自ずと限界があります。
まとめ
パケット収集ツール ” tcpdump ” の使用方法についてでした。tcpと名付けられていますが、tcp以外も収集出来ます。
3つのツール ” wireshark ” 、 ” tshark ” 、 ” tcpdump ” は、同じデータを観測するので、収集結果は同じとなるはずです。
次回は残りの ” tshark ” を取り上げます。
コメント