又开始看《Metasploit渗透测试魔鬼训练营》这本书了。看到Web应用程序渗透测试这一章,其中有一部分是关于自己编写Metasploit的Exploit和Payload。我也正准备依葫芦画瓢。事先没有搭建Metasploit的开发环境,虽然我有Ruby的环境用于学习Ruby语言的相关开发知识,但是Metasploit里面有一些自己带的模块,在编写Exploit和Payload是需要用到的。如果没有的话,那么在Ruby IDE里面是没法语法提示的,这点还是有些蛋疼。好了,说了一些缘由,那么就开始搭建Metasploit开发环境的旅程吧。
Kali肯定是作为渗透测试环境的首选。我之前是有安装好Ruby IDE的,在这里推荐RubyMine。目前的版本是7.0.4,这个IDE真的很好用噢。
在继续之前,有必要更新一下Ruby,Kali自带的版本为ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]。这个已经很老了,不修改的话后面bundle install会出现一个问题导致无法继续安装,我也不知道为啥,就是说有一个库对ruby的版本要求在2.1或者2.1以上。参照GitHub关于更新Ruby的命令。具体链接为https://github.com/rapid7/metasploit-framework/wiki/Setting-Up-a-Metasploit-Development-Environment。我就不在这里累赘了。
首先,从github上下载一份Metasploit的源码,并保持在msf文件夹中,命令如下:
git clone https://github.com/rapid7/metasploit-framework.git metasploit-framework
然后打开RubyMine IDE,选择Open,定为到我们之前下的msf文件夹,选择一个可以执行的rb脚本,在这里我选择msfconsole为例。如下图所示:
在介绍下一步之前,插播一点小知识——Ruby Gem介绍。
Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如https://rubygems.org/)源来查找、安装、升级和卸载软件包,非常的便捷。由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以,推荐使用使用http://ruby.taobao.org/来代替系统默认的Gem源。来看一下系统默认的Gem源,命令如下:
gem source
得到结果如下所示: