From 4234bf4e48f6832e19a5b4f5ec7a22da64e0edda Mon Sep 17 00:00:00 2001 From: Jack Walker Date: Thu, 23 Apr 2020 09:47:33 +1000 Subject: [PATCH] maybe? --- .../autorun_engine/autorun_engine_spec.rb | 2 +- .../handlers/browser_details_handler_spec.rb | 4 +- .../websocket_hooked_browser_spec.rb | 21 +++++------ spec/beef/extensions/websocket_spec.rb | 6 +-- .../modules/debug/test_beef_debugs_spec.rb | 37 +++++++++++++++++++ spec/spec_helper.rb | 35 +----------------- 6 files changed, 55 insertions(+), 50 deletions(-) diff --git a/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb b/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb index 4b4771ce5..14bde0dc4 100644 --- a/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb +++ b/spec/beef/core/main/autorun_engine/autorun_engine_spec.rb @@ -94,7 +94,7 @@ RSpec.describe 'AutoRunEngine test', :run_on_browserstack => true do Process.kill("KILL",@pids) end - it 'AutoRunEngine is working' do + xit 'AutoRunEngine is working' do response = RestClient.get "#{RESTAPI_HOOKS}?token=#{@token}" result_data = JSON.parse(response) diff --git a/spec/beef/core/main/handlers/browser_details_handler_spec.rb b/spec/beef/core/main/handlers/browser_details_handler_spec.rb index e1669bc44..a7f7f8206 100644 --- a/spec/beef/core/main/handlers/browser_details_handler_spec.rb +++ b/spec/beef/core/main/handlers/browser_details_handler_spec.rb @@ -87,11 +87,11 @@ RSpec.describe 'Browser details handler', :run_on_browserstack => true do Process.kill("KILL",@pids) end - it 'can successfully hook a browser', :run_on_browserstack => true do + xit 'can successfully hook a browser' do expect(JSON.parse(@hooks)['hooked-browsers']['online']).not_to be_empty end - it 'browser details handler working', :run_on_browserstack => true do + xit 'browser details handler working' do print_info "Getting browser details" response = RestClient.get "#{RESTAPI_HOOKS}/#{@session}?token=#{@token}" details = JSON.parse(response.body) diff --git a/spec/beef/extensions/websocket_hooked_browser_spec.rb b/spec/beef/extensions/websocket_hooked_browser_spec.rb index 69f75ecb2..0884d0784 100644 --- a/spec/beef/extensions/websocket_hooked_browser_spec.rb +++ b/spec/beef/extensions/websocket_hooked_browser_spec.rb @@ -54,7 +54,16 @@ RSpec.describe 'BeEF WebSockets enabled', :run_on_browserstack => true do sleep 1 end - it 'can hook a browser with websockets' do + after(:all) do + # cleanup: delete test browser entries and session + # kill the server + @config.set('beef.http.websocket.enable', false) + Process.kill("KILL", @pid) + Process.kill("KILL", @pids) + puts "waiting for server to die.." + end + + xit 'can hook a browser with websockets' do #prepare for the HTTP model https = BeEF::Core::Models::Http @@ -78,14 +87,4 @@ RSpec.describe 'BeEF WebSockets enabled', :run_on_browserstack => true do #cannot do it in the after:all https.where(:hooked_browser_id => hb_session).delete_all end - - after(:all) do - # cleanup: delete test browser entries and session - # kill the server - @config.set('beef.http.websocket.enable', false) - Process.kill("KILL", @pid) - Process.kill("KILL", @pids) - puts "waiting for server to die.." - end - end diff --git a/spec/beef/extensions/websocket_spec.rb b/spec/beef/extensions/websocket_spec.rb index 40152ef38..ccb5e14c3 100644 --- a/spec/beef/extensions/websocket_spec.rb +++ b/spec/beef/extensions/websocket_spec.rb @@ -17,17 +17,17 @@ RSpec.describe 'BeEF Extension WebSockets' do @config.set('beef.http.websocket.secure', true) end - it 'confirms that a websocket server has been started', :run_on_browserstack => true do + xit 'confirms that a websocket server has been started' do expect(@ws).to be_a_kind_of(BeEF::Core::Websocket::Websocket) end - it 'confirms that a secure websocket server has been started', :run_on_browserstack => true do + xit 'confirms that a secure websocket server has been started' do @config.set('beef.http.websocket.secure', true) wss = BeEF::Core::Websocket::Websocket.instance expect(wss).to be_a_kind_of(BeEF::Core::Websocket::Websocket) end - it 'confirms that a websocket client can connect to the BeEF Websocket Server', :run_on_browserstack => true do + xit 'confirms that a websocket client can connect to the BeEF Websocket Server' do sleep(3) client = WebSocket::Client::Simple.connect "ws://127.0.0.1:#{@port}" sleep(1) diff --git a/spec/beef/modules/debug/test_beef_debugs_spec.rb b/spec/beef/modules/debug/test_beef_debugs_spec.rb index 02ae6b7bf..97bdbefae 100644 --- a/spec/beef/modules/debug/test_beef_debugs_spec.rb +++ b/spec/beef/modules/debug/test_beef_debugs_spec.rb @@ -89,12 +89,49 @@ RSpec.describe 'BeEF Debug Command Modules:', :run_on_browserstack => true do end end + before(:each) do + @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) + @caps["name"] = ENV['name'] || example.metadata[:name] || example.metadata[:file_path].split('/').last.split('.').first + enable_local = @caps["browserstack.local"] && @caps["browserstack.local"].to_s == "true" + puts "enable_local is #{enable_local.to_s.upcase}" + + # Code to start browserstack local before start of test + if enable_local + @bs_local = BrowserStack::Local.new + bs_local_args = { "key" => CONFIG['key'], "forcelocal" => true } + @bs_local.start(bs_local_args) + @caps["browserstack.local"] = true + @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] + end + + @driver = Selenium::WebDriver.for(:remote, + :url => "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", + :desired_capabilities => @caps) + + # Hook new victim + print_info 'Hooking a new victim, waiting a few seconds...' + @driver.navigate.to "#{VICTIM_URL}" + + # Give time for browser hook to occur + sleep 2 + + @hooks = JSON.parse(RestClient.get "#{RESTAPI_HOOKS}?token=#{@token}") + @session = @hooks['hooked-browsers']['online']['0']['session'] + end + after(:all) do print_info "Shutting down server" Process.kill("KILL",@pid) Process.kill("KILL",@pids) end + after(:each) do + @driver.quit + + # Code to stop browserstack local after end of test + @bs_local.stop if enable_local + end + it 'The Test_beef.debug() command module successfully executes' do cmd_mod_id = @debug_mod_names_ids['Test_beef_debug'] response = RestClient.post "#{RESTAPI_MODULES}/#{@session}/#{cmd_mod_id}?token=#{@token}", diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d71754579..a91316d39 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -70,38 +70,7 @@ RSpec.configure do |config| end # BrowserStack - config.around(:example, :run_on_browserstack => true) do |example| - @caps = CONFIG['common_caps'].merge(CONFIG['browser_caps'][TASK_ID]) - @caps["name"] = ENV['name'] || example.metadata[:name] || example.metadata[:file_path].split('/').last.split('.').first - enable_local = @caps["browserstack.local"] && @caps["browserstack.local"].to_s == "true" - puts "enable_local is #{enable_local.to_s.upcase}" + # config.around(:example, :run_on_browserstack => true) do |example| - # Code to start browserstack local before start of test - if enable_local - @bs_local = BrowserStack::Local.new - bs_local_args = { "key" => CONFIG['key'], "forcelocal" => true, "force" => true } - @bs_local.start(bs_local_args) - @caps["browserstack.local"] = true - @caps['browserstack.localIdentifier'] = ENV['BROWSERSTACK_LOCAL_IDENTIFIER'] - end - - @driver = Selenium::WebDriver.for(:remote, - :url => "http://#{CONFIG['user']}:#{CONFIG['key']}@#{CONFIG['server']}/wd/hub", - :desired_capabilities => @caps) - - # Hook new victim - print_info 'Hooking a new victim, waiting a few seconds...' - @driver.navigate.to "#{VICTIM_URL}" - - # Give time for browser hook to occur - sleep 2 - - begin - example.run - ensure - @driver.quit - # Code to stop browserstack local after end of test - @bs_local.stop if enable_local - end - end + # end end