Metasploit не запускается из-за ошибки
За последнее время Metasploit часто обновлялся. И это не прошло бесследно — они его таки сломали. Теперь он перестал запускаться — вылетает при старте.
Полюбоваться на жалобы на эту проблему можно на оф. форуме Kali, баг трекере Kali и других авторитетных ресурсах. Например:
- https://forums.kali.org/showthread.php?25860-msfconsole-fails-to-start&p=46259
- https://bugs.kali.org/view.php?id=2337
- https://community.rapid7.com/thread/7388
Полный вывод ошибки такой:
root@WebWare-Kali:~# msfconsole DEPRECATION WARNING: Support for Rails < 4.1.0 will be dropped. (called from <top (required)> at /opt/metasploit/apps/pro/ui/lib/metasploit/pro/ui.rb:16) /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/wicked-0.5.0/app/controllers/wicked/wizard_controller.rb:5:in `<top (required)>': uninitialized constant ApplicationController (NameError) from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:465:in `block (2 levels) in eager_load!' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:464:in `each' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:464:in `block in eager_load!' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:462:in `each' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:462:in `eager_load!' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/engine.rb:347:in `eager_load!' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/application/finisher.rb:56:in `each' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/initializable.rb:30:in `instance_exec' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/initializable.rb:30:in `run' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/initializable.rb:55:in `block in run_initializers' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:345:in `each' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:345:in `call' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each' from /opt/metasploit/ruby/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/initializable.rb:54:in `run_initializers' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/application.rb:215:in `initialize!' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/railtie/configurable.rb:30:in `method_missing' from /usr/share/metasploit-framework/config/environment.rb:5:in `<top (required)>' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/polyglot-0.3.5/lib/polyglot.rb:65:in `require' from /opt/metasploit/apps/pro/vendor/bundle/ruby/2.1.0/gems/railties-4.0.13/lib/rails/application.rb:189:in `require_environment!' from /usr/share/metasploit-framework/lib/metasploit/framework/command/base.rb:63:in `require_environment!' from /usr/share/metasploit-framework/lib/metasploit/framework/command/base.rb:81:in `start' from /opt/metasploit/apps/pro/msf3/msfconsole:48:in `<main>'
Решение проблемы Metasploit в Kali Linux
На Kali Linux нужно сделать следующее:
ln -f -s /usr/share/metasploit-framework/msfconsole /usr/bin/msfconsole
После этого Metasploit заработает.
Если запускать его без поддержки базы данных, то он запуститься быстро. Если запускать Metasploit с поддержкой базы данных (как это сделано описано в этой инструкции), то процесс может зависнуть, если ему не хватит оперативной памяти, поскольку там будут выполняться какие-то внутренние операции — пересобираться кэш базы данных или что-то такое.
Решение проблемы Metasploit в других дистрибутивах Linux
Metasploit может быть расположен в других каталогах, отличных от тех, которые используются в Kali Linux
Необходимо использовать следующую команду, для определения путей:
locate msfconsole
Среди вывода будет:
/usr/bin/что-то_ещё /usr/share/metasploit-framework/что-то_ещё
И уже на основании вывода поменять вышеприведённую команду. Например, в некоторых дистрибутивах она будет выглядеть так:
ln -f -s /usr/share/metasploit-framework/msfvenom /usr/bin/msfvenom
root@server:~# locate msfconsole
/opt/metasploit/app/msfconsole
/usr/bin/msfconsole
/usr/bin/msfconsole.framework
/usr/share/applications/kali-msfconsole.desktop
/usr/share/framework2/msfconsole
/usr/share/framework2/docs/QUICKSTART.msfconsole
/usr/share/kali-menu/applications/kali-msfconsole.desktop
/usr/share/metasploit-framework/msfconsole
/usr/share/metasploit-framework/vendor/bundle/ruby/2.1.0/bin/msfconsole
root@server:~# ln -f -s /usr/share/metasploit-framework/msfconsole
root@server:~# ls
cd db_driver Desktop Downloads msfconsole
root@server:~# msfconsole
Could not find rake-10.4.2 in any of the sources
Run `bundle install` to install missing gems.
root@server:~# ln -f -s /usr/share/metasploit-framework/msfconsole /usr/bin/msfconsole
root@server:~# msfconsole
Could not find rake-10.4.2 in any of the sources
Run `bundle install` to install missing gems.
Что я не так сделал?
Суде по всему требует что-то доустановить/установить/переустановить. Но что, где, откуда и куда? И главное почему и как и зачем!?