nexposecli 0.2.2 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 32679195424a83f6b44efeca2e90d924d7c4fc87
4
- data.tar.gz: 8dbe421c0b1e50ced40c6c2f9fbf15a64b9c8013
3
+ metadata.gz: 71e0ff1d5349522c0af200b465da46429d4790b6
4
+ data.tar.gz: e9d0d3467cfc8bcaafeb034f7f7484ba8f2cae71
5
5
  SHA512:
6
- metadata.gz: cc58cf7f660a44fff37f18522745a13927c6e1fad89254e5dafdbdc31129b6840cee42cd1338b3acef8cfe04999346f42db4cf704e5a95749afb593d8fab5257
7
- data.tar.gz: 7c57f719981fce6ed6de548081bbf40c00adfdf779c5d91e485ef67fdb2513c9c61ddb180aefcc671b62dae0b5ce97f27639421eb958a75ba8688304d04d01ec
6
+ metadata.gz: 50fab0be43a770c53be083afa71490014dacb1f56ea88ce4b70d858ee9ef7652597c222fa0b5127ca284a3bbcfe9926a2a02c21163546ded47daa0ac197c31be
7
+ data.tar.gz: 9ea66667ba4f8522a72b9d685fc304b910be87277d8d605173da204c74abd0b4d51ed340cbcbdb6c7b93905ecbc519f069d6708eea9afd15a77c7dbf1652f4eb
data/bin/nexposecli CHANGED
@@ -56,7 +56,7 @@ max_scan_task_attempts = 3
56
56
  def uputs( facility, ulog )
57
57
  # add string validation
58
58
  @logger.info( @nsc_server + "," + @evm_reqid + " [" + facility.to_s + "] " + ulog.to_s)
59
- if $debug
59
+ if $debug || (facility.to_s == "BAIL")
60
60
  puts "[" + facility.to_s + "]" + ulog.to_s
61
61
  end
62
62
  end
@@ -415,24 +415,44 @@ when 1 # TARGET USER
415
415
  puts "The user: #{user.name} was created with id: #{user.id}"
416
416
  uputs("USER", "New user created: #{user.name} (id:#{user.id})")
417
417
  upp user
418
- when 2 # list
418
+ when 2, 4 # list, show
419
419
  uputs("ACTION", 'list USER action requested')
420
420
  user_listing = @nsc.list_users
421
421
  puts "Users:"
422
- puts " - " + '%-6.6s' % 'Admin?' + " " + '%-15.15s' % 'Username' + " " + '%-25.25s' % 'Full Name' + " " + '%-30.30s' % 'Email' + " " + '%-25.25s' % "Role" + "\tAuth Module:Source"
422
+ puts " - " + '%-5.5s' % 'Id' + " " + '%-6.6s' % 'Admin?' + " " + '%-15.15s' % 'Username' + " " + '%-25.25s' % 'Full Name' + " " + '%-30.30s' % 'Email' + " " + '%-25.25s' % "Role" + "\tAuth Module:Source"
423
423
  user_listing.each do |user|
424
424
  role = Nexpose::User.load(@nsc, user.id).role_name
425
- puts " - " + '%-6.6s' % user.is_admin.to_s + " " + '%-15.15s' % user.name + " " + '%-25.25s' % user.full_name + " " + '%-30.30s' % user.email + " " + '%-25.25s' % role + "\t#{user.auth_module}:#{user.auth_source}"
425
+ if (@action == 4) && (!args.id.to_str.eql? user.name.to_s)
426
+ next
427
+ end
428
+ puts " - " + '%-5.5s' % user.id + " " + '%-6.6s' % user.is_admin.to_s + " " + '%-15.15s' % user.name + " " + '%-25.25s' % user.full_name + " " + '%-30.30s' % user.email + " " + '%-25.25s' % role + "\t#{user.auth_module}:#{user.auth_source}"
426
429
  end
427
430
  upp user_listing
428
- when 4 # show
429
- uputs("ACTION", 'show USER action requested')
430
- userid = args.id.to_str
431
- user = Nexpose::User.load(@nsc, userid)
432
- pp user
431
+ # when 4 # show
432
+ # uputs("ACTION", 'show USER action requested')
433
+ # userid = args.id.to_str
434
+ # user = Nexpose::User.load(@nsc, userid)
435
+ # pp user
433
436
  when 8 # update
434
437
  uputs("ACTION", 'update USER action requested')
435
- puts 'Not yet implemented'
438
+ userid = args.id.to_str
439
+ user = Nexpose::User.load(@nsc, userid)
440
+ if args.authsrc
441
+ user.authsrcid = args.authsrc
442
+ user.password = nil
443
+ end
444
+ if args.password
445
+ user.password = "#{args.password}"
446
+ end
447
+
448
+ # Begin User save attempt
449
+ begin
450
+ user.save(@nsc)
451
+ rescue Nexpose::APIError => e
452
+ STDERR.puts "ERROR [ #{e.to_s} ]"
453
+ exit(-1)
454
+ end
455
+ puts "User #{user.name} has been updated. Run a --show --USER --id <id> to confirm."
436
456
  when 16 # delete
