前回は、Metasploit Frameworkをダウンロードし、導入するまでの手順を紹介した。今回は攻撃を受ける環境も準備し、実際に攻撃を行うことで、いわゆる「制御の奪取」がどのように行われるかを体感してみよう。
本記事に掲載した行為を自身の管理下にないネットワーク・コンピューターに行った場合は、攻撃行為と判断される場合があり、最悪の場合、法的措置を取られる可能性もあります。このような調査を行う場合は、くれぐれも許可を取ったうえで、自身の管理下にあるネットワークやサーバーに対してのみ行ってください。
前回は、Metasploit Framework(以下、Metasploit)の導入までを説明した。すでにMetasploitを使った経験のある方からすると物足りない内容だったかもしれない。だが、筆者としては自身でインストールすることなく、Kali Linuxなどのすでにインストールされている環境を利用している方が多い印象があるので、自身でWindows版をインストールすることに少しでも新鮮味を感じていただけていれば幸いである。
さて、今回は、攻撃を受ける環境(被攻撃環境)を準備し、実際にMetasploitを用いて、そこに攻撃を行ってみたいと思う。
今回の記事を書くに当たり筆者が注力した点がある。それは、多くの方が手軽に環境を準備し、実際に手を動かしていただくということだ。
ソフトウエアの使い方を解説しても、それを自身で試してみるために同じ環境を作ることがハードルとなる場合が多いという声をしばしば聞く。Metasploitの場合も同じだ。筆者は多くの人にMetasploitを紹介してきたが、そのときに最も多い意見は「被攻撃環境の準備が大変だ」というものだった。
この連載ではそういったハードルを少しでも下げ、一人でも多くの方に手を動かしていただければと思い、攻撃環境も被攻撃環境もWindows上で実施できるものを考え、何パターンもの検証を行った上で選定している。具体的には、Windows Vista、7、8の32bit、64bit環境全てを用意した上で被攻撃環境に適したアプリケーションを選定し、検証を行った(VMなどの環境を用意できる方は、そちらを利用していただいてもかまわない。むしろそちらの方が、攻撃側と被攻撃側の挙動が分かりやすいだろう。今回は被攻撃環境も攻撃環境も同じOS内で実施する流れで解説を進める)。ぜひご自分の手で試し、攻撃者がどのような手段を用いてくる可能性があるのかを考えるきっかけにしてほしい。
それでは、早速、被攻撃環境の準備である。
今回使用する脆弱性は「Easy File Management Web Server」(以下、EFS)というソフトウエアのバージョン5.3と4.0においてユーザーIDクッキーが適切に処理されず、オーバーフローを引き起こしてしまい任意のコードが実行できてしまうというものである。
まずは、この脆弱性が存在するEFSをダウンロードしよう。といってもそれを自身で探してくる必要はない。脆弱性を利用する攻撃コードの情報を配信しているサイトの中には、攻撃コードとともに脆弱なバージョンのソフトウエアを配信しているサイトもある。
今回はそういったサイトの一つ、「Exploit Database」からダウンロードを行う。こちらにアクセスすると、ページ上部に[Vulnerable App]という項目があり、そこのフロッピーディスクのアイコンから脆弱性のあるバージョンをダウンロードできる(画面1)。
ダウンロードが完了したらインストーラーを実行してほしい。インストール自体は、特に設定個所もなく[Next]をクリックするだけで進められるため割愛する。インストールが完了して起動すると、レジストレーションを促すウインドウが表示される(画面2)が、ここでは[Try it!]をクリックし、次に出てくるウインドウ(画面3)でも[OK]をクリックすることでEFSが起動(画面4)する(なお試用期間である15日が過ぎた後は、起動時間は30分間に限定される)。
これで、被攻撃環境は整った(図1)。
それでは、Metasploitを起動しよう。
スタートメニューから[プログラム]→[Metasploit]→[Metasploit Console]を選択。Windows 8の場合は[Windowsキー]+[q]で検索窓を開き入力欄に「metasploit console」と入力し、表示された[Metasploit Console]を選択する(画面5)。
ウインドウが開き、しばらくするとコマンド入力待ちの画面になる(画面6)。
Metasploitではまず使用するモジュールを選択し、そのモジュールごとの設定を行い実行する、という流れが基本である。従って、まずは使用するモジュール(この場合は脆弱性を利用するための攻撃コードなので「Exploitモジュール」と呼ぶ)を選択するのだが、それにはその名前が分からなければならない。そういったときのために、モジュールを検索する[search]コマンドが用意されている。
プロンプトで「search」に続けてキーワードを指定することで、そのキーワードにマッチしたモジュールを列挙してくれる。試しに以下のように実行してほしい。
search easy
上の画面7のような結果が返ってきただろう。
[Description]の部分を見ると、今回、使用するモジュールが[exploit/windows/http/efs_fmws_userid_bof]だということが分かるだろう。次回以降検索する場合は、モジュール名の先頭あたりを記憶していれば、
search efs
とすることで、さらに絞り込んだ検索が可能となる(画面8)
また、[search]コマンドではキーワードの種類を指定した検索も可能である。どのような検索が可能かは、
search -h
と実行することで確認できる(画面9)
例えば、先ほど脆弱性のある「EFS」をダウンロードしたExploit Databaseの採番であるEDB-IDの他、「Security Focus」、「Open Sourced Vulnerability Database:OSVDB」などの採番形式で検索することも可能である(画面10)。
search osvdb:107241
search edb:33610
search bid:67542
Copyright © ITmedia, Inc. All Rights Reserved.