diff --git a/beef b/beef index 5a5c2ab9a..2c6d41531 100755 --- a/beef +++ b/beef @@ -99,7 +99,7 @@ BeEF::Extension::Console::Banners.print_network_interfaces_count BeEF::Extension::Console::Banners.print_network_interfaces_routes # We dynamically get the list of all browser hook handler using the API and register them -BeEF::API.fire(BeEF::API::Server::Handler, 'pre_http_start', http_hook_server) +BeEF::API.fire(BeEF::API::Server, 'pre_http_start', http_hook_server) # starts the web server http_hook_server.start diff --git a/core/api.rb b/core/api.rb index 4905e9cf7..603297990 100644 --- a/core/api.rb +++ b/core/api.rb @@ -58,7 +58,7 @@ require 'core/api/extension' require 'core/api/extensions' require 'core/api/main/migration' require 'core/api/main/network_stack/assethandler.rb' -require 'core/api/main/server/handler' +require 'core/api/main/server' require 'core/api/main/server/hook' require 'core/api/main/configuration' diff --git a/core/api/main/server/handler.rb b/core/api/main/server.rb similarity index 66% rename from core/api/main/server/handler.rb rename to core/api/main/server.rb index bdd82dbc2..a664509a0 100644 --- a/core/api/main/server/handler.rb +++ b/core/api/main/server.rb @@ -16,18 +16,24 @@ module BeEF module API module Server - module Handler - + API_PATHS = { - 'pre_http_start' => :pre_http_start, - 'mount_handlers' => :mount_handlers + 'mount_handler' => :mount_handler, + 'pre_http_start' => :pre_http_start } - def mount_handlers(beef_server); end - def pre_http_start(http_hook_server); end + + def mount_handler(server); end + + def self.mount(url, hard, http_handler_class, args = nil) + BeEF::Core::Server.instance.mount(url, hard, http_handler_class, *args) + end + + def self.unmount(url, hard) + BeEF::Core::Server.instance.unmount(url, hard) + end - end end end diff --git a/core/main/network_stack/api.rb b/core/main/network_stack/api.rb index 362af9612..6b9b0223d 100644 --- a/core/main/network_stack/api.rb +++ b/core/main/network_stack/api.rb @@ -19,18 +19,18 @@ module NetworkStack module RegisterHttpHandler # use of the API right here - extend BeEF::API::Server::Handler + extend BeEF::API::Server # # Register the http handler for the network stack # - def self.mount_handlers(beef_server) + def self.mount_handler(server) #dynamic handler - beef_server.mount('/dh', true, BeEF::Core::NetworkStack::Handlers::DynamicReconstruction) + server.mount('/dh', true, BeEF::Core::NetworkStack::Handlers::DynamicReconstruction) end end end end -end \ No newline at end of file +end diff --git a/core/main/server.rb b/core/main/server.rb index 4f708a8f8..07101cb4d 100644 --- a/core/main/server.rb +++ b/core/main/server.rb @@ -96,7 +96,7 @@ module Core # # We dynamically get the list of all http handler using the API and register them # - BeEF::API.fire(BeEF::API::Server::Handler, 'mount_handlers', self) + BeEF::API.fire(BeEF::API::Server, 'mount_handler', self) end end diff --git a/extensions/admin_ui/api/handler.rb b/extensions/admin_ui/api/handler.rb index a1aebc04e..42281e05d 100644 --- a/extensions/admin_ui/api/handler.rb +++ b/extensions/admin_ui/api/handler.rb @@ -24,12 +24,12 @@ module API module Handler # use of the API right here - extend BeEF::API::Server::Handler + extend BeEF::API::Server # # This function gets called automatically by the server. # - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) # retrieve the configuration class instance configuration = BeEF::Core::Configuration.instance diff --git a/extensions/demos/api.rb b/extensions/demos/api.rb index 9e93c28c1..cb9ed748d 100644 --- a/extensions/demos/api.rb +++ b/extensions/demos/api.rb @@ -19,9 +19,9 @@ module Demos module RegisterHttpHandlers - extend BeEF::API::Server::Handler + extend BeEF::API::Server - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) # mount the handler to support the demos dir = File.dirname(__FILE__)+'/html/' @@ -32,4 +32,4 @@ module Demos end end -end \ No newline at end of file +end diff --git a/extensions/events/api.rb b/extensions/events/api.rb index 0589d2f14..b61aa4327 100644 --- a/extensions/events/api.rb +++ b/extensions/events/api.rb @@ -19,13 +19,13 @@ module Events module RegisterHttpHandler # use of the API right here - extend BeEF::API::Server::Handler + extend BeEF::API::Server # # Mounts the http handlers for the events extension. We use that to retrieve stuff # like keystroke, mouse clicks and form submission. # - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) beef_server.mount('/event', false, BeEF::Extension::Events::Handler) end @@ -33,4 +33,4 @@ module Events end end -end \ No newline at end of file +end diff --git a/extensions/initialization/api.rb b/extensions/initialization/api.rb index 6b6a4e1f5..cf0312efd 100644 --- a/extensions/initialization/api.rb +++ b/extensions/initialization/api.rb @@ -19,13 +19,13 @@ module Initialization module RegisterHttpHandler # use of the API right here - extend BeEF::API::Server::Handler + extend BeEF::API::Server # # Register the http handler for the initialization script that retrieves # all the information about hooked browsers. # - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) beef_server.mount('/init', false, BeEF::Extension::Initialization::Handler) end @@ -33,4 +33,4 @@ module Initialization end end -end \ No newline at end of file +end diff --git a/extensions/proxy/api.rb b/extensions/proxy/api.rb index fab0b0395..220c77108 100644 --- a/extensions/proxy/api.rb +++ b/extensions/proxy/api.rb @@ -21,7 +21,7 @@ module API module RegisterHttpHandler # use of the API - extend BeEF::API::Server::Handler + extend BeEF::API::Server def self.pre_http_start(http_hook_server) proxy = BeEF::Extension::Proxy::HttpProxyZombie.instance @@ -30,7 +30,7 @@ module API print_success "HTTP Proxy: http://#{config.get('beef.extension.proxy.address')}:#{config.get('beef.extension.proxy.port')}" end - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) beef_server.mount('/proxy', false, BeEF::Extension::Events::Handler) end diff --git a/extensions/requester/api.rb b/extensions/requester/api.rb index 53073a5d6..1bc12d65c 100644 --- a/extensions/requester/api.rb +++ b/extensions/requester/api.rb @@ -20,11 +20,11 @@ module Requester module RegisterHttpHandler # use of the API - extend BeEF::API::Server::Handler + extend BeEF::API::Server # We register the http handler for the requester. # This http handler will retrieve the http responses for all requests - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) beef_server.mount('/requester', false, BeEF::Extension::Requester::Handler) end diff --git a/extensions/xssrays/api.rb b/extensions/xssrays/api.rb index 68213493c..7302c2bf6 100644 --- a/extensions/xssrays/api.rb +++ b/extensions/xssrays/api.rb @@ -20,11 +20,11 @@ module Xssrays module RegisterHttpHandler # use of the API - extend BeEF::API::Server::Handler + extend BeEF::API::Server # We register the http handler for the requester. # This http handler will retrieve the http responses for all requests - def self.mount_handlers(beef_server) + def self.mount_handler(beef_server) beef_server.mount('/xssrays', false, BeEF::Extension::Xssrays::Handler) end