連載
» 2008年03月26日 00時00分 公開

セキュリティ対策の「ある視点」(8):魂、奪われた後――弱いパスワードの罪と罰 (1/4)

ユーザー名が知られることは魂を奪われるのと同義。そしてその魂、管理者権限を奪うと、彼らはパスワードハッシュを丸裸にしていきます。

[辻 伸弘(ソフトバンク・テクノロジー株式会社),@IT]

※ご注意

本記事に掲載した行為を自身の管理下にないネットワーク・コンピュータに行った場合は、攻撃行為と判断される場合があり、最悪の場合、法的措置を取られる可能性もあります。また、今回紹介するツールの中には、攻撃行為に利用されるという観点から、アンチウイルスソフトにウイルスとして検出されるものも存在します。このような調査を行う場合は、くれぐれも許可を取ったうえで、自身の管理下にあるネットワークやサーバに対してのみ行ってください。

また、本記事を利用した行為による問題に関しましては、筆者およびアイティメディア株式会社は一切責任を負いかねます。ご了承ください。


管理者権限を奪取すると何をされるのか

 昨今、OSやアプリケーションの脆弱性が公表された際に、管理者権限を奪取されることに対する注意喚起がなされるのはいまや日常茶飯事である。「管理者権限が奪取される」「システムが掌握される」と聞くと、なんとなく危なそうなイメージを持つのではないだろうか。いうまでもないが、これは本当に危険なことである。ただし、すべての方が具体的にどのようなことが行われてしまうのかイメージできるわけではないのではないだろうか。

 筆者も、ペネトレーションテストの報告会で「システムを乗っ取られると、どのようなことをされてしまうんですか?」と質問を受けたことがある。この回答は、非常に難しい。なぜなら、いろいろなことができてしまうからである。

例えば、

  • Webコンテンツの改ざん
  • サービス停止
  • 個人情報の窃取
  • 不正ファイルの交換
  • 侵入範囲拡大のための踏み台

など、挙げだすとキリがないのである。

 これは「パソコンを買ったら何ができますか?」という質問に似ているのではないだろうか。これの回答としては「目的によっていろいろなことができます」となるだろう。つまり、侵入を行う者の目的や趣向によってシステムの受ける被害は変わってくるということになる。

 そこで今回は、ペネトレーションテストの現場でWindowsの管理者権限を奪取した場合にどのようなことを行うのかということを紹介しようと思う。

 まず、前提条件として第7回の記事「魂まで支配されかねない『名前を知られる』という事件」を利用したいと思う。前回の記事の2ページ目を参照いただきたい。着目していただきたいのは1枚目の画像の「karoyama」というユーザーの権限(Privileges)の項目である。見ていただければ分かるかと思うのだが、このユーザーは管理者権限を有するユーザーである。そして、このユーザーのパスワードはオンラインパスワードクラッキングにより、ユーザー名と同じ「karoyama」であったことが同ページ判明している。

 このユーザーを利用して、システムへの侵入を試みてみよう。

 Windowsのシステムパスワードを利用した侵入の場合は、ファイル共有機能を利用して、侵入対象をリモートドライブとしてマウントし、ファイル操作を可能にするというイメージを持たれている方が多いようだが、今回は、侵入後の活動でコマンドを実行する様を紹介するため、リモートから侵入を行う対象上でシェルを起動し、インタラクティブに操作をするという手法を用いる。

 一言でいえば、リモートで入力、実行したコマンドは侵入を行った対象上のマシンで実行されるということである。

リモートからのシェル奪取はSysinternalsで

 WindowsのユーザーID、パスワードを使用してリモートからシェルを実行するにはいくつかの方法があるのだが、今回は、ツールを利用する方法を紹介する。使用するツールは、「PsExec【注1】というツールで、リモートのコンピュータ上の指定したユーザーで、プロセスを実行するツールである。

【注1】

もともとはWinternals SoftwareのSysinternalsというサイトで提供されていたのだが、現在は、マイクロソフトに買収され、Microsoft TechNet内のWindows Sysinternalsにて提供されている。

  • Windows Sysinternals

http://technet.microsoft.com/en-us/sysinternals/default.aspx

PsExecは、非常に高機能なツールであり、オプションも多数存在するため、今回は、詳しい説明は割愛させていただく。


 リモートのマシンでシェルを起動し、インタラクティブに操作を行うための実行方法は、下記のとおりである。

psexec.exe \\対象IPアドレスorマシン名 -u ユーザー名 -p パスワード cmd


 Windows XP(検査用PC)からWindows 2000(検査対象)に対して、PsExecを使用して、上記コマンドを実行した結果を下図に示す。

図1 PsExecでリモートシェルを実行する 図1 PsExecでリモートシェルを実行する

 上図の青のラインで囲まれている部分(PsExec実行前)と赤のラインで囲われている部分(PsExec実行後)を見比べてほしい。PsExec実行前である青のラインの部分は、コマンドプロンプトを起動した際に自動で表示されるメッセージである。コマンドプロンプトを起動したOSは、Windows XPであるので当然、Windows XP用のメッセージが表示されている。

 だが、PsExec実行後である赤のラインの部分は、Windows 2000であるというメッセージが表示されている。つまり、赤のラインの部分から検査用PCで実行したコマンドは、検査対象上で実行されるということである。これで、リモートからシェルを奪取したといえる。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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