脆弱性診断 – Metasploit(インストール編) –


Metasploit は、主に

ペネトレーションテスト(侵入テスト)

に利用されるセキュリティツールである。

これまで記載してきたポートスキャン等は元より、

脆弱性確認コードによる各種脆弱性の確認や

公開済みの exploit code を利用した攻撃試行を実施することが可能となる。

また、実際に exploit code を作成して試したりすることも出来る、

非常に強力なツールである。

セキュリティの対策が真に有効か否かを確認するためには、

こういったツールを利用した確認が非常に重要。

よってここではまず、

  1. Metasploit のインストール
  2. まとめ

について記載する。

なお、Metasploit はセキュリティ検査として非常に強力なツールであるが、

当然使い方によっては攻撃にも利用されうる。

このため、自分の責任範囲外のサイトなどに適用した場合、

ハッキング行為とみなされる恐れがある。

よって、利用する際には、これまで記載してきた環境のように、

自分のネットワーク内にある、自分のサイトや機器の脆弱性検査

に限って利用すべきであることにご注意頂きたい。



■Metasploit のインストール

基本的には、こちらのサイトに記載の内容を実施すれば、ラズパイにもインストール可能。

https://null-byte.wonderhowto.com/how-to/raspberry-pi-metasploit-0167798/

ただし、毎回必ずといっていいほど、ruby のバージョン問題でうまくいかない。

よって、バックアップもかねて、実際にインストールした方法を記載する。

なお、以下のインストール作業は基本 root で行う前提で記載する。

root 以外で実施する場合には、適宜コマンドの前に sudo を付けて頂きたい。

また、実施前に、SD カードのバックアップを取得しておくことも合わせておすすめする。

以下、手順としては、

  1. Ruby のインストール
  2. Metasploit のインストール

という流れで実施する。



Ruby のインストール

ruby は、 apt-get install でもインストール可能ではある。

ただし、最新版のパッケージがインストールされるわけではない。

このため、apt-get install でインストールすると、

後々の metasploit 本体のインストールでエラーが発生する。

よって、まず最新版の ruby をインストールする。

インストールに当たっては、以下のサイトを参考にさせていただいた。

ただ、残念ながらこちらも typo 等があり、そのままではうまく行かない。

よってそれらを修正した手法を記載していこうと思う。

まずは、いつも通り、まずはリポジトリをアップデートする。

root@raspi-03# apt-get update

続いて、以下のコマンドにより、rbenv と ruby-build をインストールする。

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

二行目、三行目で .bashrc を変更しているため、これを有効化しておく。

root@raspi-03# source .bashrc

その後、apt-get install で libreadline-dev、libssl-dev、および ruby-dev をインストール。

root@raspi-03# apt-get install libreadline-dev libssl-dev ruby-dev -y

インストールできたら、rbenv でインストール可能な ruby のバージョンを確認する。

root@raspi-03# rbenv install --list

色々と表示されると思うが、x.x.x という形式のもののなかから最新のものを確認する。
*2017 年 8 月 20 日時点では、2.5.0-dev があるが、x.x.x 形式では 2.4.1 が最新。

確認したら、最新バージョンの ruby をインストールする。

root@raspi-03# rbenv install 2.4.1

この作業は 1 時間程度掛かるので、少し放置しておく。

無事終わったら、システム上のバージョンを切り替える。

root@raspi-03# rbenv global 2.4.1
root@raspi-03# rbenv rehash

ちゃんと切り替わっているかどうか、以下のコマンドでバージョンを確認する。

root@raspi-03# ruby -v
      ruby 2.4.1p111 (2017-03-22 revision 58053) [armv7l-linux-eabihf]

もし、インストールしたバージョン(今回は 2.4.1)になっていない場合、以下のコマンド

root@raspi-03# source .bashrc

で .bashrc に記載の内容を有効にする、

.bashrc の記載内容が上述の通りとなっているかを確認する、

など、今一度これまでやってきた手順の正しさを確認するとよいと思う。



Metasploit のインストール

Ruby のインストールが無事終了すれば、いよいよ metasploit をインストールしていく。

root@raspi-03# apt-get install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev locate libreadline6-dev libcurl4-openssl-dev git-core libssl-dev libyaml-dev openssl autoconf libtool ncurses-dev bison curl wget postgresql postgresql-contrib libpq-dev libapr1 libaprutil1 libsvn1 libpcap-dev git-core postgresql curl nmap gem -y

実際にやる場合には、おそらくそのままコピペしてもらうのがよいと思う。

次は gem。

