tcpdumpでtelnetのIDとパスを見てみた

n番煎じの覚え書き
この前,情報通信の授業でtcpdumpについて触れた.
例のごとくコマンドをコピペして出力結果を紙に書き写す作業で,よくわからなかった.
そこでセキュリティの勉強も兼ねて,tcpdumpでtelnetのIDとパスを眺めてみることにした.
ちなみに,VPSはtelnetを受け付けないようにしてるし,設定変えるのもだるいので,Raspberry Piを使うことにした.

最初に,RPiにはtelnetdとtcpdumpが入っていないので,入れる

sudo apt-get install telnetd
sudo apt-get install tcpdump

 
ここで一旦telnetで接続できるか試してみる.

Raspbian GNU/Linux 8
raspberrypi login:

みたいな感じで表示されるはず.
telnetを受け付けていることを確認したら,tcpdumpで眺めてみる.

$sudo tcpdump port telnet
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
03:21:20.454107 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [S], seq 1669263416, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
03:21:20.454298 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [S.], seq 597546784, ack 1669263417, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
03:21:20.461533 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [.], ack 1, win 256, length 0
03:21:20.468970 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 1:16, ack 1, win 256, length 15
03:21:20.469109 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [.], ack 16, win 457, length 0
03:21:20.538984 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 1:13, ack 16, win 457, length 12
03:21:20.543466 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 16:19, ack 13, win 256, length 3
03:21:20.543766 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 13:25, ack 19, win 457, length 12
03:21:20.546062 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 19:25, ack 25, win 256, length 6
03:21:20.546627 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 25:31, ack 25, win 457, length 6
03:21:20.548995 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 25:34, ack 31, win 256, length 9
03:21:20.588044 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [.], ack 34, win 457, length 0
03:21:20.593422 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 34:45, ack 31, win 256, length 11
03:21:20.593623 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [.], ack 45, win 457, length 0
03:21:20.595661 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 31:40, ack 45, win 457, length 9
03:21:20.608170 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 45:48, ack 40, win 256, length 3
03:21:20.609144 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 40:62, ack 48, win 457, length 22
03:21:20.611931 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [P.], seq 48:54, ack 62, win 256, length 6
03:21:20.648103 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [.], ack 54, win 457, length 0
03:21:20.650131 IP 192.168.11.4.telnet > 192.168.11.3.2762: Flags [P.], seq 62:81, ack 54, win 457, length 19
03:21:20.703336 IP 192.168.11.3.2762 > 192.168.11.4.telnet: Flags [.], ack 81, win 256, length 0

 
接続するだけでこのくらい流れてくると思う.最初に3ウェイハンドシェイクを行って,なにかデータが流れていることが分かる.
流れるパケットの中身を見るには,-xと-Xオプションが有る.両方とも16進数で中身を表示するが,-Xの方は加えてASCII形式でも表示してくれる.

$sudo tcpdump -x port telnet
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
03:28:02.304954 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [S], seq 531974383, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
0x0000: 4500 0034 0c8c 4000 8006 56e0 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 48ef 0000 0000
0x0020: 8002 2000 4410 0000 0204 05b4 0103 0308
0x0030: 0101 0402
03:28:02.305145 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [S.], seq 4137030896, ack 531974384, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
0x0000: 4500 0034 0000 4000 4006 a36c c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 14f0 1fb5 48f0
0x0020: 8012 7210 e669 0000 0204 05b4 0101 0402
0x0030: 0103 0306
03:28:02.309393 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [.], ack 1, win 256, length 0
0x0000: 4500 0028 0c8d 4000 8006 56eb c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 48f0 f696 14f1
0x0020: 5010 0100 984b 0000
03:28:02.314903 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 1:16, ack 1, win 256, length 15
0x0000: 4500 0037 0c8e 4000 8006 56db c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 48f0 f696 14f1
0x0020: 5018 0100 623c 0000 fffb 18ff fd03 fffb
0x0030: 03ff fd01 fffb 1f
03:28:02.315054 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [.], ack 16, win 457, length 0
0x0000: 4500 0028 1c8d 4000 4006 86eb c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 14f1 1fb5 48ff
0x0020: 5010 01c9 9773 0000
03:28:07.389841 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 1:13, ack 16, win 457, length 12
0x0000: 4510 0034 1c8e 4000 4006 86ce c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 14f1 1fb5 48ff
0x0020: 5018 01c9 601c 0000 fffd 18ff fd20 fffd
0x0030: 23ff fd27
03:28:07.393670 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 16:19, ack 13, win 256, length 3
0x0000: 4500 002b 0c98 4000 8006 56dd c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 48ff f696 14fd
0x0020: 5018 0100 7828 0000 fffc 20
03:28:07.393892 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 13:25, ack 19, win 457, length 12
0x0000: 4510 0034 1c8f 4000 4006 86cd c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 14fd 1fb5 4902
0x0020: 5018 01c9 9736 0000 fffb 03ff fd03 fffb
0x0030: 01ff fd1f
03:28:07.396541 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 19:25, ack 25, win 256, length 6
0x0000: 4500 002e 0c99 4000 8006 56d9 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4902 f696 1509
0x0020: 5018 0100 77ef 0000 fffc 23ff fc27
03:28:07.396846 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 25:31, ack 25, win 457, length 6
0x0000: 4510 002e 1c90 4000 4006 86d2 c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 1509 1fb5 4908
0x0020: 5018 01c9 7f57 0000 fffa 1801 fff0
03:28:07.399888 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 25:34, ack 31, win 256, length 9
0x0000: 4500 0031 0c9a 4000 8006 56d5 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4908 f696 150f
0x0020: 5018 0100 1d09 0000 fffa 1f00 5400 17ff
0x0030: f0
03:28:07.438056 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [.], ack 34, win 457, length 0
0x0000: 4510 0028 1c91 4000 4006 86d7 c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 150f 1fb5 4911
0x0020: 5010 01c9 9743 0000
03:28:07.440636 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 34:45, ack 31, win 256, length 11
0x0000: 4500 0033 0c9b 4000 8006 56d2 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4911 f696 150f
0x0020: 5018 0100 4417 0000 fffa 1800 7874 6572
0x0030: 6dff f0
03:28:07.440847 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [.], ack 45, win 457, length 0
0x0000: 4510 0028 1c92 4000 4006 86d6 c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 150f 1fb5 491c
0x0020: 5010 01c9 9738 0000
03:28:07.442968 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 31:40, ack 45, win 457, length 9
0x0000: 4510 0031 1c93 4000 4006 86cc c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 150f 1fb5 491c
0x0020: 5018 01c9 7926 0000 fffd 01ff fb05 fffd
0x0030: 21
03:28:07.458636 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 45:48, ack 40, win 256, length 3
0x0000: 4500 002b 0c9c 4000 8006 56d9 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 491c f696 1518
0x0020: 5018 0100 96f0 0000 fffc 01
03:28:07.459764 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 40:62, ack 48, win 457, length 22
0x0000: 4510 003e 1c94 4000 4006 86be c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 1518 1fb5 491f
0x0020: 5018 01c9 6353 0000 5261 7370 6269 616e
0x0030: 2047 4e55 2f4c 696e 7578 2038 0d0a
03:28:07.463766 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [P.], seq 48:54, ack 62, win 256, length 6
0x0000: 4500 002e 0c9d 4000 8006 56d5 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 491f f696 152e
0x0020: 5018 0100 95b1 0000 fffe 05ff fc21
03:28:07.498108 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [.], ack 54, win 457, length 0
0x0000: 4510 0028 1c95 4000 4006 86d3 c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 152e 1fb5 4925
0x0020: 5010 01c9 9710 0000
03:28:07.502390 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [P.], seq 62:81, ack 54, win 457, length 19
0x0000: 4510 003b 1c96 4000 4006 86bf c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 152e 1fb5 4925
0x0020: 5018 01c9 97a7 0000 7261 7370 6265 7272
0x0030: 7970 6920 6c6f 6769 6e3a 20
03:28:07.557677 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [.], ack 81, win 256, length 0
0x0000: 4500 0028 0c9e 4000 8006 56da c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4925 f696 1541
0x0020: 5010 0100 97c6 0000
03:28:12.371239 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [F.], seq 54, ack 81, win 256, length 0
0x0000: 4500 0028 0ca1 4000 8006 56d7 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4925 f696 1541
0x0020: 5011 0100 97c5 0000
03:28:12.371997 IP 192.168.11.4.telnet > 192.168.11.3.2797: Flags [F.], seq 81, ack 55, win 457, length 0
0x0000: 4510 0028 1c97 4000 4006 86d1 c0a8 0b04
0x0010: c0a8 0b03 0017 0aed f696 1541 1fb5 4926
0x0020: 5011 01c9 96fb 0000
03:28:12.383117 IP 192.168.11.3.2797 > 192.168.11.4.telnet: Flags [.], ack 82, win 256, length 0
0x0000: 4500 0028 0ca2 4000 8006 56d6 c0a8 0b03
0x0010: c0a8 0b04 0aed 0017 1fb5 4926 f696 1542
0x0020: 5010 0100 97c4 0000

 
時刻03:28:07.459764の0x0027以降は5261 7370 6269 616e …となっており,ASCIIコード表に照らして置き換えると,Raspbian …となる.
まあ,これは-Xオプションをつければすぐに分かる.

