From 988e7b010eebadc6999278d53d87f992f1e06906 Mon Sep 17 00:00:00 2001 From: "sussurro@happypacket.net" Date: Tue, 4 Oct 2011 16:57:11 +0000 Subject: [PATCH] change override_execute so that it will pass the hooked browser session so we can both override functionality and add commands git-svn-id: https://beef.googlecode.com/svn/trunk@1350 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9 --- core/api/module.rb | 3 ++- core/module.rb | 4 ++-- extensions/metasploit/api.rb | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/api/module.rb b/core/api/module.rb index c47471ba0..721628873 100644 --- a/core/api/module.rb +++ b/core/api/module.rb @@ -55,9 +55,10 @@ module API # Fired just before a module is executed # @param [String] mod module key + # @param [String] hbsession hooked browser session id # @param [Hash] opts a Hash of options # @note Hooking this API method stops the default flow of the Module.execute() method. - def override_execute(mod, opts); end + def override_execute(mod, hbsession, opts); end # Fired when retreiving dynamic payload # @return [Hash] a hash of options diff --git a/core/module.rb b/core/module.rb index 4a0b47b3d..d456dea04 100644 --- a/core/module.rb +++ b/core/module.rb @@ -417,8 +417,8 @@ module Module print_error "Module not found '#{mod}'. Failed to execute module." return false end - if BeEF::API::Registra.instance.matched?(BeEF::API::Module, 'override_execute', [mod, nil]) - BeEF::API::Registra.instance.fire(BeEF::API::Module, 'override_execute', mod, opts) + if BeEF::API::Registra.instance.matched?(BeEF::API::Module, 'override_execute', [mod, nil,nil]) + BeEF::API::Registra.instance.fire(BeEF::API::Module, 'override_execute', mod, hbsession,opts) # @note We return true by default as we cannot determine the correct status if multiple API hooks have been called return true end diff --git a/extensions/metasploit/api.rb b/extensions/metasploit/api.rb index 0ff94a78d..eb8eb3b74 100644 --- a/extensions/metasploit/api.rb +++ b/extensions/metasploit/api.rb @@ -40,7 +40,7 @@ module API msf_module_config.each{|k,v| BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'get_options', [k]) BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'get_payload_options', [k,nil]) - BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'override_execute', [k, nil]) + BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'override_execute', [k, nil, nil]) print_over "Loaded #{count} Metasploit exploits." count += 1 } @@ -71,7 +71,7 @@ module API } BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'get_options', [key]) BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'get_payload_options', [key,nil]) - BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'override_execute', [key, nil]) + BeEF::API::Registra.instance.register(BeEF::Extension::Metasploit::API::MetasploitHooks, BeEF::API::Module, 'override_execute', [key, nil, nil]) print_over "Loaded #{count} Metasploit exploits." count += 1 end @@ -110,7 +110,7 @@ module API end # Execute function for all metasploit exploits - def self.override_execute(mod, opts) + def self.override_execute(mod, hbsession, opts) msf = BeEF::Extension::Metasploit::RpcClient.instance msf_key = BeEF::Core::Configuration.instance.get("beef.module.#{mod}.msf_key") msf_opts = {}