Edited at

Metasploitのインストール方法と設定方法

セキュリティ業界では有名なペネトレーションテストなどで使われるMetasploitのインストール方法についてまとめました。

Ubuntu18.04環境でのインストール方法を主に載せています。


Metasploitとは

Metasploitとは、ペネトレーションテストや脆弱性診断で使用されるRuby製のオープンソースのツールです。

実際に脆弱性をつくExploitコード、脆弱性調査のための補助ツールなどが含まれたコマンドラインツールです。


注意

metasploitは、実際に攻撃用のツールとして扱えてしまうため、自分の管理下以外の環境や許可を得ていない環境以外では使用しないでください


インストール


必要なパッケージのインストール

metasploitに動かすのに必要なパッケージをインストールしていきます。


bash

$ sudo apt-get update

$ sudo apt-get install -y build-essential libreadline5 libreadline-dev libssl-dev libpcap-dev libxml2-dev libxslt1-dev libyaml-dev libsqlite3-dev postgresql libpq5 libpq-dev subversion git git-core autoconf curl zlib1g-dev


Rubyのインストール

metasploitはRubyで動いているため、Rubyを入れる必要があります。


bash

$ cd ~/

$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="~/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc

バージョンは最新の2.5.3を指定してください。ここは時間がかかるため、気長にお待ちください。


bash

$ rbenv install 2.5.3

$ rbenv global 2.5.3


Postgresqlの設定

MetasploitではPostgresqlを扱うため、ユーザー名とデーターベースを作成しておきましょう。ここではmsfという名前のユーザーと、msfという名前のデーターベースを作成しています。

postgresqlのインストール方法はここでは省きます。


bash

## msfというユーザーを作成

## パスワードの入力が二回求められます。
$ sudo su postgres
$ createuser msf -P -S -R -D

## -O オプションで所有者ユーザーを決める
## ここではmsfというユーザーに所有者権限を与えている
$ createdb -O msf msf
$ exit



Metasploit本体のインストール

Metasploit本体のインストールを行っていきます。お好きなディレクトリでgit cloneでMetasploitをダウンロードします。

bundle installで時間がかかるため、こちらも気長に待ちましょう。


bash

$ git clone https://github.com/rapid7/metasploit-framework.git

$ cd metasploit-framework
$ gem install bundler
$ bundle install


Metasploitデータベースの設定

Metasploitからデーターベースであるpostgresqlを利用するための設定を行います。先程の「Postgresqlの設定」で行ったデーターベース名、ユーザー名とパスワードを設定します。


bash

$ vim config/database.yml



database.yml

production:

adapter: postgresql
database: msf
username: msf
password: #msfのパスワードをここに設定

host: 127.0.0.1
port: 5432
pool: 75
timeout: 5



Metasploitを起動

cd ..コマンドで、metasploit-frameworkのあるトップディレクトリまで移動し、以下のコマンドでmetasploitを起動します。


bash

$ ./msfconsole


上記でデーターベースの設定をしたもののMetasploitからデーターベースの接続に失敗してしまうことがあります。

metasploit起動時に警告のようなものが表示された場合は以下のコマンドでデーターベースに接続されているか確認しましょう。

no connectionと表示された場合は、postgresqlに接続されていません。


bash

$ msf > db_status

[*] postgresql selected, no connection


msfconsoleからpostgresqlへの接続設定を行う

もし上記でno connectionと表示されて、接続されていない場合は以下のコマンドでデーターベースに接続が行えます。


bash

# 上記のdatabase.ymlで設定した項目を入力します。

# username:password@127.0.0.1:5432/database
$ msf > db_connect msf:msf@127.0.0.1:5432/msf

再度、db_statusを入力して、接続を確認します。

以下のようにpostgresql connected to {database}と表示されていれば接続されています。

$ msf > db_status

[*] postgresql connected to msf


Metasploitの更新

Metasploitはエクスプロイトコードやモジュールが随時に更新されていきます。

以下のコマンドで新しいモジュールやエクスプロイトコードを追加して更新できます。

$ ./msfupdate

次回はDockerで脆弱性のある環境を動かして、metasploitで実際に脆弱性をついてみる方法についての記事を載せる予定です。


参考資料

CLI から Metasploit をインストール

Metasploit Framework