サーバの固有情報などの表示部分をバナー (banner:旗、横断幕)とよび、主なサーバでは以下のシステム設定パラメータによる。
詳しくは各論にて。
Service | File | Item |
---|---|---|
Apache | httpd.conf | ServerTokens |
BIND | named.conf | control 節の version |
Postfix | main.cf | smtp_banner |
Dovecot | dovcot.conf | login_greating |
mgetty | issu, issu.net | \r, \m etc |
krb5-telnet | xinetd.d/krb5-telnetd | server_args= -h |
ProFTPD | proftpd.conf | ServerName, ServerIdent off |
vsftpd | vsftpd.conf | ftp_banner |
tcpdumpは Wireshark よりも低レベルのコマンド。
主なオプション
FTP のやり取りを記録し、解析する例。
[root@cent580 ~]# tcpdump -i eth1 -s 2000 -w tcp.dump (この間、FTPの操作。終了は ^C ) [root@cent580 ~]# tcpdump -X -r tcp.dump reading from file tcp.dump, link-type EN10MB (Ethernet) : 08:38:50.116703 IP vbox1.ftp > hppc.63739: P 1:21(20) ack 1 win 730 0x0000: 4500 003c 00de 4000 4006 8a89 c0a8 9702 E..<..@.@....... 0x0010: c0a8 9701 0015 f8fb 7e0c f7cc c54d a93e ........~....M.> 0x0020: 5018 02da af83 0000 3232 3020 2876 7346 P.......220.(vsF 0x0030: 5450 6420 322e 302e 3529 0d0a TPd.2.0.5).. 08:38:50.313715 IP hppc.63739 > vbox1.ftp: . ack 21 win 2043 0x0000: 4500 0028 0385 4000 8006 47f6 c0a8 9701 E..(..@...G..... 0x0010: c0a8 9702 f8fb 0015 c54d a93e 7e0c f7e0 .........M.>~... 0x0020: 5010 07fb 1afa 0000 0000 0000 0000 P............. 08:38:53.569399 IP hppc.63739 > vbox1.ftp: P 1:15(14) ack 21 win 2043 0x0000: 4500 0036 0386 4000 8006 47e7 c0a8 9701 E..6..@...G..... 0x0010: c0a8 9702 f8fb 0015 c54d a93e 7e0c f7e0 .........M.>~... 0x0020: 5018 07fb 0b72 0000 5553 4552 2073 7475 P....r..USER.stu 0x0030: 6465 6e74 0d0a dent.. 08:38:53.569541 IP vbox1.ftp > hppc.63739: . ack 15 win 730 0x0000: 4500 0028 00df 4000 4006 8a9c c0a8 9702 E..(..@.@....... 0x0010: c0a8 9701 0015 f8fb 7e0c f7e0 c54d a94c ........~....M.L 0x0020: 5010 02da 200d 0000 P....... 08:38:53.570191 IP vbox1.ftp > hppc.63739: P 21:55(34) ack 15 win 730 0x0000: 4500 004a 00e0 4000 4006 8a79 c0a8 9702 E..J..@.@..y.... 0x0010: c0a8 9701 0015 f8fb 7e0c f7e0 c54d a94c ........~....M.L 0x0020: 5018 02da af91 0000 3333 3120 506c 6561 P.......331.Plea 0x0030: 7365 2073 7065 6369 6679 2074 6865 2070 se.specify.the.p 0x0040: 6173 7377 6f72 642e 0d0a assword... 08:38:53.761743 IP hppc.63739 > vbox1.ftp: . ack 55 win 2034 0x0000: 4500 0028 0387 4000 8006 47f4 c0a8 9701 E..(..@...G..... 0x0010: c0a8 9702 f8fb 0015 c54d a94c 7e0c f802 .........M.L~... 0x0020: 5010 07f2 1ad3 0000 0000 0000 0000 P............. 08:38:56.495751 IP hppc.63739 > vbox1.ftp: P 15:28(13) ack 55 win 2034 0x0000: 4500 0035 0388 4000 8006 47e6 c0a8 9701 E..5..@...G..... 0x0010: c0a8 9702 f8fb 0015 c54d a94c 7e0c f802 .........M.L~... 0x0020: 5018 07f2 04d2 0000 5041 5353 2068 696d P.......PASS.him 0x0030: 6974 750d 0a itu..
リアルタイムにパケットを表示する例。POPを使って
[root@cent580 ~]# tcpdump -l -X -s 2000 -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 2000 bytes : (POPにより接続すると、キーを打つたびに内容が表示される) 08:40:00.960697 IP vbox1.pop3 > hppc.63757: P 1:18(17) ack 1 win 730 0x0000: 4500 0039 1d45 4000 4006 6e25 c0a8 9702 E..9.E@.@.n%.... 0x0010: c0a8 9701 006e f90d 432b 14fd 2955 bea5 .....n..C+..)U.. 0x0020: 5018 02da af80 0000 2b4f 4b20 504f 5033 P.......+OK.POP3 0x0030: 2072 6561 6479 2e0d 0a .ready... : 08:40:04.186819 IP hppc.63757 > vbox1.pop3: P 1:2(1) ack 18 win 16420 0x0000: 4500 0029 0392 4000 8006 47e8 c0a8 9701 E..)..@...G..... 0x0010: c0a8 9702 f90d 006e 2955 bea5 432b 150e .......n)U..C+.. 0x0020: 5018 4024 11a2 0000 5500 0000 0000 P.@$....U..... : 08:40:04.874538 IP hppc.63757 > vbox1.pop3: P 2:3(1) ack 18 win 16420 0x0000: 4500 0029 0393 4000 8006 47e7 c0a8 9701 E..)..@...G..... 0x0010: c0a8 9702 f90d 006e 2955 bea6 432b 150e .......n)U..C+.. 0x0020: 5018 4024 13a1 0000 5300 0000 0000 P.@$....S..... : 08:40:05.545904 IP hppc.63757 > vbox1.pop3: P 3:4(1) ack 18 win 16420 0x0000: 4500 0029 0394 4000 8006 47e6 c0a8 9701 E..)..@...G..... 0x0010: c0a8 9702 f90d 006e 2955 bea7 432b 150e .......n)U..C+.. 0x0020: 5018 4024 21a0 0000 4500 0000 0000 P.@$!...E..... 08:40:05.546047 IP vbox1.pop3 > hppc.63757: . ack 4 win 730 0x0000: 4500 0028 1d48 4000 4006 6e33 c0a8 9702 E..(.H@.@.n3.... 0x0010: c0a8 9701 006e f90d 432b 150e 2955 bea8 .....n..C+..)U.. 0x0020: 5010 02da c3f2 0000 P....... 08:40:06.154085 IP hppc.63757 > vbox1.pop3: P 4:5(1) ack 18 win 16420 0x0000: 4500 0029 0395 4000 8006 47e5 c0a8 9701 E..)..@...G..... 0x0010: c0a8 9702 f90d 006e 2955 bea8 432b 150e .......n)U..C+.. 0x0020: 5018 4024 149f 0000 5200 0000 0000 P.@$....R.....
SQL Injection のサンプル ユーザ名パスワードに student, himitu で普通の動作。 パスワードに ' OR '1'='1 を入力すると、ユーザ名に関係なく全て表示されてしまう。
OS Command Injection のサンプル
引数に "ファイル名;コマンド" を入れることで、任意のコマンドが実行される。
Perl の Taint mode (taint は汚染、腐敗の意。この場合は「汚染検出モード」) により、危険な個所を検出できる。
setuid/setgid により実行時 UID/GID が変更された場合、又は -T オプションにより有効となる。
☞セキュアプログラミング講座 (IPA/ISEC より)