Metasploit は、主に
ペネトレーションテスト(侵入テスト)
に利用されるセキュリティツールである。
これまで記載してきたポートスキャン等は元より、
脆弱性確認コードによる各種脆弱性の確認や
公開済みの exploit code を利用した攻撃試行を実施することが可能となる。
また、実際に exploit code を作成して試したりすることも出来る、
非常に強力なツールである。
セキュリティの対策が真に有効か否かを確認するためには、
こういったツールを利用した確認が非常に重要。
よってここではまず、
について記載する。
なお、Metasploit はセキュリティ検査として非常に強力なツールであるが、
当然使い方によっては攻撃にも利用されうる。
このため、自分の責任範囲外のサイトなどに適用した場合、
ハッキング行為とみなされる恐れがある。
よって、利用する際には、これまで記載してきた環境のように、
自分のネットワーク内にある、自分のサイトや機器の脆弱性検査
に限って利用すべきであることにご注意頂きたい。
■Metasploit のインストール
基本的には、こちらのサイトに記載の内容を実施すれば、ラズパイにもインストール可能。
https://null-byte.wonderhowto.com/how-to/raspberry-pi-metasploit-0167798/
ただし、毎回必ずといっていいほど、ruby のバージョン問題でうまくいかない。
よって、バックアップもかねて、実際にインストールした方法を記載する。
なお、以下のインストール作業は基本 root で行う前提で記載する。
root 以外で実施する場合には、適宜コマンドの前に sudo を付けて頂きたい。
また、実施前に、SD カードのバックアップを取得しておくことも合わせておすすめする。
以下、手順としては、
という流れで実施する。
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
|
が存在する。
ペネトレーションテストの方法や事前準備、その上での metasploit の有益な使い方、などが記載されている。
興味がある方は、一度読んでみられるとよいかもしれない。
Copyright (c) 2017 Webmaster of this site All Rights Reserved.