437
457
  uputs("ACTION", 'delete USER action requested')
438
458
  puts 'Not yet implemented'
@@ -912,6 +932,16 @@ when 8 # TARGET SCAN
912
932
  end
913
933
  when 2 # list
914
934
  uputs("SCAN", 'list SCAN action requested')
935
+ # EJG
936
+ scans = @nsc.past_scans(args.id.to_i)
937
+ puts "Requested: nsc.past_scans(#{args.id}), but past scans length is: #{scans.length}"
938
+ puts "Past Scans:"
939
+ scans.each do |scan|
940
+ puts " - " + '%-6.6s' % scan.id + " " + '%-15.15s' % scan.engine_name + " " + '%-30.30s' % scan.end_time + " " + '%-25.25s' % scan.status
941
+ end
942
+ exit(0)
943
+
944
+ # EJG
915
945
  scan_activity = scan_activity()
916
946
  upp scan_activity
917
947
  if scan_activity.length > 0
@@ -1640,6 +1670,14 @@ when 16384 # TARGET QUERY
1640
1670
  sql_config = Nexpose::AdhocReportConfig.new(nil, 'sql')
1641
1671
  sql_config.add_filter('version', '2.0.1')
1642
1672
  sql_config.add_filter('query', sql)
1673
+ # EJG
1674
+ if args.filter
1675
+ if ['site','group','device','scan','vuln-categories','vuln-severity','vuln-status'].include?(args.filter)
1676
+ sql_config.add_filter(args.filter, args.filterv)
1677
+ else
1678
+ ubail(-1, "The report filter type passed is not valid")
1679
+ end
1680
+ end
1643
1681
 
1644
1682
  if args.timeout
1645
1683
  rpt_to = args.timeout.to_int
@@ -118,6 +118,10 @@ module Nexposecli
118
118
  desc : The target port to be acted upon by the action
119
119
  required : true
120
120
 
121
+ - name : password
122
+ desc : The target password
123
+ required : true
124
+
121
125
  - name : authsrc
122
126
  desc : The target authsrc id
123
127
  required : true
@@ -1,3 +1,3 @@
1
1
  module Nexposecli
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.5"
3
3
  end
data/nexposecli.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.required_ruby_version = '>= 2.1'
21
- spec.add_runtime_dependency "nexpose", '~> 4.0', '>= 4.0.4'
21
+ spec.add_runtime_dependency "nexpose", '>= 4.0.4'
22
22
  spec.add_runtime_dependency "netaddr", '~> 1.5', '>= 1.5.1'
23
23
  spec.add_runtime_dependency "net-ldap", '~> 0.14', '>= 0.14.0'
24
24
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nexposecli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Gomez
@@ -9,15 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-06-21 00:00:00.000000000 Z
12
+ date: 2016-10-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nexpose
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '4.0'
21
18
  - - ">="
22
19
  - !ruby/object:Gem::Version
23
20
  version: 4.0.4
@@ -25,9 +22,6 @@ dependencies:
25
22
  prerelease: false
26
23
  version_requirements: !ruby/object:Gem::Requirement
27
24
  requirements:
28
- - - "~>"
29
- - !ruby/object:Gem::Version
30
- version: '4.0'
31
25
  - - ">="
32
26
  - !ruby/object:Gem::Version
33
27
  version: 4.0.4
@@ -131,7 +125,6 @@ files:
131
125
  - Rakefile
132
126
  - bin/console
133
127
  - bin/nexposecli
134
- - bin/nexposecli.test
135
128
  - bin/setup
136
129
  - lib/nexposecli.rb
137
130
  - lib/nexposecli/argparse.rb
@@ -163,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
156
  version: '0'
164
157
  requirements: []
165
158
  rubyforge_project:
166
- rubygems_version: 2.5.1
159
+ rubygems_version: 2.6.6
167
160
  signing_key:
168
161
  specification_version: 4
169
162
  summary: Ruby command-line utility for Rapid7 Nexpose
data/bin/nexposecli.test DELETED
@@ -1,15 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'nexposecli'
4
-
5
- # chatter = Nexposecli::Chatter.new
6
- # chatter.say_hello
7
-
8
- # nxclass = Nexposecli::Target.const_get("Role")
9
- nxclass = Nexposecli::Target.const_get("#{ARGV[0]}")
10
-
11
- puts nxclass.new.list
12
- puts "and again but via const_get for method"
13
- puts nxclass.new.method("list").call("me")
14
- puts nxclass.new.method("list").call
15
- puts nxclass.new.method("list").call("Sarah")