From 24ee0c50958c64c3192aff39bc3c4a056bbb328f Mon Sep 17 00:00:00 2001 From: aaron Date: Thu, 2 Apr 2020 15:21:33 +1000 Subject: [PATCH] Adding GBs hookedbrowserwebsockettimeout fix --- config.yaml | 8 ++++---- core/main/rest/handlers/hookedbrowsers.rb | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/config.yaml b/config.yaml index 75ae974b5..269bb7bac 100644 --- a/config.yaml +++ b/config.yaml @@ -8,9 +8,9 @@ beef: version: '0.5.0.0-alpha-pre' # More verbose messages (server-side) - debug: true + debug: false # More verbose messages (client-side) - client_debug: true + client_debug: false # Used for generating secure tokens crypto_default_value_length: 80 @@ -69,13 +69,13 @@ beef: # Prefer WebSockets over XHR-polling when possible. websocket: - enable: false + enable: true port: 61985 # WS: good success rate through proxies # Use encrypted 'WebSocketSecure' # NOTE: works only on HTTPS domains and with HTTPS support enabled in BeEF secure: true secure_port: 61986 # WSSecure - ws_poll_timeout: 1000 # poll BeEF every second + ws_poll_timeout: 60000 # poll BeEF every 60 second ws_connect_timeout: 500 # useful to help fingerprinting finish before establishing the WS channel # Imitate a specified web server (default root page, 404 default error page, 'Server' HTTP response header) diff --git a/core/main/rest/handlers/hookedbrowsers.rb b/core/main/rest/handlers/hookedbrowsers.rb index 3c354e6f7..c4f7c8a50 100644 --- a/core/main/rest/handlers/hookedbrowsers.rb +++ b/core/main/rest/handlers/hookedbrowsers.rb @@ -24,8 +24,14 @@ module BeEF # @note Get online and offline hooked browsers details (like name, version, os, ip, port, ...) # get '/' do - online_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen >= ?', (Time.new.to_i - 15))) - offline_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen <= ?', (Time.new.to_i - 15))) + if config.get('beef.http.websocket.enable') == false + online_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen >= ?', (Time.new.to_i - 15))) + offline_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen <= ?', (Time.new.to_i - 15))) + else + timeout = config.get('beef.http.websocket.ws_poll_timeout') + online_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen >= ?', (Time.new.to_i - timeout))) + offline_hooks = hb_to_json(BeEF::Core::Models::HookedBrowser.where('lastseen <= ?', (Time.new.to_i - timeout))) + end output = { 'hooked-browsers' => {