MetasploitでExploit実行によるセキュリティ検証

Metasploitとは

Metasploitは、セキュリティに関するフレームワークの一つで、脆弱性の検証やペネトレーションテストを実行することができます。いわゆるExploit(脆弱性を突いたコードの実行)を走らせて、サーバーが安全かどうかの検証を行うことのできる膨大なツール群が入っています。

こういったツールは悪意のある攻撃者にとっての侵入ツールとしても使えてしまいますが、自分のサービスの脆弱性を把握する上でもペネトレーションテストは欠かすことができません。セキュリティの原則は、敵を知り自分を知ることだと思います。今回はこのMetasploitを使ってExploit実行によるセキュリティ検証を行うところまで紹介します。

Metasploitのインストール

Metasploitは下記のサイトからダウンロードできます。

Metasploit

以前はかなりアングラ風のサイトだったのですが、プロジェクトがRapid7という企業に買収されてからはかなり商業サイト風になっています。ここから、クライアントOSに応じたバージョンをダウンロードします(無償版のコミュニティエディションと有償版のPro、Expressがあります)。私の場合は、metasploit-latest-linux-x64-installer.runをダウンロードしました。

Metasploitのインストールはrootユーザーで行います。いくつか対話式に質問に答えることになりますが、特にこだわりがなければデフォルトのままで問題ありません。

これでmetasploitがローカルホストの3790ポートで起動しましたので、ブラウザを開いてアクセスします(httpsであることに注意)。以降は基本ブラウザベースでテストを実行することになります(以前はCUIベースだったのですが、現在のマニュアルはWEBベースの実行を基本としています)。

ブラウザで https://localhost:3790 を開くと、まずログインユーザー作成を聞かれます。ユーザー名は自分の好きなIDを、パスワードは英数と特殊記号の組み合わせで8文字以上入力する必要があります。その後、コミュニティエディションのアクティベートを行うことになります。名前や国、電話番号の入力が必要です。アクティベートが完了すると、「Rapid7 – Metasploit Community License Activated」というタイトルでメールが送られてくるので、そのライセンスキーを入力します。

Metasploitの画面

Metasploitの画面はこんな感じです。

metasploit

基本的には、まずホストの状態をスキャンして、コミュニティエディションの場合はコミュニティのモジュールを追加して脆弱性検証を実行することになります。

Exploit、Campaign、Web Appsなど幾つかの項目は、有償版のProのライセンスを購入しないと実行できません。ライセンスの購入は、$5,000と、かなり高額です。無償で使うにはコミュニティエディションでモジュールを追加していく流れになりますが、今回は単発でSmart Exploitを実行したかったので、7日間の有償版のお試しキーを入れました。その後は、Exploitによる脆弱性テストを行うことができます。

(私は自分の自宅サーバーに対してExploitを実行しました。自分の管理外のサーバーに対してスキャンやExploitを行うことは不正アクセス禁止法に抵触しますので、絶対にやらないようご注意ください)

Exploitの実行

ホストを選択してExploitを実行すると、以下のようにタスクが実行されます。

task

今回のExploitのタスクでは、私の自宅サーバーに対して以下の539通りの脆弱性攻撃を行われました。(以下、そのログです。けっこう長いです)