Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
beefproject
GitHub Repository: beefproject/beef
Path: blob/master/spec/support/simple_rest_client.rb
1154 views
1
#
2
# Copyright (c) 2006-2025 Wade Alcorn - [email protected]
3
# Browser Exploitation Framework (BeEF) - https://beefproject.com
4
# See the file 'doc/COPYING' for copying permission
5
#
6
# less noisy verson of BeeRestAPI found in tools.
7
class BeefRestClient
8
def initialize(proto, host, port, user, pass)
9
@user = user
10
@pass = pass
11
@url = "#{proto}://#{host}:#{port}/api/"
12
@token = nil
13
end
14
15
def is_pass?(passwd)
16
@pass == passwd
17
end
18
19
def auth
20
response = RestClient.post "#{@url}admin/login",
21
{ 'username': "#{@user}",
22
'password': "#{@pass}" }.to_json,
23
content_type: :json,
24
accept: :json
25
result = JSON.parse(response.body)
26
@token = result['token']
27
{ success: result['success'], payload: result, token: @token }
28
rescue StandardError => e
29
{ success: false, payload: e.message }
30
end
31
32
def version
33
return { success: false, payload: 'no token' } if @token.nil?
34
35
begin
36
response = RestClient.get "#{@url}server/version", { params: { token: @token } }
37
result = JSON.parse(response.body)
38
39
{ success: result['success'], payload: result }
40
rescue StandardError => e
41
print_error "Could not retrieve BeEF version: #{e.message}"
42
{ success: false, payload: e.message }
43
end
44
end
45
end
46
47