root@raspi-03# gem install wirble sqlite3 bundler

ここで、以下のようなエラーが出てしまった。

Fetching: wirble-0.1.3.gem (100%)
Successfully installed wirble-0.1.3
Parsing documentation for wirble-0.1.3
Installing ri documentation for wirble-0.1.3
Done installing documentation for wirble after 1 seconds
Fetching: sqlite3-1.3.13.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing sqlite3:
	ERROR: Failed to build gem native extension.

    current directory: /root/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13/ext/sqlite3
/root/.rbenv/versions/2.4.1/bin/ruby -r ./siteconf20170820-5940-1imnmp.rb extconf.rb
checking for sqlite3.h... no
sqlite3.h is missing. Try 'brew install sqlite3',
'yum install sqlite-devel' or 'apt-get install libsqlite3-dev'
and check your shared library search path (the
location where your sqlite3 shared library is located).
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/root/.rbenv/versions/2.4.1/bin/$(RUBY_BASE_NAME)
	--with-sqlite3-config
	--without-sqlite3-config
	--with-pkg-config
	--without-pkg-config
	--with-sqlite3-dir
	--without-sqlite3-dir
	--with-sqlite3-include
	--without-sqlite3-include=${sqlite3-dir}/include
	--with-sqlite3-lib
	--without-sqlite3-lib=${sqlite3-dir}/lib

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /root/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/armv7l-linux/2.4.0-static/sqlite3-1.3.13/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /root/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/sqlite3-1.3.13 for inspection.
Results logged to /root/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/extensions/armv7l-linux/2.4.0-static/sqlite3-1.3.13/gem_make.out
Fetching: bundler-1.15.4.gem (100%)
Successfully installed bundler-1.15.4
Parsing documentation for bundler-1.15.4
Installing ri documentation for bundler-1.15.4
Done installing documentation for bundler after 28 seconds
2 gems installed

とりあえず、libsqlite3-dev をインストールしてみろ、と言われているので、指示に従う。

root@raspi-03# apt-get install libsqlite3-dev

その上で、再度やり直す。

root@raspi-03# gem install wirble sqlite3 bundler

今度はうまく行った模様。

これが終われば、/opt に移動する。
*何で opt に移動する必要があるかは、参考サイトでも明記してないが、とりあえず従う。

root@raspi-03# cd /opt

その後、git で metasploit-framework.git を落としてくる。

root@raspi-03:/opt# git clone https://github.com/rapid7/metasploit-framework.git

これは数十分レベルで時間が掛かるので、気長に待つ。

無事終了すれば、metasploit-framework ディレクトリに移動し、インストールを実行。
*なお、bundle install の際、root で作業すると、

『root じゃない user の bundler を壊しちゃうよ』

と警告される。

私の場合、三号機は root で動作が基本なので特に問題ないが、気になる方は指示に従うのがよいだろう。

root@raspi-03:/opt# cd ./metasploit-framework
root@raspi-03:/opt/metasploit-framework# bundle install

これも数十分から 1 時間程度は掛かる。気長に待とう。

無事終了すれば、いよいよ metasploit の起動。

root@raspi-03:/opt/metasploit-framework# ./msfconsole

無事起動すれば、以下のような画面がコンソールに表示される。
*表示されるアスキーアートは毎回変わる。

これで無事、インストール完了!



■まとめ

今回は、非常に強力なペネトレーションテストツールでもある、

metasploit

のインストール方法について記載した。

インストール自体は、少々時間が掛かるものの、ラズパイに対しても簡単に実行可能。

ただし、非常に高機能なツールでもあるため、使い方は色々ある。

私自身、まだ表面をサラッと触れた程度のレベル。

ある程度使い方に習熟し、面白い使い方ができるようになれば、追って記載していきたい。

ただ、それなりに使いこなしてみたいという人は、ちゃんと勉強するのがよいと思う。
*それぐらい多機能かつ複雑なツールでもある。

私もまだ読了できていないが、バイブル的な書籍としては、

実践 Metasploit ―ペネトレーションテストによる脆弱性評価

David Kennedy,Jim O’Gorman,Devon Kearns,Mati Aharoni オライリージャパン 2012-05-23
売り上げランキング : 274070

by ヨメレバ

 

が存在する。

ペネトレーションテストの方法や事前準備、その上での metasploit の有益な使い方、などが記載されている。

興味がある方は、一度読んでみられるとよいかもしれない。




Copyright (c) 2017 Webmaster of this site All Rights Reserved.
カテゴリー: ラズパイでセキュリティ タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください