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 listbundle install執行過程中報錯,“Connection reset by peer - SSL_connect
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):
$ 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 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: