1. 程式人生 > >Mac OSX系統下安裝metasploit框架軟體(MSF)

Mac OSX系統下安裝metasploit框架軟體(MSF)

最近看《Metasploit滲透測試指南》,第二章開始有具體操作舉例,於是準備在電腦上安裝MSF終端用於測試。

MSF終端(msfconsole),一種Metasploit框架的使用者介面。

安裝成功之後,發現並有像其他APP一樣在Launchpad裡面有顯示圖示,於是用Spotlight直接搜尋msfconsole,command+enter開啟對應資料夾,找到對應路徑(圖1):

在terminal中切換到該路徑,嘗試執行"./msfconsole",報錯(圖2):

第一次接觸,什麼都不清楚,查:

- bundle utility, short for Bundler    //bundle實用程式,簡稱bundler

- gem help   >>> RubyGems is a sophisticated package manager for Ruby.

根據圖2中的報錯提示,執行:(sudo)

gem install bundler

【此句安裝bundler,之後Bundler會根據gemfile自動安裝相關依賴項,在當前目錄下可看到gemfile檔案】

由於不理解,再次嘗試執行“./msfconsole”,(圖3):

根據圖3提示,執行:bundle install

此時才正式安裝依賴項,可以用以下命令檢視所有依賴項:gem list
bundle install執行過程中報錯,“Connection reset by peer - SSL_connect
”(圖4):


tzinfo安裝失敗,由錯誤資訊知失敗原因為連線被重置找不到資源,上網查原因,GFW所致,更改gem伺服器,常用的源:

- http://rubygems.org/
- http://gems.github.com
- http://gems.rubyforge.org
- https://ruby.taobao.org 【連線不上的時候看是否是https】

相關命令:

1. 顯示當前使用的sources:gem sources

2. 新增一個source:gem sources -a url地址
3. 刪除一個source:gem sources -r url地址
4. 更新source cache: gem sources -u

然而,當修改了gem的源之後儘管終端中顯示當前源為淘寶的,執行命令依然是同樣地錯誤。

在淘寶的網站找到另一種方法——用Bundler的Gem原始碼映象命令:

$ bundle config mirror.https://rubygems.org https://ruby.taobao.org

OK,此時有關“Connection reset by peer - SSL_connect”的報錯後續都沒有出現。

然而中途又有pg安裝失敗的提示,根據錯誤提示,執行:$ sudo gem install pg -v '0.18.4'

報錯“Failed to build gem native extension”(圖5): 根據提示在命令列中指明未找到的檔案位置,用Spotlight查詢pg_config,我的在/opt/metasploit-framework/embedded/bin/目錄下,執行命令:

$ sudo gem install pg -- --with-pg_config=/opt/metasploit-framework/embedded/bin/pg_config

【不清楚為什麼用-v指明pg的版本就會報錯invalid option】

執行結果,解決了一部分問題,前面缺失的標頭檔案都找到,報錯“Can't find the PostgreSQL client library (libpq)”(圖6):

根據提示,安裝postgresql。

使用homebrew之前,先更新(否則可能報錯),再檢查(後面有一步的錯誤能看出第二步檢查的重要性了):

$ brew update

$ brew doctor

然而簡單一個brew update都會報錯,根據提示修改許可權才執行成功(圖7):

$ sudo chown -R $(whoami):admin /usr/local

更新完成之後(是的,我一開始沒有執行brew doctor),安裝postgresql:

$ brew install postgresql

安裝lunchy(Lunchy is a helpful gem that will allow you to easily start and stop Postgres):

$ sudo gem install lunchy

由於許可權問題報錯“Operation not permitted”,(圖8):


檢視對應的目錄許可權(圖9):


在命令中指定安裝到/usr/local/bin/下即可安裝成功:

$ sudo gem install -n /usr/local/bin/ lunchy

Start/Stop Postgres:

$ mkdir -p ~/Library/LaunchAgents/

$ cp /usr/local/Cellar/postgresql/9.5.0/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/

$ lunchy start postgres

啟動之後會提示是否使用postgresql接受網路連線,選擇允許。然後使用:$ ARCHFLAGS="-arch x86_64" bundle install

【不安裝postgresql時,使用以上命令依然報錯。】

解決了pg的問題之後,新的問題又來了(圖10)。。。

和前面一樣,按提示操作:

$ sudo gem install recog -v '2.0.14'

報錯,ruby版本過低(圖11):

安裝rvm【RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem庫管理(gems)】:

$ curl -L get.rvm.io | bash -s stable

$ source ~/.bashrc  

$ source ~/.bash_profile

$ rvm -v //測試安裝是否正常

用rvm升級ruby:

$ ruby -v //檢視當前ruby版本

$ rvm list known //列出已知的ruby版本

$ rvm install ruby-2.1.7 //這個是裝rvm之後提示可安裝的版本

用rvm裝ruby的時候,剛才偷懶不檢查brew的問題就來了(圖12):


執行brew doctor之後,發現問題(圖13):


根據提示:$ brew link autoconf

結果(圖14): 雖然執行結果顯示連結以存在,但是與brew doctor的結果相矛盾,為了保險起見,根據提示overwrite,然後重新用rvm安裝ruby,成功。 然後gem install recog -v '2.0.14,成功。 重新執行:$ ARCHFLAGS="-arch x86_64" bundle install
報錯(圖15):

推測是由於更新了ruby導致的問題,於是解除安裝重灌Bundler:

$ gem help command //查詢所有gem命令

$ gem uninstall bundler

$ gem install bundler

再次執行圖15中的命令,成功。執行"./msfconsole"測試:

OK,終於成功啦。

唐僧終於取到西經,回看這篇文章頗有小學生記流水賬的風範,看來我又年輕了一點……

關鍵錯誤資訊有標紅,收穫:踐行提示命令,注意錯誤原因,不能半途而廢(雖說中途裝了個kali差點準備放棄Mac)。

最後。。為什麼縮排沒了?文章看起來好亂。

1月17日update: