pwn 0.4.428 → 0.4.429

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
  SHA256:
3
- metadata.gz: d9bd0dc9709e3043fbe7ad675ff346e3b40d669cfea819738d80f55ab4eed27f
4
- data.tar.gz: 3ec835eac8f1a6844497636822ad604eb5c344859499af7d423db16fc358b2f9
3
+ metadata.gz: 101c2b7768232bb1ffc67b7304cd58d8d1968fd2549958dadd8d1fbfc79b9ac1
4
+ data.tar.gz: 3a56e33451f7bf6868a2dbe124ae1c6cb9a03389a5af7dea8e1c567d46081fb2
5
5
  SHA512:
6
- metadata.gz: c27de53fb91911f8310b32039391636fa8be67325c4a5bbb20b12ae7d7a43965c62bdbfbb685fa9740b6d7a8d362582eda1517133d41369092940ba64aad0ce2
7
- data.tar.gz: 5c00306225bc215c7117a3ed4163f763a76818b7ec2d557e6d44c416766dde6396dd1ce032c2260cf20cf7af245f6e01a4018fd9d6c47ad60b00e8f594399b95
6
+ metadata.gz: 54c49f48521be56ba68642530ed280253a6835acbab991ee6bf9560e9912e103f34d17127be3dc4a27dcbddc03c426118705d2e4428d6753760a58d449f9f3ac
7
+ data.tar.gz: 5f05900cb509d463f888852ea36a3c40a36d360912009c4c476a1deae04049e35e825aa5d75fc6c2afa22f9887a54a320f5108df5e424e3de84267c8acd6cb17
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ rvm use ruby-3.1.2@pwn
37
37
  $ rvm list gemsets
38
38
  $ gem install --verbose pwn
39
39
  $ pwn
