Linux Security: 第3章 - 攻撃と侵入の手法(1)

| ← |

3.5 バナー

サーバの固有情報などの表示部分をバナー (banner:旗、横断幕)とよび、主なサーバでは以下のシステム設定パラメータによる。
詳しくは各論にて。

ServiceFileItem
Apachehttpd.confServerTokens
BINDnamed.confcontrol 節の version
Postfixmain.cfsmtp_banner
Dovecotdovcot.conflogin_greating
mgettyissu, issu.net \r, \m etc
krb5-telnetxinetd.d/krb5-telnetdserver_args= -h
ProFTPDproftpd.confServerName, ServerIdent off
vsftpdvsftpd.confftp_banner

3.8 tcpdump 補足

tcpdumpは Wireshark よりも低レベルのコマンド。
主なオプション

-i NIC
インターフェースの指定
-s size
抽出するパケット長 (省略時は 64Bit)
-X
データを16進数と文字の両方で表示
-w file
抽出データを file に保存
-r file
抽出データを読み込み解析する
-l
リアルタイムに解析し画面(stdout)に表示する

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.....

3.13 攻撃の手法と対策(4)

SQL Injection のサンプル
ユーザ名パスワードに student, himitu で普通の動作。 パスワードに ' OR '1'='1 を入力すると、ユーザ名に関係なく全て表示されてしまう。

  • sec03.php
  • 関連SQL (MySQL用)
    テーブル作成 SQL(cre-sec3.sql)
    テストデータ登録 SQL(ins-sec03.sql)
  • 攻撃の手法と対策(5) (3-14)

    OS Command Injection のサンプル
    引数に "ファイル名;コマンド" を入れることで、任意のコマンドが実行される。

    Perl の Taint mode (taint は汚染、腐敗の意。この場合は「汚染検出モード」) により、危険な個所を検出できる。
    setuid/setgid により実行時 UID/GID が変更された場合、又は -T オプションにより有効となる。
    セキュアプログラミング講座 (IPA/ISEC より)