tcpdump
パケットキャプチャをして解析するためのツール
libpcap
基本構文:
sudo tcpdump
特定のインターフェース: sudo tcpdump -i eth0
出力をファイル保存: sudo tcpdump -w capture.pcap
保存ファイルを読む: tcpdump -r capture.pcap
フィルタリング:
IP指定: host 192.168.1.10
ポート指定: port 80
TCPのみ: tcp
UDPのみ: udp
表示制御:
ASCII表示: -A
HEX+ASCII表示: -X
件数制限: -c 10
$ ip -a
$ sudo tcpdump -i eth0 -c 10
$ sudo tcpdump port 80 -A -c 10
$ tcpdump -d -i lo src 127.0.0.1 and port 80
code:memo
(000) ldh 12
(001) jeq #0x800 jt 2 jf 16
(002) ld 26
(003) jeq #0x7f000001 jt 4 jf 16
(004) ldb 23
(005) jeq #0x84 jt 8 jf 6
(006) jeq #0x6 jt 8 jf 7
(007) jeq #0x11 jt 8 jf 16
(008) ldh 20
(009) jset #0x1fff jt 16 jf 10
(010) ldxb 4*(14&0xf)
(011) ldh x + 14
(012) jeq #0x50 jt 15 jf 13
(013) ldh x + 16
(014) jeq #0x50 jt 15 jf 16
(015) ret #262144
(016) ret #0
確認用
Q. tcpdump コマンドは何のためのツールか?
A. パケットをキャプチャして解析する
Q. eth0 のパケットだけをキャプチャしたい
A. sudo tcpdump -i eth0
Q. ダンプの出力を.pcap に保存したい
A. sudo tcpdump -w capture.pcap
Q. ダンプの出力を.pcap を読みたい
A. tcpdump -r capture.pcap
Q. 192.168.1.10 の通信をキャプチャしたい
A. sudo tcpdump host 192.168.1.10
Q. ポート80の通信をキャプチャしたい
A. sudo tcpdump port 80
Q. TCPだけをキャプチャしたい
A. sudo tcpdump tcp
Q. UDPだけをキャプチャしたい
A. sudo tcpdump udp
Q. 出力を10件だけキャプチャしたい
A. sudo tcpdump -c 10
Q. ASCII表示にしたい
A. -A
Q. HTTPパケットをASCIIで10件キャプチャしたい
A. sudo tcpdump port 80 -A -c 10
参考
とほほのtcpdump入門 - とほほのWWW入門
関連
#shell