Tcpdumpでパケットキャプチャする!(表示形式の指定)

Tcpdumpでパケットキャプチャします。

Tcpdumpコマンドをインストールする!

tcpdumpコマンドは、通常インストールされていますが、インストールされていない場合は、標準のリポジトリからインストールします。

RHELにtcpdumpをインストールする!

RHELの標準のリポジトリからtcpdumpをインストールします。

$ apt install tcpdump -y

Ubuntuにtcpdumpをインストールする!

Ubuntuの標準のリポジトリからtcpdumpをインストールします。

$ sudo dnf install tcpdump -y

オプション無しでパケットキャプチャする!

オプション無しで実行するとパケットキャプチャが開始されます。

$ sudo tcpdump -c 3
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:34:52.240086 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300802189:3300802409, ack 3425287912, win 341, options [nop,nop,TS val 3589715395 ecr 864891819], length 220
23:34:52.240288 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 864891842 ecr 3589715395], length 0
23:34:52.240798 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:640, ack 1, win 34
...

パケット数を指定してキャプチャする!

「-c」オプションでキャプチャするパケット数を指定できます。

$ sudo tcpdump -c 3
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:37:11.857975 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300803665:3300803885, ack 3425288668, win 341, options [nop,nop,TS val 3589855013 ecr 865031439], length 220
23:37:11.858197 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 865031464 ecr 3589855013], length 0
23:37:11.858888 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:640, ack 1, win 341, options [nop,nop,TS val 3589855014 ecr 865031464], length 420
3 packets captured
4 packets received by filter
0 packets dropped by kernel

パケットの内容をASCII表示します!

「-A」オプションを使用すると、パケットの内容がASCIIで表示されます。

$ sudo tcpdump -c 3 -A
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:38:34.058142 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300805169:3300805389, ack 3425289300, win 341, options [nop,nop,TS val 3589937213 ecr 865113641], length 220
EH....@.@.M.
...
.........J1.).T...U"......
...=3..).8FB.3.]~C.....|~........V..5....|%..Sc......:M....yya.YO..j..:q...3j#7....J.b...<..3..iU.B{.{s ....d9+[.%$~#..0.2...A......XHR....)..]....c}5..m|....T_.l...q.\..A<zu...x.Q..',7.z......N.]..l)*...Gb..;......|..S]2.."..|>
23:38:34.058302 IP dpc001p1.loc.lab4ict.com.42458 > vmsrhe11.loc.lab4ict.com.ssh: Flags [.], ack 220, win 12379, options [nop,nop,TS val 865113666 ecr 3589937213], length 0
E..4j.@.@...
...
........).T..K...0['......
3..B...=
23:38:34.058896 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 220:976, ack 1, win 341, options [nop,nop,TS val 3589937214 ecr 865113666], length 756
EH.(..@.@.K.
...
.........K..).T...U$(.....
...>3..BW....h..N......:.....!y..1.h...... .1.~@..S...h0.....i..:G._......H.........m.q..]J....J.L.+.....D. ..}........w.0.."...B..........I.....S.r$......&..0..1..........^......%...g.1V...V....F...!..Nk%..X.h_/$.......6A....D)...7]s_:p...U..,....8F.....................rwGPR.<#...(.U..Yq.8...r.
.....w......tr"...k~;.tC..I|..:.....E..].I^..}.....$.l....v7."D.x.b.....>>d.D.D..v.V.....0.d...\......O.G...u..5...K. ~ni......j...V..r..C.[...._..:..n.4...bF.W.$.....i...)h.A...($......{.^..I..JJp........L!C....jpT0Rq...2...tRVYa.XX...Y>u0"....o....l......I..EX1\...yK.+.A..\z..f"..%<.zz..U....S.p<.Q.....
.(>.s;;......V..y..=..4q...!.(i.n.... *R.....CW	d..
.x....E..S..9...*......6..`M...... :u.....o.~.."\...5a#1......i...C5..UIK...[.Z..!m2....m,....-KZ..u==..S6(k
3 packets captured
4 packets received by filter
0 packets dropped by kernel

パケットの内容をHEX表示する!

「-x」オプションを使用すると、パケットの内容がHEXで表示されます。

$ sudo tcpdump -c 3 -x
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:40:14.700071 IP vmsrhe11.loc.lab4ict.com.ssh > dpc001p1.loc.lab4ict.com.42458: Flags [P.], seq 3300807773:3300807993, ack 3425289920, win 341, options [nop,nop,TS val 3590037855 ecr 865214282], length 220
	0x0000:  4548 0110 cab6 4000 4006 4ddc 0a01 0c0b
	0x0010:  0a01 0101 0016 a5da c4be 545d cc29 c6c0
	0x0020:  8018 0155 2210 0000 0101 080a d5fb a15f
	0x0030:  3392 1f4a 43c4 92b2 6a37 aec3 9edb c69b
	0x0040:  fcee d1ea 8b35 673c 71c2 f500 22d3 9133
...

名前解決をしないようにする!

「-n」オプションを使用すると名前解決がされず、ホスト名が必ずIPアドレスで表示されいます。

$ sudo tcpdump -c 3 -n
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:43:28.337891 IP 10.1.12.11.ssh > 10.1.1.1.42458: Flags [P.], seq 3300815385:3300815605, ack 3425291008, win 341, options [nop,nop,TS val 3590231493 ecr 865407922], length 220
23:43:28.338105 IP 10.1.1.1.42458 > 10.1.12.11.ssh: Flags [.], ack 220, win 12470, options [nop,nop,TS val 865407947 ecr 3590231493], length 0
23:43:28.338598 IP 10.1.12.11.ssh > 10.1.1.1.42458: Flags [P.], seq 220:584, ack 1, win 341, options [nop,nop,TS val 3590231493 ecr 865407947], length 364
3 packets captured
3 packets received by filter
0 packets dropped by kernel

名前解決をしないようにする!

「-nn」オプションを使用すると、ポート番号がサービス名ではなく必ず数字で表示されます。

$ sudo tcpdump -c 3 -nn
dropped privs to tcpdump
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:44:35.883274 IP 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], seq 3300817001:3300817221, ack 3425291568, win 341, options [nop,nop,TS val 3590299038 ecr 865475474], length 220
23:44:35.883515 IP 10.1.1.1.42458 > 10.1.12.11.22: Flags [.], ack 220, win 12470, options [nop,nop,TS val 865475492 ecr 3590299038], length 0
23:44:35.883961 IP 10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], seq 220:576, ack 1, win 341, options [nop,nop,TS val 3590299039 ecr 865475492], length 356
3 packets captured
4 packets received by filter
0 packets dropped by kernel

詳細を表示する!

「-v」オプションを使用すると、省略されていた情報が表示されるようになります。

$ sudo tcpdump -c 3 -nn -v
dropped privs to tcpdump
tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:47:21.740595 IP (tos 0x48, ttl 64, id 51967, offset 0, flags [DF], proto TCP (6), length 200)
    10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x21c8 (incorrect -> 0xac9f), seq 3300818581:3300818729, ack 3425292588, win 341, options [nop,nop,TS val 3590464895 ecr 865641328], length 148
23:47:21.740784 IP (tos 0x10, ttl 64, id 27494, offset 0, flags [DF], proto TCP (6), length 52)
    10.1.1.1.42458 > 10.1.12.11.22: Flags [.], cksum 0xcb2c (correct), ack 148, win 12470, options [nop,nop,TS val 865641347 ecr 3590464895], length 0
23:47:21.741340 IP (tos 0x48, ttl 64, id 51968, offset 0, flags [DF], proto TCP (6), length 632)
    10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x2378 (incorrect -> 0x7ad5), seq 148:728, ack 1, win 341, options [nop,nop,TS val 3590464896 ecr 865641347], length 580
3 packets captured
4 packets received by filter
0 packets dropped by kernel

「-vv」オプションを使用すると、さらに詳細な情報が表示されるようになります。

$ sudo tcpdump -c 3 -nn -vv
dropped privs to tcpdump
tcpdump: listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
23:48:08.587880 IP (tos 0x48, ttl 64, id 51980, offset 0, flags [DF], proto TCP (6), length 200)
    10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x21c8 (incorrect -> 0x0c27), seq 3300820105:3300820253, ack 3425293000, win 341, options [nop,nop,TS val 3590511743 ecr 865688176], length 148
23:48:08.588021 IP (tos 0x10, ttl 64, id 27516, offset 0, flags [DF], proto TCP (6), length 52)
    10.1.1.1.42458 > 10.1.12.11.22: Flags [.], cksum 0x559c (correct), seq 1, ack 148, win 12470, options [nop,nop,TS val 865688194 ecr 3590511743], length 0
23:48:08.588507 IP (tos 0x48, ttl 64, id 51981, offset 0, flags [DF], proto TCP (6), length 640)
    10.1.12.11.22 > 10.1.1.1.42458: Flags [P.], cksum 0x2380 (incorrect -> 0xa5ab), seq 148:736, ack 1, win 341, options [nop,nop,TS val 3590511743 ecr 865688194], length 588
3 packets captured
4 packets received by filter
0 packets dropped by kernel

おわりに

tcpdumpでは、様々な表示形式が指定できるので、必要なオプションをあらかじめ整理しておきましょう。

関連記事