| Summary: | msfconsole / msfcli do not start - metasploit needs update for newer ruby or dependencies missing ? | ||
|---|---|---|---|
| Product: | Mageia | Reporter: | Florian Hubold <doktor5000> |
| Component: | RPM Packages | Assignee: | Guillaume Rousse <guillomovitch> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | Normal | CC: | doktor5000, shikamaru |
| Version: | 4 | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Source RPM: | metasploit-4.5-4.mga4.src.rpm | CVE: | |
| Status comment: | |||
| Attachments: | svn diff of local cauldron checkout, updated to metasploit frameworks 4.9.2 | ||
Seems metasploit is not compatible with ruby 2.0 check e.g. https://aur.archlinux.org/packages/metasploit/?comments=all This was also mentioned in #metasploit, but seems it's not officially documented. metasploit upstream also only seems to use ruby-1.9.3. I've updated metasploit to latest 4.9.2 in a local cauldron checkout, added ruby-bundler and ruby-activesupport as Requires, but now I'm stuck mith more missing ruby stuff, and seems ruby-bundler is also broken: [doktor5000@Mageia4 SPECS]$ msfconsole Could not find gem 'timecop (>= 0) ruby' in the gems available on this machine. Run `bundle install` to install missing gems. [doktor5000@Mageia4 SPECS]$ bundle install timecop ERROR: bundle install was called with arguments ["timecop"] Usage: "bundle install". [doktor5000@Mageia4 SPECS]$ [doktor5000@Mageia4 SPECS]$ bundle install Bundler::GemfileNotFound Seems our ruby stack is pretty borked to some degree. I leave it to you, if you want me to commit my changes or if you want to take a look yourself. CC:
(none) =>
doktor5000 Created attachment 5125 [details]
svn diff of local cauldron checkout, updated to metasploit frameworks 4.9.2
Hmmm, after installing *a lot* of gems via gem install, including some which we don't have packaged yet, still back to a similar error as initally reported:
[doktor5000@Mageia4 metasploit]$ msfconsole
There was an error while trying to write to Gemfile.lock. It is likely that
you need to allow write permissions for the file at path:
/usr/share/metasploit/Gemfile.lock
[doktor5000@Mageia4 metasploit]$ sudo msfconsole
/home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/xml_mini.rb:3:in `require': cannot load such file -- bigdecimal (LoadError)
from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/xml_mini.rb:3:in `<top (required)>'
from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash/conversions.rb:1:in `require'
from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash/conversions.rb:1:in `<top (required)>'
from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash.rb:2:in `require'
from /home/doktor5000/.gem/ruby/gems/activesupport-4.1.0/lib/active_support/core_ext/hash.rb:2:in `<top (required)>'
from /usr/share/metasploit/lib/msf/core/module_manager/module_paths.rb:5:in `require'
from /usr/share/metasploit/lib/msf/core/module_manager/module_paths.rb:5:in `<top (required)>'
from /usr/share/metasploit/lib/msf/core/module_manager.rb:29:in `require'
from /usr/share/metasploit/lib/msf/core/module_manager.rb:29:in `<class:ModuleManager>'
from /usr/share/metasploit/lib/msf/core/module_manager.rb:21:in `<module:Msf>'
from /usr/share/metasploit/lib/msf/core/module_manager.rb:14:in `<top (required)>'
from /usr/share/metasploit/lib/msf/core/framework.rb:66:in `require'
from /usr/share/metasploit/lib/msf/core/framework.rb:66:in `<class:Framework>'
from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>'
from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>'
from /usr/share/metasploit/lib/msf/core.rb:34:in `require'
from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>'
from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `require'
from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>'
from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `require'
from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>'
from /usr/share/metasploit/lib/msf/ui.rb:11:in `require'
from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>'
from /bin/msfconsole:136:in `require'
from /bin/msfconsole:136:in `<main>'
I've got a list of the gems and more details available if required.
@Remy: Maybe you could also take a look for the ruby part? CC:
(none) =>
shikamaru For some definitive information: ruby-1.9.3 is out of maintenance, it only receives security fixes until next year: https://bugs.ruby-lang.org/projects/ruby/wiki/ReleaseEngineering Recommended/preferred method of metasploit installation is via rvm, and even latest git wants an older patchlevel of ruby: ruby-1.9.3-p484 So for Mageia 4 and probably even 5 the mageia metasploit package will be unusable. What will we do about this? I'm dropping metasploit package in cauldron, it's a maintainance nightmare. Unfortunatly, there isn't much to do for mageia 4. Status:
NEW =>
RESOLVED |
Description of problem: [doktor5000@Mageia4 ~]$ msfconsole /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- iconv (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip/zip.rb:3:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip.rb:1:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db.rb:27:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db_manager.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/framework.rb:69:in `<class:Framework>' from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/bin/msfconsole:136:in `<main>' [doktor5000@Mageia4 ~]$ msfcli /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- iconv (LoadError) from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip/zip.rb:3:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/zip.rb:1:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db.rb:27:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/db_manager.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core/framework.rb:69:in `<class:Framework>' from /usr/share/metasploit/lib/msf/core/framework.rb:13:in `<module:Msf>' from /usr/share/metasploit/lib/msf/core/framework.rb:5:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/core.rb:34:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console/driver.rb:2:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui/console.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/share/metasploit/lib/msf/ui.rb:11:in `<top (required)>' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/share/metasploit/lib/fastlib.rb:374:in `require' from /usr/bin/msfcli:26:in `<main>' I'm not into ruby, but either there are a lot of dependencies missing/not found or some semantics have changed. Maybe it needs a small change like http://stackoverflow.com/questions/16924370/how-fix-this-error-kernel-require-rb45in-require-cannot-load-such-file#comment24431625_16924370 This is what's currently installed rg. ruby: [doktor5000@Mageia4 ~]$ rpm -qa | grep -e metasploit -e ruby | sort lib64ruby1.9-1.9.3.p484-1.mga3 lib64ruby2.0-2.0.0.p247-8.mga4 metasploit-4.5-4.mga4 metasploit-gui-4.5-4.mga4 ruby-2.0.0.p247-8.mga4 ruby-RubyGems-2.1.11-3.mga4 ruby-atk-2.0.2-5.mga4 ruby-cairo-1.12.6-4.mga4 ruby-gdk_pixbuf2-2.0.2-6.mga4 ruby-glib2-2.0.2-7.mga4 ruby-gtk2-2.0.2-5.mga4 ruby-irb-2.0.0.p247-8.mga4 ruby-json-1.7.7-9.mga4 ruby-msgpack-0.5.8-3.mga4 ruby-pango-2.0.2-7.mga4 ruby-pkg-config-1.1.4-5.mga4 ruby-rdoc-4.0.1-7.mga4 Also tried removing the stale lib64ruby1.9-1.9.3.p484-1.mga3 (seems a leftover from mga3 -> 4 upgrade) but no change. Reproducible: Steps to Reproduce: