rbenv環境でMetasploit Frameworkをセットアップする

最近研究でMetasploit Frameworkをインストールしたのでそのやり方をこっちにも公開しておく。
基本的には研究室の毎週の進捗報告で報告した資料をこっち向けに書き下したもの。

P.S. 2014-01-29 間違いが見つかったのでちょっと修正


なお、環境はOS X Mountain LionでrbenvはHomebrewでインストールしてる。
また、RVMの場合How to install Metasploit Framework in MacOSX - Computers And Youが良い。
ざっくり言ってしまえばこれのrbenv版がこのエントリって感じ。

Metasploit FrameworkのGitHubレポジトリ.ruby-versionファイルを見るとRubyのバージョンが指定されているのでそのバージョンのRubyを導入する。例えばそのバージョンが1.9.3-p448だとすると

$ rbenv install 1.9.3-p448

などでインストール。rbenv versionsでインストールされているか確認。

$ rbenv versions
  system
  1.9.3-p448
* 2.0.0-p247 (set by /Users/xxxxxx/.rbenv/version)

次に、brew install rbenv-gemsetなどでrbenv-gemsetをインストールした後、以下のようにMetasploit Framework用のgemset環境を作る。ここではmsfとしてる。

$ rbenv gemset create 1.9.3-p448 msf
created msf for 1.9.3-p448
$ rbenv gemset list
1.9.3-p448:
  msf


次に、Metasploit FrameworkのソースコードGitHubからダウンロードする。数百MBあるのでうちだと10分以上掛かった。

$ git clone https://github.com/rapid7/metasploit-framework.git
Cloning into 'metasploit-framework'...
remote: Finding bitmap roots...
remote: Counting objects: 223536, done.
remote: Compressing objects: 100% (64696/64696), done.
remote: Total 223536 (delta 157607), reused 218106 (delta 152308)
Receiving objects: 100% (223536/223536), 191.74 MiB | 180.00 KiB/s, done.
Resolving deltas: 100% (157607/157607), done.
Checking connectivity... done
Checking out files: 100% (6359/6359), done.
$ du -h -s metasploit-framework/
298M    metasploit-framework/

んでもって、.rbenv-gemsetsファイルをダウンロードしたディレクトリに作ってさっきのmsf環境を使うように指示してから、bundleで依存ライブラリをインストール。

$ cd path/to/metasploit-framework
$ # 先程作ったmsf環境を用いるようにする
$ # gemsetsと複数形なのに注意
$ echo msf > .rbenv-gemsets
$ # 確認
$ rbenv gemset active
msf global
$ # bundleのインストール
$ gem install bundle
$ # 略
$ # 必要なgemをまとめてインストール
$ bundle install
$ # 略
$ # なお、何らかの理由でインストール済みのgemを全削除したい場合
$ # gem list --no-versions | xargs gem uninstall
$ # とかやると良いかも

実際に起動してみる。localhostにnmapでTCPスキャン仕掛けて見てる。動いてるのでOK。

$ ./msfconsole
# cowsay++
 ____________
< metasploit >
 ------------
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *


       =[ metasploit v4.9.0-dev [core:4.9 api:1.0]
+ -- --=[ 1220 exploits - 665 auxiliary - 190 post
+ -- --=[ 324 payloads - 30 encoders - 8 nops

msf > nmap -sT localhost
[*] exec: nmap -sT localhost


Starting Nmap 6.40 ( http://nmap.org ) at 2013-11-17 21:30 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00055s latency).

/* このへんにNmapの結果が出る */

Nmap done: 1 IP address (1 host up) scanned in 5.75 seconds
msf > exit

つーわけです。

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

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

読みつつ進捗ちまちまやっております、はい。クリスマスプレゼントにこういう技術書とか買ってくださるサンタさん募集してます。

当ブログに於いて、私tasutenによって創作されたことが自明である著作物に対しては、別途明示のある場合を除き全てCC0が適用されます。