MAC OSX (10.11.3)安装metasploit最佳实践
简介
想在mac osx系统上使用metasploit,而不安装kali,woobuntu等虚拟机使用的童鞋,有福了!
在参考网上的文章,踩过无数坑以后,向大家介绍mac osx上metasploit安装的最佳实践。
要想在mac上畅快地使用metasploit,需要安装homebrew、rbenv、ruby、postgresql等辅助软件,下面一一进行介绍。
编辑不易,有问题请指正,勿喷
部分下载文件或出处设置了连接,直接点开就方便下载和扩展阅读
安装
1 Homebrew
homebrew是mac osx上的软件管理软件,命令简单,mac必备软件之一。
如果可以翻墙,推荐使用下面的方法:
参考homebrew的帮助文档的步骤,使用ruby进行安装。
mac系统本身就安装了ruby,虽然版本不高
命令如下:
$ ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
如果不能翻墙,请使用下面的方法:
参考大牛文章
先将其在github的远程库下载到本地,再使用git进行安装
下载install文件
下载安装文件 ,将其命名为install
创建本地库
在/tmp/中新建文件夹,名字为homebrew
在github库上下载homebrew的远程库的zip包,将其解压到/tmp/homebrew/中
将刚才的install文件也放入/tmp/homebrew/中
在/tmp/homebrew/建立一个新的文件夹brewRemote.git
$ mkdir /tmp/homebrew
$ mv install /tmp/homebrew/install
$ mkdir /tmp/homebrew/brewRemote.git
PUSH到本地
开启终端,输入如下命令
将homebrew的远程库push到本地:brewRomote.git
$ cd /tmp/homebrew/hombrew/
$ git init —bare
$ cd ../homebrew-master
$ git init
$ git add .
$ git commit -m “create project"
$ git remote add origin /tmp/homebrew/brewRemote.git
$ git push -u origin master
修改环境变量
修改install文件的环境变量HOMEBREW_REPO(第7行的位置),将homebrew的github远程库替换成本地库
原文件内容为:
HOMEBREW_REPO = ‘https://github.com/Homebrew/homebrew'
修改为:
HOMEBREW_REPO = '/tmp/homebrew/brewRemote.git'
安装homebrew
在homebrew正式开始安装,为了防止安装失败需要删除残留文件
$ rm -rf /usr/local/Cellar /usr/local/.git && brew
安装homebrew
$ cleanup
$ cd /tmp/homebrew/
$ ruby install
更新homebrew
更新源后,才可以更新软件,而不是仅仅管理软件
参考网上大牛的文章,进行相关配置
命令如下:
$ cd /usr/local
$ git remote set-url origin git://mirrors.ustc.edu.cn/hombrew.git
//中科大镜像源
$ cd ~
$ mkdir tmp
$ cd tmp
$ git clone git://mirrios.tuna.tsinghua.edu.cn/homebrew.git
$ git clone git://mirrios.ustc.edu.cn/homebrew.git
//选择上面添加的镜像源
$ sudo rm -rf /usr/local/.git
$ sudo rm -rf /usr/local/Library
$ sudo cp -R homebrew/.git /usr/local/
$ sudo cp -R homebrew/Library /usr/local/
$ brew update
$ brew upgrade
2 Rbenv & Ruby
Rbenv
rbenv可以实现对ruby的多版本管理,操作简单,类似的软件还有rvm
顺便提一句,pyenv可以实现对python的多版本管理,推荐使用,可以通过brew安装
用brew安装rbenv及组件
$ brew install rbenv ruby-build rbenv-default-gems rbenv-gem-rehash rbenv-vars
brew list 可以查看目前安装的软件
brew doctor 可以查看目前brew的配置有哪些问题,但这些问题不一定都会影响使用
用rbenv安装ruby
mac系统虽然自带了ruby版本较低,不能满足metasploit的要求,用rbenv下载2.1.8版本
如果rbenv没有install命令,则需要更新ruby-built 命令:brew upgrade ruby-bulid
$ rbenv install —list
$ rbenv install 2.1.8 # 安装2.1.8的ruby
$ rbenv rehash
$ rbenv global 2.1.8 # 全局使用2.1.8版本ruby
3 Metasploit
使用git克隆metasplolit,命令如下:
$ git clone https://github.com/rapid7/metasploit-framework.git /usr/local/share/metasploit-framework
当git clone 无法使用时候,输入命令git init
解决ruby的依赖
$ gem sources —remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org
$ cd /usr/local/share/metasploit-framework/
$ vim Gemfile
source ‘https://ruby.taobao.org/'
$ gem update --system
$ gem install bundler
$ cd /usr/local/share/metasploit-framework
$ rbenv rehash
$ bundle install
当提示You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory时,命令加上sudo
4 Postgresql
可以使用brew安装postgresql,也可以使用dmg的安装包安装
我用的是dmg安装包安装,下一步下一步安装完成后,使用sql shell(psql)进入数据库,命令如下:
记住sql语句一定要输入分号
CREATE USER msf WITH PASSWORD 'msf';
CREATE DATABASE msf OWNER msf;
GRANT ALL PRIVILEGES ON DATABASE msf to msf;
\q
5 运行metesploit
首先修改metasploit 数据库配置:
metasploit的数据库配置文件在config文件夹中,它使用ruby写的,有时间读一下源码,受益匪浅
$ cd /config/
$ vim database.yml
production:
adapter: postgresql
database: msf
username: msf
password:msf
host: 127.0.0.1
port: 5432
pool: 75
timeout: 5
运行msfconsole:
$./msfconsole
网友评论
continue.
Make sure that `gem install nokogiri -v '1.8.1'` succeeds before bundling.
但是执行gem install nokogiri -v '1.8.1' 有提示失败, 可以试试gem install pkg-config -v "~> 1.1"
rbenv global 2.1.8 以后 ruby -v 查看还是 2.4.1 的版本
msf 运行 报错,楼主帮忙看看,感谢
/usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/psych/visitors/to_ruby.rb:319:in `block in visit_Psych_Nodes_Alias': Unknown alias: pgsql (Psych::BadAlias)
from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/psych/visitors/to_ruby.rb:319:in `fetch'
from /usr/local/Cellar/ruby/2.4.1_1/lib/ruby/2.4.0/psych/visitors/to_ruby.rb:319:in `visit_Psych_Nodes_Alias'