From 96a16fa68331ce66e089c36a09e57901dd1823e7 Mon Sep 17 00:00:00 2001 From: antisnatchor Date: Fri, 11 May 2012 11:45:13 +0100 Subject: [PATCH] Fix issue 675 (added erubis parsing for Websocket config options) --- config.yaml | 1 + core/main/client/websocket.js | 15 +++++++++------ core/main/handlers/modules/beefjs.rb | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/config.yaml b/config.yaml index 440ed3479..dbe51649d 100644 --- a/config.yaml +++ b/config.yaml @@ -44,6 +44,7 @@ beef: enable: true secure: false # use WebSocketSecure port: 11989 + alive_timer: 5000 # poll BeEF every 5 seconds # Imitate a specified web server (default root page, 404 default error page, 'Server' HTTP response header) web_server_imitation: diff --git a/core/main/client/websocket.js b/core/main/client/websocket.js index 994fe5958..25ccdeeba 100644 --- a/core/main/client/websocket.js +++ b/core/main/client/websocket.js @@ -20,19 +20,22 @@ beef.websocket = { socket:null, - - alive_timer:5000, + alive_timer:<%= @websocket_timer %>, init:function () { var webSocketServer = beef.net.host; - var webSocketPort = 11989; + var webSocketPort = <%= @websocket_port %>; + var webSocketSecure = <%= @websocket_secure %>; + var protocol = "ws://"; + + if(webSocketSecure) + protocol = "wss://"; if (beef.browser.isFF() && !!window.MozWebSocket) { - beef.websocket.socket = new MozWebSocket("ws://" + webSocketServer + ":" + webSocketPort + "/"); + beef.websocket.socket = new MozWebSocket(protocol + webSocketServer + ":" + webSocketPort + "/"); } else { - beef.websocket.socket = new WebSocket("ws://" + webSocketServer + ":" + webSocketPort + "/"); - + beef.websocket.socket = new WebSocket(protocol + webSocketServer + ":" + webSocketPort + "/"); } }, diff --git a/core/main/handlers/modules/beefjs.rb b/core/main/handlers/modules/beefjs.rb index d43964ff2..7b1c9bc44 100644 --- a/core/main/handlers/modules/beefjs.rb +++ b/core/main/handlers/modules/beefjs.rb @@ -64,6 +64,12 @@ module Modules end end end + + if config.get("beef.http.websocket.enable") + hook_session_config['websocket_secure'] = config.get("beef.http.websocket.secure") + hook_session_config['websocket_port'] = config.get("beef.http.websocket.port") + hook_session_config['websocket_timer'] = config.get("beef.http.websocket.alive_timer") + end # @note populate place holders in the beefjs string and set the response body eruby = Erubis::FastEruby.new(beefjs)