Nessus6 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,29 @@
1
+ module Nessus6
2
+ # The verification class allows methods to verify responses from Nessus
3
+ module Verification
4
+ private
5
+
6
+ def verify(response, message = nil)
7
+ case response.status_code
8
+ when 200
9
+ return JSON.parse response.body
10
+ when 400
11
+ fail Nessus6::Error::BadRequestError, "#{message[:bad_request]}"
12
+ when 401
13
+ fail Nessus6::Error::UnauthorizedError, "#{message[:unauthorized]}"
14
+ when 403
15
+ fail Nessus6::Error::ForbiddenError, "#{message[:forbidden]}"
16
+ when 404
17
+ fail Nessus6::Error::NotFoundError, "#{message[:not_found]}"
18
+ when 409
19
+ fail Nessus6::Error::ConflictError, "#{message[:conflict]}"
20
+ when 500
21
+ fail Nessus6::Error::InternalServerError,
22
+ "#{message[:internal_server_error]}"
23
+ else
24
+ fail Nessus6::Error::UnknownError, 'An unknown error occurred. ' \
25
+ 'Please consult Nessus for further details.'
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Nessus6
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Nessus6
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Kirsche
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-08-19 00:00:00.000000000 Z
11
+ date: 2015-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.8'
69
+ - !ruby/object:Gem::Dependency
70
+ name: codeclimate-test-reporter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.4'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.4'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: hurley
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -97,7 +111,8 @@ files:
97
111
  - bin/console
98
112
  - bin/setup
99
113
  - lib/Nessus6.rb
100
- - lib/Nessus6/editor/methods.rb
114
+ - lib/Nessus6/editor.rb
115
+ - lib/Nessus6/errors/authentication_error.rb
101
116
  - lib/Nessus6/errors/bad_request.rb
102
117
  - lib/Nessus6/errors/conflict.rb
103
118
  - lib/Nessus6/errors/forbidden.rb
@@ -105,13 +120,14 @@ files:
105
120
  - lib/Nessus6/errors/not_found.rb
106
121
  - lib/Nessus6/errors/unauthorized.rb
107
122
  - lib/Nessus6/errors/unknown.rb
108
- - lib/Nessus6/file/methods.rb
109
- - lib/Nessus6/folders/methods.rb
110
- - lib/Nessus6/groups/methods.rb
111
- - lib/Nessus6/permissions/methods.rb
112
- - lib/Nessus6/scans/methods.rb
113
- - lib/Nessus6/session/methods.rb
114
- - lib/Nessus6/users/methods.rb
123
+ - lib/Nessus6/file.rb
124
+ - lib/Nessus6/folder.rb
125
+ - lib/Nessus6/group.rb
126
+ - lib/Nessus6/permission.rb
127
+ - lib/Nessus6/scan.rb
128
+ - lib/Nessus6/session.rb
129
+ - lib/Nessus6/user.rb
130
+ - lib/Nessus6/verification.rb
115
131
  - lib/Nessus6/version.rb
116
132
  homepage: https://github.com/kkirsche/Nessus6
117
133
  licenses:
