Pentest box 是啥,就不说了。直接来正题,其实吧,盒子的msf我并不是很常用。不过一直以来,使用盒子的朋友很多都说,msf不能更新或者进行更新就会出现msf自身报错。某网友说,msf如果不能更新,那还有啥用。
好吧,既然上次写了一篇Pentest box系列——爬坑记,这次我就顺便把这个坑也找个办法填一下。
然后我开始了尝试。其实吧,我啥也没干,就做了几个简单的步骤。可能是长得帅了点。
成功了。没错我成功了,操蛋,想想还有点小激动呢!(以上纯扯淡)具体步骤如下:
首先我们解压盒子,位置在U盘以后,得到盒子2.2也就是原始版本的msf,V:4.12.7
如图版本确实挺老,16年9月2号之前的产物。
于是我上git查询了较近的版本,找到了目标;V:4.15.0,时间戳显示此版本更新时间为17年7月13日,因为整数好记的原因选定了4.15.0,其实还有一个16.0,还是担心依赖的问题,所以折中了一下。
此处就一起码出盒子初始ruby以及bundler版本信息如下
Ruby:ruby 2.1.8p440 (2015-12-16 revision 53160)[i386-mingw32]
Bundler:1.11.2
然后我们首先替换一下原始ruby2.1.8p440为
Ruby:ruby 2.2.6p396 (2016-11-15 revision 56800)[i386-mingw32]
此处用的是吐司表哥给的ruby版本。(文尾上链接)
我们上git下载msf4.15.0版本压缩包,解压,同样替换进去
这里就不截图了。然后直接运行msfconsole(盒子msf的启动没命令)
得到一个报错dnsruby缺失,忘记截图了,大致意思就是缺少一个依赖,依赖版本不对,msf罢工了。
痛苦,但是也不是没有办法,那就是重新install一下。但是在这里我选择先进行gem install bundler。不为啥,之前几个方法实验的时候,多出现问题在bundler,保险起见,
成功安装bundler之后我们就来解决上一个问题,dnsruby。同样直接尝试 gem install dnsruby
确定成功,我们再一次运行msf启动命令
得到报错,缺失xdr,或版本不对
到此处了然,还是依赖关系的问题。想解决也不难,这就要说到之前无意中发现的盒子的自补机制了,盒子在进行更新时会自补缺失依赖。
然后我们如何触发盒子进行自补呢?答案是update all(全部更新)
可以看到盒子开始自补了,都在调整。时间大概15分钟,结束自补,msf自补彻底结束,然后等待其他工具更新结束,大概半个小时。中途你可以去吃泡面。
更新结束,msf启动成功。
再看一下ruby以及bundler信息
Ruby:ruby 2.2.6p396 (2016-11-15 revision56800) [i386-mingw32]
Bundler:1.15.4
Metasploit:4.15.0
本次填坑笔者只验证了msf4.15.0可成功,其他版本未验证,不保证所有版本都能生效!
Thanks for reading
差点忘了!0.0
ruby2.2
链接:http://pan.baidu.com/s/1nvupOjn 密码:vn02