$sudo tcpdump -X port telnet
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
03:35:34.755716 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [S], seq 4255953184, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
0x0000: 4500 0034 0d69 4000 8006 5603 c0a8 0b03 E..4.i@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b120 0000 0000 .....P..........
0x0020: 8002 2000 fd83 0000 0204 05b4 0103 0308 ................
0x0030: 0101 0402 ....
03:35:34.755912 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [S.], seq 3230103982, ack 4255953185, win 29200, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
0x0000: 4500 0034 0000 4000 4006 a36c c0a8 0b04 E..4..@.@..l....
0x0010: c0a8 0b03 0017 0b50 c087 79ae fdac b121 .......P..y....!
0x0020: 8012 7210 712e 0000 0204 05b4 0101 0402 ..r.q...........
0x0030: 0103 0306 ....
03:35:34.766169 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [.], ack 1, win 256, length 0
0x0000: 4500 0028 0d6a 4000 8006 560e c0a8 0b03 E..(.j@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b121 c087 79af .....P.....!..y.
0x0020: 5010 0100 2310 0000 P...#...
03:35:34.778246 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 1:16, ack 1, win 256, length 15
0x0000: 4500 0037 0d6b 4000 8006 55fe c0a8 0b03 E..7.k@...U.....
0x0010: c0a8 0b04 0b50 0017 fdac b121 c087 79af .....P.....!..y.
0x0020: 5018 0100 ed00 0000 fffb 18ff fd03 fffb P...............
0x0030: 03ff fd01 fffb 1f .......
03:35:34.778391 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [.], ack 16, win 457, length 0
0x0000: 4500 0028 c096 4000 4006 e2e1 c0a8 0b04 E..(..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79af fdac b130 .......P..y....0
0x0020: 5010 01c9 2238 0000 P..."8..
03:35:34.843688 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 1:13, ack 16, win 457, length 12
0x0000: 4510 0034 c097 4000 4006 e2c4 c0a8 0b04 E..4..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79af fdac b130 .......P..y....0
0x0020: 5018 01c9 eae0 0000 fffd 18ff fd20 fffd P...............
0x0030: 23ff fd27 #..'
03:35:34.846555 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 16:19, ack 13, win 256, length 3
0x0000: 4500 002b 0d6c 4000 8006 5609 c0a8 0b03 E..+.l@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b130 c087 79bb .....P.....0..y.
0x0020: 5018 0100 02ed 0000 fffc 20 P..........
03:35:34.846814 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 13:25, ack 19, win 457, length 12
0x0000: 4510 0034 c098 4000 4006 e2c3 c0a8 0b04 E..4..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79bb fdac b133 .......P..y....3
0x0020: 5018 01c9 21fb 0000 fffb 03ff fd03 fffb P...!...........
0x0030: 01ff fd1f ....
03:35:34.851692 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 19:25, ack 25, win 256, length 6
0x0000: 4500 002e 0d6d 4000 8006 5605 c0a8 0b03 E....m@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b133 c087 79c7 .....P.....3..y.
0x0020: 5018 0100 02b4 0000 fffc 23ff fc27 P.........#..'
03:35:34.852048 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 25:31, ack 25, win 457, length 6
0x0000: 4510 002e c099 4000 4006 e2c8 c0a8 0b04 E.....@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79c7 fdac b139 .......P..y....9
0x0020: 5018 01c9 0a1c 0000 fffa 1801 fff0 P.............
03:35:34.854451 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 25:34, ack 31, win 256, length 9
0x0000: 4500 0031 0d6e 4000 8006 5601 c0a8 0b03 E..1.n@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b139 c087 79cd .....P.....9..y.
0x0020: 5018 0100 a7cd 0000 fffa 1f00 5400 17ff P...........T...
0x0030: f0 .
03:35:34.888060 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [.], ack 34, win 457, length 0
0x0000: 4510 0028 c09a 4000 4006 e2cd c0a8 0b04 E..(..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79cd fdac b142 .......P..y....B
0x0020: 5010 01c9 2208 0000 P..."...
03:35:34.891448 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 34:45, ack 31, win 256, length 11
0x0000: 4500 0033 0d6f 4000 8006 55fe c0a8 0b03 E..3.o@...U.....
0x0010: c0a8 0b04 0b50 0017 fdac b142 c087 79cd .....P.....B..y.
0x0020: 5018 0100 cedb 0000 fffa 1800 7874 6572 P...........xter
0x0030: 6dff f0 m..
03:35:34.891791 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [.], ack 45, win 457, length 0
0x0000: 4510 0028 c09b 4000 4006 e2cc c0a8 0b04 E..(..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79cd fdac b14d .......P..y....M
0x0020: 5010 01c9 21fd 0000 P...!...
03:35:34.893855 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 31:40, ack 45, win 457, length 9
0x0000: 4510 0031 c09c 4000 4006 e2c2 c0a8 0b04 E..1..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79cd fdac b14d .......P..y....M
0x0020: 5018 01c9 03eb 0000 fffd 01ff fb05 fffd P...............
0x0030: 21 !
03:35:34.908283 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 45:48, ack 40, win 256, length 3
0x0000: 4500 002b 0d70 4000 8006 5605 c0a8 0b03 E..+.p@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b14d c087 79d6 .....P.....M..y.
0x0020: 5018 0100 21b5 0000 fffc 01 P...!......
03:35:34.909219 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 40:62, ack 48, win 457, length 22
0x0000: 4510 003e c09d 4000 4006 e2b4 c0a8 0b04 E..>..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79d6 fdac b150 .......P..y....P
0x0020: 5018 01c9 ee17 0000 5261 7370 6269 616e P.......Raspbian
0x0030: 2047 4e55 2f4c 696e 7578 2038 0d0a .GNU/Linux.8..
03:35:34.915839 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [P.], seq 48:54, ack 62, win 256, length 6
0x0000: 4500 002e 0d71 4000 8006 5601 c0a8 0b03 E....q@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b150 c087 79ec .....P.....P..y.
0x0020: 5018 0100 2076 0000 fffe 05ff fc21 P....v.......!
03:35:34.948193 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [.], ack 54, win 457, length 0
0x0000: 4510 0028 c09e 4000 4006 e2c9 c0a8 0b04 E..(..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79ec fdac b156 .......P..y....V
0x0020: 5010 01c9 21d5 0000 P...!...
03:35:34.951224 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [P.], seq 62:81, ack 54, win 457, length 19
0x0000: 4510 003b c09f 4000 4006 e2b5 c0a8 0b04 E..;..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79ec fdac b156 .......P..y....V
0x0020: 5018 01c9 226c 0000 7261 7370 6265 7272 P..."l..raspberr
0x0030: 7970 6920 6c6f 6769 6e3a 20 ypi.login:.
03:35:35.001057 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [.], ack 81, win 256, length 0
0x0000: 4500 0028 0d72 4000 8006 5606 c0a8 0b03 E..(.r@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b156 c087 79ff .....P.....V..y.
0x0020: 5010 0100 228b 0000 P..."...
03:35:48.239635 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [F.], seq 54, ack 81, win 256, length 0
0x0000: 4500 0028 0d77 4000 8006 5601 c0a8 0b03 E..(.w@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b156 c087 79ff .....P.....V..y.
0x0020: 5011 0100 228a 0000 P..."...
03:35:48.240381 IP 192.168.11.4.telnet > 192.168.11.3.2896: Flags [F.], seq 81, ack 55, win 457, length 0
0x0000: 4510 0028 c0a0 4000 4006 e2c7 c0a8 0b04 E..(..@.@.......
0x0010: c0a8 0b03 0017 0b50 c087 79ff fdac b157 .......P..y....W
0x0020: 5011 01c9 21c0 0000 P...!...
03:35:48.252929 IP 192.168.11.3.2896 > 192.168.11.4.telnet: Flags [.], ack 82, win 256, length 0
0x0000: 4500 0028 0d78 4000 8006 5600 c0a8 0b03 E..(.x@...V.....
0x0010: c0a8 0b04 0b50 0017 fdac b157 c087 7a00 .....P.....W..z.
0x0020: 5010 0100 2289 0000 P..."...

 
時刻03:35:34.909219でRaspbianとか表示される.
で,-xも-Xもヘッダ部分含めて全部16進表示してくれるんだけど,今回はデータだけが見たい.
なので,pythonで軽くスクリプトを書いて整形してみる.入力は-xオプションを使った時の結果にする.
書いたスクリプトは以下.
 

#!/usr/bin/python
import sys
import re
length=0
data=[]
for line in iter(sys.stdin.readline, ""):
        line=line.replace("\n","")
        if not line:
                continue
        if line[0]!='\t':
                if length!=0:
                        data=data[len(data)-length:]
                        for c in data:
                                c=int(c,16)
                                if 0x00<c and c<0x80:
                                        sys.stdout.write(chr(c))
                        data=[]
                length=int(re.search(r'\d+$',line).group(0))
        else:
                line=line.split(':')[1]
                line=line.replace(" ","")
                data+=[line[i:i+2] for i in range(0,len(line),2)]

簡単にプログラムの説明.
このプログラムはtcpdump -x の結果を受け取ってデータ部分のみをASCIIで表示する(unicodeとかは無理).
lengthはデータ部の長さ,dataはパケット全体かデータ部.
8行目でsys.stdinを使わずiter(sys.stdin.readline, “”)としているのは,入力をバッファリングしないため.
バッファに溜めると処理がリアルタイムにできないので,入力についてはiter()を使用し,出力についてはpythonの-uオプションで対応する.
12行目のif文以下は時刻の行の処理.
データが有ればそれをASCIIで出力し,その後データ部の長さをlengthに入れる.
ちなみに,pythonの出力ではprint が改行あり,print ,が空白ありになるので,ここではsys.stdout.write()を使っている.
21行目のelse以下はデータを溜める処理になっている.
実際に動かしてみる.
片方のターミナルでtcpdumpを実行した後,もう片方のターミナルでtelnet接続をする.
ちなみに,tcpdumpでは-lオプションを付けることでバッファリングを無効にして,パイプの向こうにリアルタイムでデータを送ることができる.

$sudo tcpdump -x -l port telnet | python -u ./dump.py
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
#' #'Txterm!Raspbian GNU/Linux 8
!raspberrypi login: tteessttiidd
Password: testpass
Login incorrect
raspberrypi login:

 
キーボードからの入力はtestidとtestpass.
idで文字の重複があるのはエコーバックがあるから.
これで,telnetでやりとりするデータが見れた.
終了.