17
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2018-11-07

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

2021/10/23 更新
こちらにUbuntu 20.04でのmetasploitをインストールする方法を載せました。

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

17
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?