pwn 0.4.434 → 0.4.437

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
  SHA256:
3
- metadata.gz: 7c57efc5654de9b5ffcab0dcd7221626c765fd018c92a602762e5a60f2e66b7c
4
- data.tar.gz: ec004b5c260189b9040d1ac52361e544f70ab59fc337f0cb26b6c07ba703fbb1
3
+ metadata.gz: f220a459e04c5fcc8ac36203f16e53b09ee7d1449e26fa7875b9f7556b1a7ced
4
+ data.tar.gz: 1f1cc564d106d5938daaa78e3bd24b539a1d1d72c2cb7b34a285876db1239ccd
5
5
  SHA512:
6
- metadata.gz: 8aceb5eb4c2a8cd6b63a2ef47767736aa662fec32967a667438dc88c8e56dae7c3c2e5ff3dd129c16dc889d67ad75d85067da05735e03d362c9048c0fdccc223
7
- data.tar.gz: d2b86e170fd102fa82c5d0c10c8fbc94e0e8d79ac037ba7c1ecaac2ad6a9af1f813285c4cb970588c79378c7544889ff1d6876595bd0c4da1641bf249e832ef9
6
+ metadata.gz: 44fe1d205b902cda0678807efaf7af11bf79aef43a2c464fdcd2779ae091a2304aa4f77f32cf351f274fffce1243156e31539fea268903c97ca2c02774703f5a
7
+ data.tar.gz: 97889b333295b20f3d5210c81c624197567422ad787ba35a6536d2ca5136f564ba30516c28ed77d3e5caac33a22d5c596abdcc6670e2f8216347c8069f03f7b0
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.434]:001 >>> PWN.help
40
+ pwn[v0.4.437]: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.434]:001 >>> PWN.help
55
+ pwn[v0.4.437]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -70,6 +70,10 @@ OptionParser.new do |options|
70
70
  options.on('-zTIMEZONE', '--timezone=TIMEZONE', '<Optional - Timezone of the scheduled start time for the scan - (Defaults to "UTC")>') do |t|
71
71
  opts[:timezone] = t
72
72
  end
73
+
74
+ options.on('-gGROUPS', '--target-groups=GROUPS', '<Optional - Comma-delimited list of target group IDs to scan>') do |t|
75
+ opts[:timezone] = t
76
+ end
73
77
  end.parse!
74
78
 
75
79
  if opts.empty?
@@ -79,6 +83,7 @@ end
79
83
 
80
84
  begin
81
85
  # Get Options Passed to pwn_nessus_cloud_create_scan
86
+ # Required Arguments
82
87
  yaml_config = opts[:yaml_config]
83
88
 
84
89
  raise "YAML Config Not Found: #{yaml_config}" unless File.exist?(yaml_config)
@@ -92,6 +97,11 @@ begin
92
97
  secret_key = yaml[:secret_key]
93
98
 
94
99
  scan_name = opts[:scan_name]
100
+
101
+ text_targets = opts[:text_targets]
102
+ raise 'ERROR: --text-targets (i.e. List of targets to scan) is required.' unless text_targets
103
+
104
+ # Optional Arguments
95
105
  scan_desc = opts[:scan_desc]
96
106
 
97
107
  scan_template = opts[:scan_template]
@@ -130,15 +140,13 @@ begin
130
140
  timezone = opts[:timezone]
131
141
  timezone ||= 'UTC'
132
142
 
133
- text_targets = opts[:text_targets]
134
- raise 'ERROR: --text-targets (i.e. List of targets to scan) is required.' unless text_targets
135
-
136
143
  target_groups = opts[:target_groups]
137
144
 
138
145
  file_targets = opts[:file_targets]
139
146
 
140
147
  tag_targets = opts[:tag_targets]
141
- tag_targets_arr = tag_targets.split(',')
148
+ tag_targets_arr = []
149
+ tag_targets_arr = tag_targets.split(',') if tag_targets
142
150
 
143
151
  agent_group_name = opts[:agent_group_name]
144
152
  agent_group_id_arr = []
@@ -199,7 +207,7 @@ begin
199
207
  # Part 2: Populate settings object from options passed to driver
200
208
  settings = {}
201
209
  settings[:name] = scan_name
202
- settings[:description] = scan_desc
210
+ settings[:description] = scan_desc if scan_desc
203
211
 
204
212
  policy = PWN::Plugins::NessusCloud.get_policies(
205
213
  nessus_obj: nessus_obj,
@@ -239,27 +247,28 @@ begin
239
247
 
240
248
  settings[:text_targets] = text_targets
241
249
 
242
- settings[:target_groups] = target_groups
250
+ # Example array on https://developer.tenable.com/reference/scans-create is really just a string.
251
+ settings[:target_groups] = "[#{target_groups}]" if target_groups
243
252
 
244
- settings[:file_targets] = file_targets
253
+ settings[:file_targets] = file_targets if file_targets
245
254
 
246
- settings[:tag_targets] = tag_targets_arr
255
+ settings[:tag_targets] = tag_targets_arr if tag_targets_arr
247
256
 
248
- settings[:agent_group_id] = agent_group_id_arr
257
+ settings[:agent_group_id] = agent_group_id_arr if agent_group_id_arr.any?
249
258
 
250
- settings[:agent_scan_launch_type] = agent_scan_launch_type
259
+ settings[:agent_scan_launch_type] = agent_scan_launch_type if agent_scan_launch_type
251
260
 
252
- settings[:triggers] = triggers_arr
261
+ settings[:triggers] = triggers_arr if triggers_arr.any?
253
262
 
254
- settings[:emails] = emails
263
+ settings[:emails] = emails if emails
255
264
 
256
- settings[:acls] = acls
265
+ settings[:acls] = acls if acls
257
266
 
258
267
  # Part 3: Populate credentials object from YAML config (optional)
259
- credentials = yaml[:credentials]
268
+ credentials = yaml[:credentials] if yaml[:credentials]
260
269
 
261
270
  # Part 4: Populate plugins object from YAML config (optional)
262
- plugins = yaml[:plugins]
271
+ plugins = yaml[:plugins] if yaml[:plugins]
263
272
 
264
273
  create_scan_resp = PWN::Plugins::NessusCloud.create_scan(
265
274
  nessus_obj: nessus_obj,
@@ -358,12 +358,17 @@ module PWN
358
358
 
359
359
  public_class_method def self.create_scan(opts = {})
360
360
  nessus_obj = opts[:nessus_obj]
361
+ uuid = opts[:scan_template_uuid]
362
+ settings = opts[:settings]
363
+ credentials = opts[:credentials]
364
+ plugins = opts[:plugins]
361
365
 
362
- http_body = {}
363
- http_body[:uuid] = opts[:scan_template_uuid]
364
- http_body[:settings] = opts[:settings]
365
- http_body[:credentials] = opts[:credentials]
366
- http_body[:plugins] = opts[:plugins]
366
+ http_body = {
367
+ uuid: uuid,
368
+ settings: settings,
369
+ credentials: credentials,
370
+ plugins: plugins
371
+ }.to_json
367
372
 
368
373
  create_scan_resp = nessus_cloud_rest_call(
369
374
  http_method: :post,
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.434'
4
+ VERSION = '0.4.437'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.434
4
+ version: 0.4.437
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2022-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport