nexpose-security-console 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 130adf4881cf2c4615be2b889d531b808e94645d
4
- data.tar.gz: 3c898559f5db10799e20e506351dc40b2fe24df3
3
+ metadata.gz: 181c4068218db8ee7e68b19859ce77dfbfd30012
4
+ data.tar.gz: 5244169f444338a5efc07b84a8f3326c57120126
5
5
  SHA512:
6
- metadata.gz: 79b0f4cf74142145cefab98b367d4889acb4908637cd664df0abf719c28513fbfe1afb77c7856d87596e0c6046304644ac5662d7ee8c1300b79e033dd98872c4
7
- data.tar.gz: 32d4d8bc6b88cc816178f83894884931a87cf85b00d85d8c526dae59b1f5e5993873fd1a2648d7889bdc9f17c880b5a0191caa4608d09ffa46be3fa2d633040e
6
+ metadata.gz: b56359f3a851fc9f6d29e2a0c4b6fc7e2adb15bdedfde01074fc3434448501fc3226913f581f4cf08b7fc4fbf402ca8127b8fd326b150dfc1f329a1e7f93f493
7
+ data.tar.gz: 9bd932bb4910c3110380ae5a7534513dbf587e887c852bacd1811e886a210b4a43b13863bb7572e453ff2edb1522adafdf47f6ec606a5fc2a04f0ccdde4317b7
data/.byebug_history CHANGED
@@ -1,23 +1,256 @@
1
1
  quit
2
- dag = nsc.asset_groups.find {|ags| ags.name == 'Unknown OS' }
3
- nsc.asset_groups.find_by {|ags| ags.name == 'Unknown OS' }
4
- nsc.asset_groups
5
- nsc
2
+ page.title
3
+ n
4
+ page.title
5
+ page.has_content?('Delete')
6
+ page
7
+ quit
8
+ page.body. /deletet/
9
+ page.body. /delete/
10
+ page.body
11
+ page.has_content?('Delete assets')
12
+ page.has_content?('Delete')
13
+ page
14
+ page.has_content?('DELETE ASSETS')
15
+ quit
16
+ page.title
17
+ page
18
+ quit
19
+ click_link asset_group_name
6
20
  quit
7
- nsc.session_id
8
- nsc.session
21
+ click_link asset_group_name
22
+ page.find("Unknown OS")
23
+ )
24
+ page.find("Unknown OS"
25
+ asset_group_name
26
+ quit
27
+ asset_group_name
28
+ page.title
29
+ ex.command_in_context
30
+ ex.message
9
31
  n
10
- password
11
- port
12
- server
13
- username
32
+ page
33
+ quit
34
+ page.body
35
+ page.html
36
+ page.session
37
+ page.url
38
+ page.title
39
+ quit
40
+ args.first
41
+ args
42
+ n
43
+ args
44
+ q
45
+ asset_group = *args
46
+ asset_group = args
47
+ quit
48
+ args
49
+ quit
50
+ asset_group
51
+ ASSET_GROUP_NAME
52
+ args
53
+ quit
54
+ txt
55
+ n
56
+ page.title
57
+ quit
58
+ page.title
59
+ page
60
+ n
61
+ quit
62
+ page.text
63
+ page
64
+ n
65
+ quit
66
+ $1
67
+ txt =~ /\d+ to \d+ of (\d+)/
68
+ txt = find(".showingPage > .yui-pg-current").text
69
+ txt.split " "
70
+ $1
71
+ txt =~ /\d+ to \d+ of (\d+)/
72
+ txt ~= /\d+ to \d+ of (\d+)/
73
+ txt =~ /\d+ to \d+ of (\d+)/
74
+ txt =~ /\d+ to \d+ of \d+/
75
+ txt =~ /\d+ to \d+ of \+/
76
+ txt ~=/\d+ to \d+ of \+/
77
+ txt.text
78
+ txt
79
+ txt = find(".showingPage > .yui-pg-current")
80
+ find(".showingPage > .yui-pg-current")
81
+ find(".yui-pg-current")
82
+ n
83
+ quit
84
+ click_button 'Yes'
85
+ click_button 'OK'
86
+ page.text
87
+ find("#tableButtons-group-assets > #deleteAssetsBtn-group-assets").trigger(:click)
88
+ find("#tableButtons-group-assets > #deleteAssetsBtn-group-assets")
89
+ find("#tableButtons-group-assets#deleteAssetsBtn-group-assets")
90
+ find("#tableButtons-group-assets")
91
+ find("Assets")
92
+ find("#deleteAssets-Btn-group-assets")
93
+ page.text
94
+ find("#Delete assets")
95
+ find("#selectVisible-group-assets").trigger(:click)
96
+ find("#selectVisible-group-assets")
97
+ page.has_content?("Select Visible")
98
+ click_on "Select Visible"
99
+ page.has_content?("Select Visible")
100
+ page.has_content("Select Visible")
101
+ page.text
102
+ page.find("#selectImage-group-assets").trigger(:click)
103
+ page.find("#selectImage-group-assets").click_on("Select Visible")
104
+ page.find("#selectImage-group-assets")
105
+ page.execute_script(sjs)
106
+ sjs = "$('#selectVisible-group-assets').trigger(:click)"
107
+ page.execute_script("selectVisible.onclick()")
108
+ page.execute_script("$('selectVisible-group-assets').onclick()")
109
+ check("#selectControl-group-assets")
110
+ click_on("#selectControl-group-assets")
111
+ page.title
112
+ page
14
113
  quit
15
- server
114
+ ctrl.execute_script("$(selectFunction)")
115
+ ctrl.execute_script("$(select_function)")
116
+ ctrl.click_on "Select Visible"
117
+ ctrl.check "Select Visible"
118
+ ctrl.check
119
+ ctrl = find('#selectControl-group-assets')
120
+ find('#selectControl-group-assets')
121
+ click_link 'Unknown OS'
122
+ click_button 'Log on'
123
+ fill_in 'Password', with: password
16
124
  username
125
+ fill_in 'Username', with: username
126
+ visit uri
127
+ all("ul > li").find("#selectVisible-group-assets").text
128
+ all("ul > li").find("#selectVisible-group-assets").check("Select Visible")
129
+ all("ul > li").find("#selectVisible-group-assets").check
130
+ all("ul > li").find("#selectVisible-group-assets")
131
+ find("li #selectVisible-group-assets")
132
+ find("#selectVisible-group-assets")
133
+ within("#selectControl-group-assets") do |x|
134
+ within("#selectControl-group-assets") do
135
+ find('ul > li id="selectVisible-group-assets"')
136
+ find('ul > li id="selectVisible-group-assets")
137
+ find('ul > li id='selectVisible-group-assets')
138
+ find('ul > li #selectVisible-group-assets')
139
+ find('ul > li#selectVisible-group-assets')
140
+ find('ul > li')
141
+ find(:xpath, "//[@id='selectVisible-group-assets']")
142
+ find(:xpath, //[@id="selectVisible-group-assets"])
143
+ page.all(:xpath, '//li').find("Select Visible").text
144
+ page.all(:xpath, '//li').find("Select Visible").click_on("Select Visible")
145
+ page.all(:xpath, '//li').find("Select Visible").check("Select Visible")
146
+ page.all(:xpath, '//li').find("Select Visible").check
147
+ page.all(:xpath, '//li').find("Select Visible").click
148
+ page.all(:xpath, '//li').find("Select Visible")
149
+ page.all(:xpath, '//li')
150
+ page.find(:xpath, '//li[contains("Visible")')
151
+ page.find(:xpath, '//li[contains("Visible')
152
+ page.find("#selectControl-group-assets").children
153
+ page.find("#selectControl-group-assets").find("ul")
154
+ page.find("#selectControl-group-assets").find("ul#selectOptions-group-assets")
155
+ page.find("#selectControl-group-assets").find("#selectOptions-group-assets")
156
+ page.find("#selectControl-group-assets").find(" #selectOptions-group-assets")
157
+ page.find("#selectControl-group-assets #selectOptions-group-assets")
158
+ page.find("#selectControl-group-assets")
159
+ check "Select Visible"
160
+ click_link "Select Visible"
161
+ page
162
+ page.html
163
+ page.text
164
+ page.find("#selectControl-asset-groups")
165
+ page
166
+ click_link "Unknown OS"
167
+ page.text
168
+ page.find("#selectControl-asset-groups")
169
+ page
170
+ within("#selectControl-asset-groups") do
171
+ within "#selectControl-asset-groups" do
172
+ within "selectControl-asset-groups" do
173
+ page.text
174
+ click_button 'Log on'
175
+ fill_in "Password", with: 'nxadmin!acsa'
176
+ fill_in "Username", with: "nxadmin"
177
+ page.text
178
+ visit uri
17
179
  quit
18
- user
180
+ visit uri
19
181
  quit
20
- port
21
- password
22
- user
23
- host
182
+ visit uri
183
+ quit
184
+ ctrl.find "ul#selectOptions-group-assets"
185
+ ctrl.find "li"
186
+ ctrl.find "ul"
187
+ ctrl.find "img"
188
+ ctrl
189
+ session.within("#selectControl-group-assets") do
190
+ session.within "#selectControl-group-assets" do
191
+ ctrl.title
192
+ ctrl.css
193
+ ctrl.text
194
+ ctrl.find "ul"
195
+ ctr.find "ul"
196
+ ctrl
197
+ ctrl.check "Select Visible"
198
+ ctrl.document
199
+ ctrl.click_on
200
+ ctrl.find("#selectOptions-group-assets")
201
+ ctrl.text
202
+ ctrl = session.find("#selectControl-group-assets")
203
+ session.find("#selectControl-group-assets")
204
+ session.find("#selectControl-group-assets#selectOptions-group-assets")
205
+ session.find("#selectControl-group-assets#selectOptions-group-assets").check 'Select Visible'
206
+ session.find("#selectControl-group-assets").click_on 'Select Visible'
207
+ session.find("#selectControl-group-assets")
208
+ session.find("#selectVisible-group-assets")
209
+ session.check 'Select Visible'
210
+ session.click_on '.selectOptions-group-assets.selectVisible-group-assets'
211
+ session.within 'selectOptions-group-assets'
212
+ session.within 'selectOptions-group-assets' do
213
+ session.text
214
+ session.click_on 'selectOptions-group-assets'
215
+ session.click_on 'select-Options-group-assets'
216
+ session.click_on 'Select Visible'
217
+ session.click_on 'selectVisible-group-assets'
218
+ session.click 'selectVisible-group-assets'
219
+ session.check 'selectVisible-group-assets'
220
+ session.click_link 'Unknown OS'
221
+ session.click_link 'assets'
222
+ session.click_button 'assets'
223
+ session.click_on 'assets'
224
+ session.text
225
+ session.document.methods
226
+ session.document.page
227
+ session.page
228
+ session.document.content
229
+ session.title
230
+ session.has_title? "Log on to Nexpose"
231
+ session.has_title? "Log"
232
+ session
233
+ quit
234
+ session.has_content 'Nexpose'
235
+ session.click_button 'Log_on'
236
+ session.click_link 'Log on'
237
+ session.click_link 'LOG ON'
238
+ session.click_button 'LOG ON'
239
+ session.fill_in 'Password', with: 'nxadmin!acsa'
240
+ session.fill_in 'Username', with: 'nxadmin'
241
+ fill_in 'Username', with: 'nxadmin'
242
+ session.fill_in 'Username', with(x 'nxadmin'
243
+ session.fill_in 'Username', 'nxadmin'
244
+ session.document.has_content?('Username')
245
+ session.document.title
246
+ session.document.methods
247
+ session.document
248
+ session.public_methods
249
+ session.public_properties
250
+ session.content
251
+ session
252
+ quit
253
+ dag = nsc.asset_groups.find {|ags| ags.name == 'Unknown OS' }
254
+ nsc.asset_groups.find_by {|ags| ags.name == 'Unknown OS' }
255
+ nsc.asset_groups
256
+ nsc
data/README.adoc CHANGED
@@ -2,10 +2,12 @@
2
2
  Christian Kyony <ckyony@changamuka.com>
3
3
  v0.0.1, 3 February 2017
4
4
 
5
+ :uri-freesoftware: https://www.gnu.org/philosophy/free-sw.html
6
+
5
7
  For security engineers
6
- who needs to interact with a Rapid7 Nexpose console,
7
- the *nexpose-security-console* gem is a Git like command line utility
8
- that manage (e.g. create, list, update, and remove) the following entities:
8
+ who need to interact with a Rapid7 Nexpose console,
9
+ the *nexpose-security-console* gem is a command line utility
10
+ that manages (e.g. create, read, update, and delete) the following entities:
9
11
  - sites,
10
12
  - scans,
11
13
  - assets,
@@ -17,7 +19,6 @@ that manage (e.g. create, list, update, and remove) the following entities:
17
19
  // Unlike the Nexposecli gem and other alternatives,
18
20
  // *nexpose-security-consolei* is designed to follow a
19
21
 
20
-
21
22
  == Personal scratch
22
23
 
23
24
  I need to delete ~ 100 thousands assets from a group asset.
@@ -25,50 +26,42 @@ The web GUI only allows to delete 500 at a time.
25
26
  Hence, nexpose-security-console was born.
26
27
 
27
28
 
28
-
29
29
  == Installation
30
30
 
31
- === From Ruby Gems
32
-
33
31
  Simply run the command below
34
32
 
35
33
  ----
36
34
  $ gem install nexpose-security-console
37
35
  ----
38
36
 
39
- === From source code
40
-
41
- - If you have access to the Internet, obtain the source code from Github repository.
42
-
43
- $ git clone https://github.com/rhc/nexpose-security-console.git
44
-
45
- - Access the source code folder directory.
46
-
47
- $ cd nexpose-security-console
48
-
49
- - Install the dependencies
50
-
51
- $ bin/setup
52
-
53
- - Install the gem in your local machine
54
-
55
- $ bundle exec rake install
56
-
57
- - Run the test suite
58
-
59
- $ rake test
60
37
 
61
38
  == Usage
62
39
 
63
40
  You can get help on available commands.
64
41
 
65
- $ nsc help
66
-
67
- Commands:
68
- nsc --version, -v # Print the version
69
- nsc help [COMMAND] # Describe available commands or one specific command
70
-
71
-
42
+ ----
43
+ NAME
44
+ nsc - CLI to interface with Nexpose Security Console
45
+
46
+ SYNOPSIS
47
+ nsc [global options] command [command options] [arguments...]
48
+
49
+ VERSION
50
+ 0.0.2
51
+
52
+ GLOBAL OPTIONS
53
+ --help - Show this message
54
+ --version - Display the program version
55
+
56
+ COMMANDS
57
+ assets - Manage assets
58
+ bulk_delete - Bulk delete assets with unknown OS
59
+ connect, login - Verify connection to the server
60
+ groups - Manage asset groups
61
+ help - Shows a list of commands or help for one command
62
+ reports - Manage reports
63
+ sites - Manage sites
64
+ ----
72
65
 
73
66
  // List all active scans
74
67
  //
@@ -120,6 +113,46 @@ config:
120
113
  password: password
121
114
  ----
122
115
 
116
+
117
+ == Development
118
+
119
+ Checkout the github repository
120
+
121
+ git clone https://github.com/rhc/nexpose-security-console
122
+
123
+ Access the source code folder directory.
124
+
125
+ $ cd nexpose-security-console
126
+
127
+ Install dependencies
128
+
129
+ bin/setup
130
+
131
+ Run the tests
132
+
133
+ rake test
134
+
135
+ Experiment with the code under development
136
+
137
+ run bin/console
138
+
139
+ Install this gem onto your local machine
140
+
141
+ bundle exec rake install
142
+
143
+ Release a new version
144
+
145
+ gem bump
146
+ gem release
147
+
148
+ == Contributing
149
+
150
+ In the spirit of {uri-freesoftware}[free software],
151
+ _everyone_ is encouraged to help improve this project.
152
+
153
+ If you discover errors or omissions in the source code, documentation, or website content,
154
+ please don’t hesitate to submit an issue or open a pull request with a fix. New contributors are always welcome!
155
+
123
156
  == License
124
157
 
125
158
  The gem is available as open source under the terms of the
data/bin/setup CHANGED
@@ -9,3 +9,5 @@ bundle install
9
9
  bundle exec guard init minitest
10
10
  bundle exec guard init bundler
11
11
  bundle exec guard init cucumber
12
+
13
+ # install phantomjs
data/exe/nsc CHANGED
@@ -4,6 +4,10 @@ require "nexpose-security-console"
4
4
  require 'progress_bar'
5
5
  require 'csv'
6
6
 
7
+ require 'capybara/poltergeist'
8
+ require 'capybara/dsl'
9
+ include Capybara::DSL
10
+ Capybara.default_driver = :poltergeist
7
11
 
8
12
  include GLI::App
9
13
  include NexposeSecurityConsole
@@ -14,18 +18,19 @@ version NexposeSecurityConsole::VERSION
14
18
  subcommand_option_handling :normal
15
19
  arguments :strict
16
20
 
17
- desc 'Manage sites'
18
- arg_name 'Describe arguments to sites here'
19
- command :sites do |c|
20
- c.action do |global_options,options,args|
21
-
22
- # Your command logic here
23
- # If you have any errors, just raise them
24
- # raise "that command made no sense"
25
-
26
- puts "sites command ran"
27
- end
28
- end
21
+ # desc 'Manage sites'
22
+ # arg_name 'Describe arguments to sites here'
23
+ # command :sites do |c|
24
+ # c.action do |global_options,options,args|
25
+ #
26
+ # # Your command logic here
27
+ # # If you have any errors, just raise them
28
+ # # raise "that command made no sense"
29
+ #
30
+ # puts "sites command ran"
31
+ # end
32
+ # end
33
+ #
29
34
 
30
35
  desc 'Verify connection to the server'
31
36
  command [:connect, :login] do |c|
@@ -46,17 +51,16 @@ command [:connect, :login] do |c|
46
51
  end
47
52
  end
48
53
 
49
-
50
- desc 'Manage asset groups'
51
- command :groups do |c|
52
- c.desc 'List asset groups'
53
- c.command :list do |list|
54
- list.action do |global_options,options,args|
55
- puts "list asset groups"
56
- end
57
- end
58
- c.default_command :list
59
- end
54
+ # desc 'Manage asset groups'
55
+ # command :groups do |c|
56
+ # c.desc 'List asset groups'
57
+ # c.command :list do |list|
58
+ # list.action do |global_options,options,args|
59
+ # puts "list asset groups"
60
+ # end
61
+ # end
62
+ # c.default_command :list
63
+ # end
60
64
 
61
65
  desc 'Bulk delete assets with unknown OS'
62
66
  command :bulk_delete do |c|
@@ -66,28 +70,6 @@ command :bulk_delete do |c|
66
70
  puts 'Retrieving all assets with unknown OS'
67
71
  puts 'This may take a while. Be patient ...'
68
72
 
69
- # group_name = 'Unknown OS'
70
- # query = %Q(
71
- # select asset_id from dim_asset_group_asset daga
72
- # join dim_asset_group dag using(asset_group_id)
73
- # where dag.name = '#{group_name}'
74
- # )
75
- #
76
- # puts query
77
- # # assets = nsc.filter(Nexpose::Search::Field::OS, Nexpose::Search::Operator::IS_EMPTY, '')
78
- # puts "Create the report"
79
- # report_config = Nexpose::AdhocReportConfig.new(nil, 'sql')
80
- # report_config.add_filter('version', '2.2.0')
81
- # report_config.add_filter('query', query)
82
- # report_output = report_config.generate(nsc)
83
- #
84
- # devices = CSV.parse(report_output.chomp, { :headers => :first_row })
85
- # puts total = devices.count
86
- # bar = ProgressBar.new(total, :counter, :percentage, :eta)
87
- # devices.each_with_index do |device , index|
88
- # id = device["asset_id"].to_i
89
- # nsc.delete_device(id)
90
- # bar.increment!
91
73
  dag = nsc.asset_groups.find {|group| group.name == 'Unknown OS' }
92
74
  group = Nexpose::AssetGroup.load(nsc, dag.id)
93
75
  total = group.assets.count
@@ -101,7 +83,90 @@ command :bulk_delete do |c|
101
83
  end
102
84
  end
103
85
 
86
+ desc 'Delete assets via web'
87
+ long_desc <<-DESC
88
+ Use this command when you have more than 10_000 assets to be deleted.
89
+ I used it to delete 100_000 assets in less than 30 minutes
90
+ compared to the days required when using the normal Nexpose API.
91
+
92
+ NOTE: This command is very dependent on the web interface
93
+ It may break after Nexpose GUI changes.
94
+
95
+ DESC
96
+ arg_name 'ASSET_GROUP_NAME', default_value: 'Unknown OS'
97
+ command :web_delete do |c|
98
+ c.flag [:d, :delay], arg_name: 'SECONDS', default_value: 25, type: :integer
99
+ c.action do |global_options, options, args|
100
+ host = ENV['NEXPOSE_HOST']
101
+ port = ENV['NEXPOSE_PORT']
102
+ username = ENV['NEXPOSE_USER']
103
+ password = ENV['NEXPOSE_PASSWORD']
104
+ delay = options['delay']
105
+ uri = "https://#{host}:#{port}/login.jsp"
106
+ asset_group_name = args.first
107
+
108
+ Capybara.default_max_wait_time = delay
109
+ loop do
110
+ begin
111
+ visit uri
112
+ rescue
113
+ next
114
+ end
115
+ puts page.title
116
+ if page.has_title?( "Log on to Nexpose" )
117
+ fill_in 'Username', with: username
118
+ fill_in 'Password', with: password
119
+ click_button 'Log on'
120
+ if page.has_title?('Dashboard')
121
+ puts 'Success!'
122
+ else
123
+ puts 'Invalid Login!'
124
+ exit(-1)
125
+ end
126
+ end
127
+ within "#groupSynopsisTable" do
128
+ click_link( asset_group_name)
129
+ puts page.title
130
+ end
131
+
132
+ # raise "Sorry, I cannot found an asset group named '#{asset_group_name}'"
133
+ txt = find(".showingPage > .yui-pg-current").text
134
+ if txt =~ /\d+ to \d+ of (\d+)/
135
+ total ||= $1
136
+ end
137
+
138
+ previous = total.to_i
139
+ bar ||= ProgressBar.new(total.to_i, :counter, :percentage, :eta)
140
+
141
+ loop do
142
+ puts 'step 1: Check the group asset '
143
+ find("#selectImage-group-assets").trigger(:click)
144
+ puts 'step 2: Select all visible assets'
145
+ find("#selectVisible-group-assets").trigger(:click)
146
+ puts 'step 3: click the DELETE ASSETS button '
147
+ find("#tableButtons-group-assets > #deleteAssetsBtn-group-assets").trigger(:click)
148
+ puts 'step 4: Click the YES button'
149
+ click_button 'Yes'
150
+ sleep 10
151
+
152
+ txt = find(".showingPage > .yui-pg-current").text
153
+ if txt =~ /\d+ to \d+ of (\d+)/
154
+ records = $1.to_i
155
+ end
156
+ current = records
157
+ exit if current == 0
158
+ bar.increment!(previous - current)
159
+ puts "Number of Assets: #{records}"
160
+ if current == previous
161
+ sleep 25
162
+ break
163
+ end
164
+ previous = current
165
+ end
104
166
 
167
+ end
168
+ end
169
+ end
105
170
 
106
171
  desc 'Manage assets'
107
172
  arg_name 'Describe arguments to assets here'
@@ -17,7 +17,6 @@ module NexposeSecurityConsole
17
17
  def self.credentials
18
18
  end
19
19
 
20
-
21
20
  # login with credential values stored in the ENV variables
22
21
  def self.login
23
22
  Dotenv.load
@@ -1,3 +1,3 @@
1
1
  module NexposeSecurityConsole
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -12,19 +12,17 @@ Gem::Specification.new do |spec|
12
12
  spec.summary = 'Command line utility to interact with the Nexpose Security Console '
13
13
  spec.description = <<-DESC
14
14
  For security engineers
15
- Who needs to interact with a Rapid7 Nexpose Security console
16
- The nexpose-security-console gem is a Git like command line utility
17
- That provides the ability to:
15
+ Who need to interact with a Rapid7 Nexpose Security console
16
+ The nexpose-security-console gem is a command line utility
17
+ that manages (e.g. create, read, update, and delete) the following entities:
18
+ - sites,
19
+ - scans,
20
+ - assets,
21
+ - asset groups,
22
+ - reports,
23
+ - vulnerabilities
24
+ - etc...
18
25
 
19
- - create a new site,
20
- - add an IP to the site,
21
- - perform a scan against the site using a defined/passed scan template,
22
- - produce a reports for vulnerabilitie0s, installed software, and policy compliance.
23
- - to delete in bulk more than 1000 assets in a given site
24
- - etc
25
-
26
- Unlike the Nexposecli gem and other alternatives,
27
- nexpose-security-console is designed as command suite a la GIT
28
26
  DESC
29
27
 
30
28
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
@@ -43,7 +41,7 @@ Gem::Specification.new do |spec|
43
41
  spec.require_paths << 'lib'
44
42
 
45
43
  spec.has_rdoc = true
46
- spec.extra_rdoc_files = ['README.rdoc','nexpose-security-console.rdoc']
44
+ # spec.extra_rdoc_files = ['README.rdoc','nexpose-security-console.rdoc']
47
45
  spec.rdoc_options << '--title' << 'nexpose-security-console' << '--main' << 'README.rdoc' << '-ri'
48
46
 
49
47
  spec.add_development_dependency 'bundler'
@@ -66,5 +64,7 @@ Gem::Specification.new do |spec|
66
64
  spec.add_dependency 'nexpose'
67
65
  spec.add_dependency 'dotenv'
68
66
  spec.add_dependency 'progress_bar'
67
+ spec.add_dependency 'capybara'
68
+ spec.add_dependency 'poltergeist'
69
69
 
70
70
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexpose-security-console
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christian Kyony
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-13 00:00:00.000000000 Z
11
+ date: 2017-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -262,29 +262,53 @@ dependencies:
262
262
  - - ">="
263
263
  - !ruby/object:Gem::Version
264
264
  version: '0'
265
- description: |2
265
+ - !ruby/object:Gem::Dependency
266
+ name: capybara
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: poltergeist
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :runtime
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ description: |2+
266
294
  For security engineers
267
- Who needs to interact with a Rapid7 Nexpose Security console
268
- The nexpose-security-console gem is a Git like command line utility
269
- That provides the ability to:
270
-
271
- - create a new site,
272
- - add an IP to the site,
273
- - perform a scan against the site using a defined/passed scan template,
274
- - produce a reports for vulnerabilitie0s, installed software, and policy compliance.
275
- - to delete in bulk more than 1000 assets in a given site
276
- - etc
295
+ Who need to interact with a Rapid7 Nexpose Security console
296
+ The nexpose-security-console gem is a command line utility
297
+ that manages (e.g. create, read, update, and delete) the following entities:
298
+ - sites,
299
+ - scans,
300
+ - assets,
301
+ - asset groups,
302
+ - reports,
303
+ - vulnerabilities
304
+ - etc...
277
305
 
278
- Unlike the Nexposecli gem and other alternatives,
279
- nexpose-security-console is designed as command suite a la GIT
280
306
  email:
281
307
  - ckyony@changamuka.com
282
308
  executables:
283
309
  - nsc
284
310
  extensions: []
285
- extra_rdoc_files:
286
- - README.rdoc
287
- - nexpose-security-console.rdoc
311
+ extra_rdoc_files: []
288
312
  files:
289
313
  - ".byebug_history"
290
314
  - ".gitignore"
@@ -292,7 +316,6 @@ files:
292
316
  - Gemfile.lock
293
317
  - Guardfile
294
318
  - README.adoc
295
- - README.rdoc
296
319
  - Rakefile
297
320
  - bin/console
298
321
  - bin/setup
@@ -331,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
331
354
  version: '0'
332
355
  requirements: []
333
356
  rubyforge_project:
334
- rubygems_version: 2.5.1
357
+ rubygems_version: 2.6.11
335
358
  signing_key:
336
359
  specification_version: 4
337
360
  summary: Command line utility to interact with the Nexpose Security Console
data/README.rdoc DELETED
@@ -1,6 +0,0 @@
1
- = nexpose-security-console
2
-
3
- Describe your project here
4
-
5
- :include:nexpose-security-console.rdoc
6
-