|
フェイクのセキュリティホール |
|
|
tcp_wrapperでログを取ったり、バージョンアップをして喜んでいる管理屋もいるようだが、接続してくる人が何をやりたいのか知りたくはないだろうか。ただ空いているかどうかを調べていたり、どのバージョンが使われているかを調べているだけかもしれない。攻撃する場合は成功するしないは別としてセキュリティーホールを突いてくるのだ。攻撃する意志が有るかどうかは、セキュリティーホールがあるということを見せかけ、実際に攻撃させる必要がある。
攻撃23
あるように見せかけるのだから、当然その後攻撃される。そのホストのみでなく、その周りのホストも同じように攻撃されるのを理解してから行ってほしい。当然この方法も完璧に安全な方法というわけではない。ただ、得られるものは通常より多い。当然ながら自分の管理しているホストのセキュリティーに絶対の自信が無い場合はやってはいけない。つまりパッチを当てて喜んでいるようならやるなと言うことだ。
まずはCGI
いまだにやる人がいるかは分からないが、一番普及しているのがphfのやつだ、例のごとく/etc/passwdの偽者をphfで表示するやつだ。http上での話しなので、httpdでログを取っている。まあ、オプションでHTTP_X_FORWARDED_FORとかを取るぐらいだ。
inetd経由サービス
telnetとかftpとかpop3である、これらのサービスは始めにバナーと呼ばれる文字列を表示して、そのサービス名やバージョンを表示させることによって、何が動いてかを始めに利用者に伝える、大抵は気にしなくていいことなのだが。セキュリティースキャナーや、普通のちょっと知っている一見さんはこれに、まんまと騙されてくれる。セキュリティーホールがあると思った時は、あれを使ってrootになろうとしたりしてくるわけだ。当然フェイクなので、実際に侵入されたりしないわけだが。
実際にはtcp_wrappersで設定する、例のごとく/etc/hosts.denyで書くとこんな具合だ。
in.telnetd : ALL EXCEPT 192.168.1.1:twist (echo -en "\nLinux 2.0.24 (ns.hoge.com) (ttyp0)\n\n\nns login\: ";date >>/var/log/in.telnet.reject.log;tee -a /var/log/in.telnet.reject.log >/dev/null)
in.ftpd : ALL EXCEPT 192.168.1.:twist (echo "220 ftp.hoge.com FTP server (Version wu-2.4 Tue Jun 22 11\:00\:01 JST 1995) ready.";sleep 10);
|
内容は、echoでバナーを表示して、dateで接続時間を記録して、teeで
/var/log/以下のファイルに、送ってきたコードを保存する。運良く騙されれば以下のような、ログが残る、いわゆるシェルコードってやつだ。もし未知の方法でやってきたならそれをそのまま使って新たなセキュリティーホールを再発見することも出来る。
ログを取らない時はsleepで10秒ぐらい接続を保持するとよい。
Fri Jun 25 10:35:02 JST 1999
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞
瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞瑞^壊悔?1タェ懐解ォ戒1タォーヘロ華@ヘ鞁bin/sh......
|
防御23
サーバーを突っつく時に、気を付けないといけないのは、何を送ったかを把握しておくことだ。shellcodeが入っていたら、間違えなくやっていることがばれてしまう。普通にログを取っている場合は別だが、上記の方法で接続拒否時に通信内容をログられると見事に残ってしまう。そこにshellcodeなんかが入っていたら間違えなくやっていることがばれてしまう。成功してしまえばログを消すだけなのだが。
syslogなんかに変なログがあって、いろいろ追求したい人も、ちゃんと通信内容を見てから物事を言って欲しいものだ。
関連ページ
:TCP_WRAPPERS