40
- pwn[v0.4.428]:001 >>> PWN.help
40
+ pwn[v0.4.429]:001 >>> PWN.help
41
41
  ```
42
42
 
43
43
  [![Installing the pwn Security Automation Framework](https://raw.githubusercontent.com/0dayInc/pwn/master/documentation/pwn_install.png)](https://youtu.be/G7iLUY4FzsI)
@@ -52,7 +52,7 @@ $ rvm use ruby-3.1.2@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.4.428]:001 >>> PWN.help
55
+ pwn[v0.4.429]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -19,12 +19,32 @@ OptionParser.new do |options|
19
19
  opts[:scan_name] = n
20
20
  end
21
21
 
22
+ options.on('-tVALUE', '--scan-template=VALUE', '<Optional - Canned Scan Template to Use for Scan Creation (Defaults to "Basic Network Scan">') do |t|
23
+ opts[:scan_template] = t
24
+ end
25
+
22
26
  options.on('-pPOLICY', '--policy-name=POLICY', '<Optional - Policy to Use to Create the Scan (Defaults to "")>') do |p|
23
27
  opts[:policy_name] = p
24
28
  end
25
29
 
26
- options.on('-tVALUE', '--scan-template=VALUE', '<Optional - Canned Scan Template to Use for Scan Creation (Defaults to "Basic Network Scan">') do |t|
27
- opts[:scan_template] = t
30
+ options.on('-fFOLDER', '--folder-name=FOLDER', '<Optional - Where to Store the Scan (Defaults to "main")>') do |f|
31
+ opts[:folder_name] = f
32
+ end
33
+
34
+ options.on('-sSCANNER', '--scanner=SCANNER', '<Optional - Scanner to Use (Defaults to "AUTO-ROUTED")>') do |s|
35
+ opts[:scanner] = s
36
+ end
37
+
38
+ options.on('-nTARGET', '--target-network=TARGET', '<Optional if --scanner other than AUTO-ROUTED, Otherwise Required - Network to Scan (Defaults to "default-network")>') do |n|
39
+ opts[:target_network] = n
40
+ end
41
+
42
+ options.on('-lWHEN', '--launch=WHEN', '<Optional When to Launch Scan - ON_DEMAND || DAILY || WEEKLY || MONTHLY || YEARLY (Defaults to "ON_DEMAND")>') do |l|
43
+ opts[:launch] = l
44
+ end
45
+
46
+ options.on('-wTIME', '--scan-time-window=TIME', '<Optional Scan Time Window in Minutes - (Defaults to 0 if nessus scanner scan || 180 if nessus agent scan)>') do |l|
47
+ opts[:launch] = l
28
48
  end
29
49
  end.parse!
30
50
 
@@ -48,22 +68,32 @@ begin
48
68
 
49
69
  scan_name = opts[:scan_name]
50
70
 
71
+ scan_template = opts[:scan_template]
72
+ scan_template ||= 'Basic Network Scan'
73
+
51
74
  policy_name = opts[:policy_name]
52
75
  policy_name ||= ''
53
76
 
54
- scan_template = opts[:scan_template]
55
- scan_template ||= 'Basic Network Scan'
77
+ folder_name = opts[:folder_name]
78
+ folder_name ||= 'main'
79
+
80
+ scanner = opts[:scanner]
81
+ scanner ||= 'AUTO-ROUTED'
82
+
83
+ target_network = opts[:target_network]
84
+ target_network ||= '00000000-0000-0000-0000-000000000000'
85
+ target_network = '00000000-0000-0000-0000-000000000000' if target_network == 'default-network'
86
+
87
+ launch = opts[:launch]
88
+ launch ||= 'ON_DEMAND'
89
+
90
+ scan_time_window = opts[:scan_time_window]
56
91
 
57
92
  nessus_obj = PWN::Plugins::NessusCloud.login(
58
93
  access_key: access_key,
59
94
  secret_key: secret_key
60
95
  )
61
96
 
62
- policy_list = PWN::Plugins::NessusCloud.get_policies(
63
- nessus_obj: nessus_obj
64
- )
65
- puts policy_list.inspect
66
-
67
97
  scan_template_list = PWN::Plugins::NessusCloud.get_canned_scan_templates(
68
98
  nessus_obj: nessus_obj
69
99
  )
@@ -74,6 +104,25 @@ begin
74
104
 
75
105
  scan_template_id = selected_scan_template.first[:uuid]
76
106
 
107
+ policy_list = PWN::Plugins::NessusCloud.get_policies(
108
+ nessus_obj: nessus_obj
109
+ )
110
+ puts policy_list.inspect
111
+
112
+ folder_list = PWN::Plugins::NessusCloud.get_folders(
113
+ nessus_obj: nessus_obj
114
+ )
115
+ puts folder_list.inspect
116
+
117
+ scanner_list = PWN::Plugins::NessusCloud.get_scanners(
118
+ nessus_obj: nessus_obj
119
+ )
120
+ puts scanner_list.inspect
121
+
122
+ target_network_list = PWN::Plugins::NessusCloud.get_target_networks(
123
+ nessus_obj: nessus_obj
124
+ )
125
+ puts target_network_list.inspect
77
126
  rescue Interrupt
78
127
  puts 'CTRL+C detected...goodbye.'
79
128
  rescue StandardError => e
@@ -129,7 +129,7 @@ module PWN
129
129
  end
130
130
 
131
131
  # Supported Method Parameters::
132
- # PWN::Plugins::NessusCloud.get_policies(
132
+ # PWN::Plugins::NessusCloud.get_folders(
133
133
  # nessus_obj: 'required - nessus_obj returned from #login method'
134
134
  # )
135
135
 
@@ -146,6 +146,42 @@ module PWN
146
146
  raise e
147
147
  end
148
148
 
149
+ # Supported Method Parameters::
150
+ # PWN::Plugins::NessusCloud.get_scanners(
151
+ # nessus_obj: 'required - nessus_obj returned from #login method'
152
+ # )
153
+
154
+ public_class_method def self.get_scanners(opts = {})
155
+ nessus_obj = opts[:nessus_obj]
156
+
157
+ scan_templates_resp = nessus_cloud_rest_call(
158
+ nessus_obj: nessus_obj,
159
+ rest_call: 'scanners'
160
+ ).body
161
+
162
+ JSON.parse(scan_templates_resp, symbolize_names: true)
163
+ rescue StandardError, SystemExit, Interrupt => e
164
+ raise e
165
+ end
166
+
167
+ # Supported Method Parameters::
168
+ # PWN::Plugins::NessusCloud.get_target_networks(
169
+ # nessus_obj: 'required - nessus_obj returned from #login method'
170
+ # )
171
+
172
+ public_class_method def self.get_target_networks(opts = {})
173
+ nessus_obj = opts[:nessus_obj]
174
+
175
+ scan_templates_resp = nessus_cloud_rest_call(
176
+ nessus_obj: nessus_obj,
177
+ rest_call: 'networks'
178
+ ).body
179
+
180
+ JSON.parse(scan_templates_resp, symbolize_names: true)
181
+ rescue StandardError, SystemExit, Interrupt => e
182
+ raise e
183
+ end
184
+
149
185
  # Supported Method Parameters::
150
186
  # PWN::Plugins::NessusCloud.get_scans(
151
187
  # nessus_obj: 'required - nessus_obj returned from #login method'
@@ -349,6 +385,14 @@ module PWN
349
385
  nessus_obj: 'required - nessus_obj returned from #login method'
350
386
  )
351
387
 
388
+ #{self}.get_scanners(
389
+ nessus_obj: 'required - nessus_obj returned from #login method'
390
+ )
391
+
392
+ #{self}.get_target_networks(
393
+ nessus_obj: 'required - nessus_obj returned from #login method'
394
+ )
395
+
352
396
  #{self}.get_scans(
353
397
  nessus_obj: 'required - nessus_obj returned from #login method'
354
398
  )
data/lib/pwn/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PWN
4
- VERSION = '0.4.428'
4
+ VERSION = '0.4.429'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.428
4
+ version: 0.4.429
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.