@@ -1,108 +0,0 @@
1
- require 'json'
2
- require 'Nessus6/errors/forbidden'
3
- require 'Nessus6/errors/not_found'
4
- require 'Nessus6/errors/unknown'
5
-
6
- module Nessus6
7
- # The Editor class is for interacting with Nessus6 templates
8
- class Editor
9
- def initialize(client)
10
- @client = client
11
- end
12
-
13
- def audits(type, object_id, file_id)
14
- response = @client.get("editor/#{type}/#{object_id}/audits/#{file_id}")
15
- verify_audits response
16
- end
17
-
18
- def details(type, template_uuid)
19
- response = @client.get("editor/#{type}/templates/#{template_uuid}")
20
- verify_details response
21
- end
22
-
23
- def edit(type, id)
24
- response = @client.get("editor/#{type}/#{id}")
25
- verify_edit response
26
- end
27
-
28
- def list(type)
29
- response = @client.get("editor/#{type}/templates")
30
- verify response
31
- end
32
-
33
- def plugin_description(policy_id, family_id, plugin_id)
34
- response = @client.get("editor/policy/#{policy_id}/families/#{family_id}/plugins/#{plugin_id}")
35
- verify_plugin_description response
36
- end
37
-
38
- private
39
-
40
- def verify_audits(response)
41
- case response.status_code
42
- when 200
43
- return JSON.parse response.body
44
- when 403
45
- fail ForbiddenError,
46
- 'You do not have permission to export the audit file'
47
- when 404
48
- fail NotFoundError, 'Audit file does not exist'
49
- else
50
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
51
- 'for further details.'
52
- end
53
- end
54
-
55
- def verify_details(response)
56
- case response.status_code
57
- when 200
58
- return JSON.parse response.body
59
- when 403
60
- fail ForbiddenError,
61
- 'You do not have permission to open the template'
62
- when 404
63
- fail NotFoundError, 'Template does not exist'
64
- else
65
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
66
- 'for further details.'
67
- end
68
- end
69
-
70
- def verify_edit(response)
71
- case response.status_code
72
- when 200
73
- return JSON.parse response.body
74
- when 403
75
- fail ForbiddenError,
76
- 'You do not have permission to open the object'
77
- when 404
78
- fail NotFoundError, 'Object does not exist'
79
- else
80
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
81
- 'for further details.'
82
- end
83
- end
84
-
85
- def verify_list(response)
86
- case response.status_code
87
- when 200
88
- return JSON.parse response.body
89
- when 403
90
- fail ForbiddenError,
91
- 'You do not have permission to view the list'
92
- else
93
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
94
- 'for further details.'
95
- end
96
- end
97
-
98
- def verify_plugin_description(response)
99
- case response.status_code
100
- when 200
101
- return JSON.parse response.body
102
- else
103
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
104
- 'for further details.'
105
- end
106
- end
107
- end
108
- end
@@ -1,34 +0,0 @@
1
- require 'json'
2
- require 'hurley'
3
- require 'Nessus6/errors/internal_server_error'
4
- require 'Nessus6/errors/unknown'
5
-
6
- module Nessus6
7
- # The Editor class is for interacting with Nessus6 templates
8
- class File
9
- def initialize(client)
10
- @client = client
11
- end
12
-
13
- def upload(file_path, file_type, encrypted = 0)
14
- response = @client.post('file/upload',
15
- file: Hurley::UploadIO.new(file_path, file_type),
16
- no_enc: encrypted)
17
- verify_upload response
18
- end
19
-
20
- private
21
-
22
- def verify_upload(response)
23
- case response.status_code
24
- when 200
25
- return JSON.parse response.body
26
- when 500
27
- fail InternalServerError, 'File failed to upload'
28
- else
29
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
30
- 'for further details.'
31
- end
32
- end
33
- end
34
- end
@@ -1,118 +0,0 @@
1
- require 'json'
2
- require 'Nessus6/errors/internal_server_error'
3
- require 'Nessus6/errors/forbidden'
4
- require 'Nessus6/errors/bad_request'
5
- require 'Nessus6/errors/not_found'
6
- require 'Nessus6/errors/unknown'
7
-
8
- module Nessus6
9
- # The Editor class is for interacting with Nessus6 templates
10
- class Folders
11
- def initialize(client)
12
- @client = client
13
- end
14
-
15
- # Creates a new folder for the current user. This request requires
16
- # read-only user permissions.
17
- #
18
- # @param name [String] The name of the folder.
19
- # @return [Hash]
20
- def create(name)
21
- response = @client.post('folders', name: name)
22
- verify_create response
23
- end
24
-
25
- # Deletes a folder. This request requires read-only user permissions.
26
- #
27
- # @param folder_id [String, Fixnum] The id of the folder to delete.
28
- # @return [Hash]
29
- def delete(folder_id)
30
- response = @client.delete("folders/#{folder_id}")
31
- verify_delete response
32
- end
33
-
34
- # Rename a folder for the current user. This request requires read-only
35
- # user permissions.
36
- #
37
- # @param folder_id [String, Fixnum] The id of the folder to edit.
38
- # @param name [String] The name of the folder.
39
- # @return [Hash]
40
- def edit(folder_id, name)
41
- response = @client.put("folders/#{folder_id}", name: name)
42
- verify_edit response
43
- end
44
-
45
- alias_method :rename, :edit
46
-
47
- # Returns the current user's scan folders.
48
- #
49
- # @return [Hash] { "folders": [folder Resource] }
50
- def list
51
- response = @client.get('folders')
52
- verify_list response
53
- end
54
-
55
- private
56
-
57
- def verify_create(response)
58
- case response.status_code
59
- when 200
60
- return JSON.parse response.body
61
- when 400
62
- fail BadRequestError, 'Folder name is invalid'
63
- when 403
64
- fail ForbiddenError, 'You do not have permission to create a folder'
65
- when 500
66
- fail InternalServerError, 'Server failed to create the folder'
67
- else
68
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
69
- 'for further details.'
70
- end
71
- end
72
-
73
- def verify_delete(response)
74
- case response.status_code
75
- when 200
76
- return JSON.parse response.body
77
- when 403
78
- fail ForbiddenError, 'Cannot delete a system folder'
79
- when 404
80
- fail NotFoundError, 'Folder does not exist'
81
- when 500
82
- fail InternalServerError, 'Server failed to delete the folder'
83
- else
84
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
85
- 'for further details.'
86
- end
87
- end
88
-
89
- def verify_edit(response)
90
- case response.status_code
91
- when 200
92
- return JSON.parse response.body
93
- when 403
94
- fail ForbiddenError, 'Cannot rename a system folder'
95
- when 404
96
- fail NotFoundError, 'Folder does not exist'
97
- when 500
98
- fail InternalServerError, 'Server failed to rename the folder'
99
- else
100
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
101
- 'for further details.'
102
- end
103
- end
104
-
105
- def verify_list(response)
106
- case response.status_code
107
- when 200
108
- return JSON.parse response.body
109
- when 403
110
- fail ForbiddenError,
111
- 'You do not have permission to view the folder list'
112
- else
113
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
114
- 'for further details.'
115
- end
116
- end
117
- end
118
- end
@@ -1,202 +0,0 @@
1
- require 'json'
2
- require 'Nessus6/errors/internal_server_error' # 500
3
- require 'Nessus6/errors/forbidden' # 403
4
- require 'Nessus6/errors/bad_request' # 400
5
- require 'Nessus6/errors/not_found' # 404
6
- require 'Nessus6/errors/unknown'
7
-
8
- module Nessus6
9
- # The Editor class is for interacting with Nessus6 templates
10
- class Groups
11
- def initialize(client)
12
- @client = client
13
- end
14
-
15
- # Add a user to the group. This request requires administrator user
16
- # permissions.
17
- #
18
- # @param group_id [String, Fixnum] The unique id of the group.
19
- # @param user_id [String, Fixnum] The unique id of the user.
20
- # @return [Hash]
21
- def add_user(group_id, user_id)
22
- response = @client.post("groups/#{group_id}/users/#{user_id}")
23
- verify_add_user response
24
- end
25
-
26
- # Create a group. This request requires administrator user
27
- # permissions.
28
- #
29
- # @param name [String, Fixnum] The name of the group.
30
- # @return [Hash]
31
- def create(name)
32
- response = @client.post('groups', name: name)
33
- verify_create response
34
- end
35
-
36
- # Delete a group. This request requires administrator user
37
- # permissions.
38
- #
39
- # @param group_id [String, Fixnum] The unique id of the group.
40
- # @return [Hash]
41
- def delete(group_id)
42
- response = @client.delete("groups/#{group_id}")
43
- verify_delete response
44
- end
45
-
46
- # Deletes a user from the group. This request requires administrator user
47
- # permissions.
48
- #
49
- # @param group_id [String, Fixnum] The unique id of the group.
50
- # @param user_id [String, Fixnum] The unique id of the user.
51
- # @return [Hash]
52
- def delete_user(group_id, user_id)
53
- response = @client.delete("groups/#{group_id}/users/#{user_id}")
54
- verify_delete_user response
55
- end
56
-
57
- # Edit a group. This request requires administrator user permissions.
58
- #
59
- # @param group_id [String, Fixnum] The unique id of the group.
60
- # @param name [String] The name of the group.
61
- # @return [Hash]
62
- def edit(group_id, name)
63
- response = @client.put("groups/#{group_id}", name: name)
64
- verify_edit response
65
- end
66
-
67
- alias_method :rename, :edit
68
-
69
- # Returns the group list. This request requires read-only user permissions.
70
- #
71
- # @return [Hash]
72
- def list
73
- response = @client.get('groups')
74
- verify_list response
75
- end
76
-
77
- # Return the group user list. This request requires administrator user
78
- # permissions.
79
- #
80
- # @param group_id [String, Fixnum] The unique id of the group.
81
- # @return [Hash]
82
- def list_users(group_id)
83
- response = @client.get("groups/#{group_id}/users")
84
- verify_list_users response
85
- end
86
-
87
- private
88
-
89
- def verify_add_user(response)
90
- case response.status_code
91
- when 200
92
- return JSON.parse response.body
93
- when 403
94
- fail ForbiddenError,
95
- 'You do not have permission to add users to a group'
96
- when 404
97
- fail NotFoundError, 'Group or user does not exist'
98
- when 500
99
- fail InternalServerError, 'Server failed to add the user to the group'
100
- else
101
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
102
- 'for further details.'
103
- end
104
- end
105
-
106
- def verify_create(response)
107
- case response.status_code
108
- when 200
109
- return JSON.parse response.body
110
- when 400
111
- fail BadRequestError, 'Field is invalid'
112
- when 403
113
- fail ForbiddenError, 'You do not have permission to create a group'
114
- when 500
115
- fail InternalServerError, 'Server failed to create the group'
116
- else
117
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
118
- 'for further details.'
119
- end
120
- end
121
-
122
- def verify_delete(response)
123
- case response.status_code
124
- when 200
125
- return JSON.parse response.body
126
- when 400
127
- fail BadRequestError, 'Group does not exist'
128
- when 403
129
- fail ForbiddenError, 'You do not have permission to delete the group'
130
- when 500
131
- fail InternalServerError, 'Server failed to delete the group'
132
- else
133
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
134
- 'for further details.'
135
- end
136
- end
137
-
138
- def verify_delete_user(response)
139
- case response.status_code
140
- when 200
141
- return JSON.parse response.body
142
- when 403
143
- fail ForbiddenError,
144
- 'You do not have permission to delete users from a group'
145
- when 404
146
- fail NotFoundError, 'Group or user does not exist'
147
- when 500
148
- fail InternalServerError,
149
- 'Server failed to remove the user from the group'
150
- else
151
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
152
- 'for further details.'
153
- end
154
- end
155
-
156
- def verify_edit(response)
157
- case response.status_code
158
- when 200
159
- return JSON.parse response.body
160
- when 400
161
- fail BadRequestError, 'Field is invalid'
162
- when 403
163
- fail ForbiddenError, 'You do not have permission to edit a group'
164
- when 404
165
- fail NotFoundError, 'Group does not exist'
166
- when 500
167
- fail InternalServerError, 'Server failed to edit / rename the group'
168
- else
169
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
170
- 'for further details.'
171
- end
172
- end
173
-
174
- def verify_list(response)
175
- case response.status_code
176
- when 200
177
- return JSON.parse response.body
178
- when 403
179
- fail ForbiddenError,
180
- 'You do not have permission to view the groups list'
181
- else
182
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
183
- 'for further details.'
184
- end
185
- end
186
-
187
- def verify_list_users(response)
188
- case response.status_code
189
- when 200
190
- return JSON.parse response.body
191
- when 403
192
- fail ForbiddenError,
193
- 'You do not have permission to view the groups users list'
194
- when 404
195
- fail NotFoundError, 'Group does not exist'
196
- else
197
- fail UnknownError, 'An unknown error occurred. Please consult Nessus' \
198
- 'for further details.'
199
- end
200
- end
201
- end
202
- end