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 +4 -4
- data/README.md +2 -2
- data/bin/pwn_nessus_cloud_create_scan +24 -15
- data/lib/pwn/plugins/nessus_cloud.rb +10 -5
- data/lib/pwn/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f220a459e04c5fcc8ac36203f16e53b09ee7d1449e26fa7875b9f7556b1a7ced
|
4
|
+
data.tar.gz: 1f1cc564d106d5938daaa78e3bd24b539a1d1d72c2cb7b34a285876db1239ccd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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 =
|
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
|
-
|
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
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
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
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.
|
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-
|
11
|
+
date: 2022-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|