Class: NessusClient

Inherits:
Object
  • Object
show all
Includes:
Resource::Exports, Resource::Folders, Resource::Policies, Resource::Scans, Resource::Server, Resource::Session, Resource::Tokens
Defined in:
lib/nessus_client.rb,
lib/nessus_client/request.rb,
lib/nessus_client/version.rb,
lib/nessus_client/exception.rb

Overview

Nessus resource abstraction.

Defined Under Namespace

Classes: Error, Request

Constant Summary collapse

VERSION =

The current version of the libary.

'0.1.6'

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Resource::Tokens

#token_download, #token_status

Methods included from Resource::Session

#destroy, #set_session

Methods included from Resource::Server

#server_properties, #server_status

Methods included from Resource::Scans

#get_scan_by_name, #launch, #launch_by_name, #list_scans, #scan_details

Methods included from Resource::Policies

#get_policy_by_name, #get_policy_id_by_name, #list_credentials_by_policy_name, #policies, #update_policy_by_name

Methods included from Resource::Folders

#create_folder, #list_folders

Methods included from Resource::Exports

#export_download, #export_request, #export_status

Constructor Details

#initialize(params = {}) ⇒ NessusClient

Returns a new instance of NessusClient.

Parameters:

  • params (Hash) (defaults to: {})

    the options to create a NessusClient with.

Options Hash (params):

  • :uri (String) — default: 'https://localhost:8834/'

    Nessus resource to connect with

  • :username (String) — default: nil

    Username to use in the connection

  • :password (String) — default: nil

    Password to use in the connection

  • :ssl_verify_peer (String) — default: true

    Whether should check valid SSL certificate



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/nessus_client.rb', line 34

def initialize(params = {})
  default_params = {
    uri: 'https://localhost:8834/',
    username: nil,
    password: nil,
    ssl_verify_peer: true
  }
  params = default_params.merge(params)
  req_params = params.select { |key, _value| i[uri ssl_verify_peer].include?(key) }

  @request = NessusClient::Request.new(req_params)
  @headers = NessusClient::Request::DEFAULT_HEADERS.dup
  set_session(params.fetch(:username), params.fetch(:password))
end

Instance Attribute Details

#headersHash (readonly)

Returns Instance current HTTP headers.

Returns:

  • (Hash)

    Instance current HTTP headers.



17
18
19
# File 'lib/nessus_client.rb', line 17

def headers
  @headers
end

#requestNessusClient::Request (readonly)

Returns Instance HTTP request object.

Returns:

See Also:



13
14
15
# File 'lib/nessus_client.rb', line 13

def request
  @request
end

#sessionBoolean (readonly)

Returns whether has a session.

Returns:

  • (Boolean)

    whether has a session.



15
16
17
# File 'lib/nessus_client.rb', line 15

def session
  @session
end

Instance Method Details

#has_session?Boolean

Gets NessusClient::Session authentication status.

Returns:

  • (Boolean)

    whether NessusClient has successfully authenticated.



51
52
53
# File 'lib/nessus_client.rb', line 51

def has_session?
  session
end