![見出し画像](https://assets.st-note.com/production/uploads/images/64060132/rectangle_large_type_2_748e005cb5e19a5ab47857e1023c4e08.jpeg?width=1200)
Ubuntu 20.04にMetasploit 6.0のインストールと設定方法
以前、Qiitaに以下のような記事を投稿しました。セキュリティ業界では有名なペネトレーションテストなどで使われるMetasploitのインストール方法と設定方法についてです。
しばらくセキュリティ業界関係のニュースを追っていませんでしたが、今年の1月にMetasploitのバージョンは6.0にアップデートされていました。
今回はMetasploit 6.0をUbuntu 20.04への環境にインストールと設定方法についてまとめます。
Metasploitとは
Metasploitとは、ペネトレーションテストや脆弱性診断で使用されるRuby製のオープンソースのツールです。
実際に脆弱性をつくExploitコード、脆弱性調査のための補助ツールなどが含まれたコマンドラインツールです。
注意
metasploitは、実際に攻撃用のツールとして扱えてしまうため、自分の管理下以外の環境や許可を得ていない環境以外では使用しないでください
動作に必要なインストール
まずはmetasploitを動かすパッケージ類をインストールする必要があります。
$ sudo apt install -y build-essential zlib1g zlib1g-dev \
libpq-dev libpcap-dev libsqlite3-dev \
ruby ruby-dev git
Metasploit本体のインストール
まずはmetasploitを保存するためのディレクトリを作成します。
$ mkdir ~/apps
$ cd ~/apps
Metasploitをgit clone経由でダウンロードします。後にアップデートのためのコマンドとしてmsfupdateがありますが、コマンドが失敗したときのためにもgit clone 経由のインストールの方が更新内容を簡単に取得できるようになります。
# metasploitのダウンロード
$ git clone https://github.com/rapid7/metasploit-framework.git
同ディレクトリ上で以下のコマンドを実行してMetasploitをインストールします。bundle installコマンドはそれなりに時間がかかります。
# metasploit-frameworkディレクトリに移動する.
$ cd metasploit-framework/
# gemでbundlerのインストール
$ sudo gem install bundler
# bundle インストール
$ bundle install
msfconsoleで起動を確認
先程インストールしたmetasploit-frameworkディレクトリ上で以下のコマンドであるmsfconsoleを実行すると、msf6コンソールが表示されます。
$ ./msfconsole
.:okOOOkdc' 'cdkOOOko:.
.xOOOOOOOOOOOOc cOOOOOOOOOOOOx.
:OOOOOOOOOOOOOOOk, ,kOOOOOOOOOOOOOOO:
'OOOOOOOOOkkkkOOOOO: :OOOOOOOOOOOOOOOOOO'
oOOOOOOOO.MMMM.oOOOOoOOOOl.MMMM,OOOOOOOOo
dOOOOOOOO.MMMMMM.cOOOOOc.MMMMMM,OOOOOOOOx
lOOOOOOOO.MMMMMMMMM;d;MMMMMMMMM,OOOOOOOOl
.OOOOOOOO.MMM.;MMMMMMMMMMM;MMMM,OOOOOOOO.
cOOOOOOO.MMM.OOc.MMMMM'oOO.MMM,OOOOOOOc
oOOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOOo
lOOOOO.MMM.OOOO.MMM:OOOO.MMM,OOOOOl
;OOOO'MMM.OOOO.MMM:OOOO.MMM;OOOO;
.dOOo'WM.OOOOocccxOOOO.MX'xOOd.
,kOl'M.OOOOOOOOOOOOO.M'dOk,
:kk;.OOOOOOOOOOOOO.;Ok:
;kOOOOOOOOOOOOOOOk:
,xOOOOOOOOOOOx,
.lOOOOOOOl.
,dOd,
.
=[ metasploit v6.1.11-dev-e52083a65c ]
+ -- --=[ 2173 exploits - 1149 auxiliary - 398 post ]
+ -- --=[ 592 payloads - 45 encoders - 10 nops ]
+ -- --=[ 9 evasion ]
Metasploit tip: View advanced module options with
advanced
msf6 >
更新用にシステムを構成する
以下のようにgitの設定は事前に行っておいてください。
$ git config --global user.name "{usrename}"
$ git config --global user.email "{email}"
metasploit-frameworkディレクトリ上でmsfupdateを実行すると、metasploitのアップデート処理が行われます。
$ ./msfupdate
こちらのコマンドは手動で定期的に打つ必要がありますが、以下のようにCronの設定をしておけば自動的に更新をすることができます。
手動で実行していく場合は不要になります。
$ crontab -e
cronで以下のように設定すれば毎日01:00にmsfupdateが実行されます。
0 1 * * * /home/$name/apps/metasploit-framework/msfupdate > /dev/null 2>&1
Postgresqlの設定
MetasploitではデータベースにPostgresqlを扱うため、PostgreSQLが必要になります。まずはPostgreSQLのインストールを行います。(既にインストール済みの場合は不要)
$ sudo apt update
$ sudo apt install libpq-dev postgresql postgresql-contrib
まずはmsfというユーザーを作成します。その次にmsfというデータベースを作成して、msfユーザーに所有権限を与えます。
psql -lコマンドでデータベースの一覧を表示します。
## msfというユーザーを作成
## パスワードの入力が二回求められます。
$ sudo su postgres
$ createuser msf -P -S -R -D
## -O オプションで所有者ユーザーを決める
## ここではmsfというユーザーに所有者権限を与えている
$ createdb -O msf msf
# psql -lを打つことでデータベースの一覧を表示
$ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
msf | msf | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
Metasploitにデータベースの設定を行う
Metasploitからデータベースであるpostgresqlを利用するための設定を行います。configディレクトリの中にはdatabase.yml.exampleという雛形があるため、そちらをコピーしてdatabase.ymlを作成します。
# metasploit-frameworkの中にあるconfigディレクトリに移動する.
$ cd config
# database.yml.exampleをコピーしてdatabase.ymlを作成する
$ cp database.yml.example database.yml
上記の「Postgresqlの設定」で行ったデータベース名、ユーザー名とパスワードの設定をします。
$ vim database.yml
production:
adapter: postgresql
database: msf
username: msf
password: # msfのパスワードをここに設定
host: 127.0.0.1
port: 5432
pool: 75
timeout: 5
Metasploitを再度起動する
再度msfconsoleを実行してmetasploitを起動します。
$ ./msfconsole
データーベースの設定をしたもののMetasploitからデーターベースの接続に失敗してしまうことがあります。
msfconsole実行時に警告のようなものが表示された場合は以下のコマンドでデーターベースに接続されているか確認しましょう。
no connectionと表示された場合は、postgresqlに接続されていません。
$ msf > db_status
[*] postgresql selected, no connection
もし接続されていない場合は以下のコマンドでデーターベースに接続が行えます。
# 上記のdatabase.ymlで設定した項目を入力します。
# {username}:{password}@127.0.0.1:5432/{database}
$ msf > db_connect msf:{password}@127.0.0.1:5432/msf
再度、db_statusを入力して、接続を確認します。
以下のようにConnected to msf.と表示されていれば接続されています。
$ msf > db_status
[*] Connected to msf. Connection type: postgresql
再度以下のコマンドでMetasploitの更新を行いましょう。
$ ./msfupdate
この記事が気に入ったらサポートをしてみませんか?