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でやりとりするデータが見れた.
終了.