This commit is contained in:
Jack Walker
2020-04-23 09:47:33 +10:00
parent c6f9f182eb
commit 4234bf4e48
6 changed files with 55 additions and 50 deletions

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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}",

View File

@@ -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