diff --git a/extensions/metasploit/api.rb b/extensions/metasploit/api.rb index 6cbdceaa1..778d1db2f 100644 --- a/extensions/metasploit/api.rb +++ b/extensions/metasploit/api.rb @@ -16,7 +16,19 @@ module BeEF # Load modules from metasploit just after all other module config is loaded def self.post_soft_load msf = BeEF::Extension::Metasploit::RpcClient.instance - if msf.login + + timeout = 10 + connected = false + Timeout.timeout(timeout) do + begin + print_status "Connecting to Metasploit on #{BeEF::Core::Configuration.instance.get('beef.extension.metasploit.host')}:#{BeEF::Core::Configuration.instance.get('beef.extension.metasploit.port')}" + connected = msf.login + rescue Timeout::Error + return + end + end + + if connected msf_module_config = {} path = BeEF::Core::Configuration.instance.get('beef.extension.metasploit.path') if !BeEF::Core::Console::CommandLine.parse[:resetdb] && File.exists?("#{path}msf-exploits.cache")