21
@shimakaze_soft

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

この記事は最終更新日から1年以上が経過しています。

セキュリティ業界では有名なペネトレーションテストなどで使われる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

21
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
shimakaze_soft
Pythonエンジニア、最近はブロックチェーン、機械学習を勉強中

コメント

この記事にコメントはありません。
あなたもコメントしてみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン
記事投稿イベント開催中
競技プログラミング研究月間 - みんなでさらなる高みを目指そう
~
3000文字Tips - 知ると便利なTipsをみんなへ届けよう
~