Search code examples
rubyrubygemsmetasploit

Bundler could not find compatible versions for gem "sysrandom"


After installing PentestBox for installing penetration testing tools on windows 10 It was working great but some of the tools was outdated like metasploit, so I tried updating all using PentestBox Update Manager, but after finishing the update msfconsole keeps giving me this error

Bundler could not find compatible versions for gem "sysrandom":
  In Gemfile:
    metasploit-framework x86-mingw32 was resolved to 5.0.0, which depends on sysrandom x86-mingw32

  Could not find gem 'sysrandom', which is required by gem 'metasploit-framework', in any of the sources.

and i literally suck in ruby language on general so what should i do ?


Solution

  • The version of metasploit you linked to doesn't appear to have been updated in a few years. It doesn't list sysrandom as a dependency in the Gemfile.

    There's a newer version which does have sysrandom as a dependency, here:

    https://github.com/rapid7/metasploit-framework/blob/master/metasploit-framework.gemspec#L106

    I'm not sure why pentestbox is using such an old version, but I'm assuming the "update" actually updates to the rapid7 version of metasploit (because it's looking for sysrandom which only exists there).

    There are a few things you can try:

    • bundle install should install all the dependencies (without using the console tool built for pentestbox)
    • Deleting the Gemfile.lock and running bundle install. I don't usually recommend this but if there seems to be a version mismatch somewhere and sometimes this resolves dependencies errors. You should be able to re-check this file out again (assuming it's versioned locally)

    If you can post the git commit hash of the metasploit version you've downloaded that might help provide additional suggestions for resolving.