pwn 0.4.426 → 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: c040740347b6c2375346fb115355031199992c5f02263428cd756440fd7dbc12
4
- data.tar.gz: 3f8ca5c17fdaec78f73a144de847b5d57b69577b2b706068a48bd27479aaa60a
3
+ metadata.gz: 101c2b7768232bb1ffc67b7304cd58d8d1968fd2549958dadd8d1fbfc79b9ac1
4
+ data.tar.gz: 3a56e33451f7bf6868a2dbe124ae1c6cb9a03389a5af7dea8e1c567d46081fb2
5
5
  SHA512:
6
- metadata.gz: 27f3bdb7886d993e395827ce5ccc36d8caad53fbf369b0f62f35b50d95a5cb85af7e7c6d12f0424ab8e33d92db3a2382268269016ac928e4081239c319f7f323
7
- data.tar.gz: 1fbb164ede263fea348c824c522ae22ced698afca0ccbead95bf2a77d38e38f73b033e637ff191b56d991d4498feadd5f558584fd9b278fc3e43071c31f1a68c
6
+ metadata.gz: 54c49f48521be56ba68642530ed280253a6835acbab991ee6bf9560e9912e103f34d17127be3dc4a27dcbddc03c426118705d2e4428d6753760a58d449f9f3ac
7
+ data.tar.gz: 5f05900cb509d463f888852ea36a3c40a36d360912009c4c476a1deae04049e35e825aa5d75fc6c2afa22f9887a54a320f5108df5e424e3de84267c8acd6cb17
data/Gemfile CHANGED
@@ -61,7 +61,7 @@ gem 'rspec', '3.11.0'
61
61
  gem 'rtesseract', '3.1.2'
62
62
  gem 'rubocop', '1.29.1'
63
63
  gem 'rubocop-rake', '0.6.0'
64
- gem 'rubocop-rspec', '2.10.0'
64
+ gem 'rubocop-rspec', '2.11.0'
65
65
  gem 'ruby-audio', '1.6.1'
66
66
  gem 'ruby-nmap', '0.10.0'
67
67
  gem 'ruby-saml', '1.14.0'
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.426]: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.426]:001 >>> PWN.help
55
+ pwn[v0.4.429]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -15,8 +15,36 @@ OptionParser.new do |options|
15
15
  opts[:yaml_config] = c
16
16
  end
17
17
 
18
- options.on('-nVALUE', '--scan-template-name=VALUE', '<Optional - Name of Canned Scan Template to Use for Scan Creation (Defaults to "Basic Network Scan">') do |n|
19
- opts[:scan_template_name] = n
18
+ options.on('-nNAME', '--scan-name=NAME', '<Required - YAML Name of Scan to Create>') do |n|
19
+ opts[:scan_name] = n
20
+ end
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
+
26
+ options.on('-pPOLICY', '--policy-name=POLICY', '<Optional - Policy to Use to Create the Scan (Defaults to "")>') do |p|
27
+ opts[:policy_name] = p
28
+ end
29
+
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
20
48
  end
21
49
  end.parse!
22
50
 
@@ -38,8 +66,28 @@ begin
38
66
  access_key = yaml[:access_key]
39
67
  secret_key = yaml[:secret_key]
40
68
 
41
- scan_template_name = opts[:scan_template_name]
42
- scan_template_name ||= 'Basic Network Scan'
69
+ scan_name = opts[:scan_name]
70
+
71
+ scan_template = opts[:scan_template]
72
+ scan_template ||= 'Basic Network Scan'
73
+
74
+ policy_name = opts[:policy_name]
75
+ policy_name ||= ''
76
+
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]
43
91
 
44
92
  nessus_obj = PWN::Plugins::NessusCloud.login(
45
93
  access_key: access_key,
@@ -50,14 +98,31 @@ begin
50
98
  nessus_obj: nessus_obj
51
99
  )
52
100
 
53
- puts scan_template_list.inspect
54
- selected_scan_template = scan_template_list[:templates].select do |scan_template|
55
- scan_template[:title] == scan_template_name
101
+ selected_scan_template = scan_template_list[:templates].select do |sc|
102
+ sc[:title] == scan_template
56
103
  end
57
- puts selected_scan_template.inspect
58
104
 
59
105
  scan_template_id = selected_scan_template.first[:uuid]
60
- puts scan_template_id
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
61
126
  rescue Interrupt
62
127
  puts 'CTRL+C detected...goodbye.'
63
128
  rescue StandardError => e
@@ -110,6 +110,78 @@ module PWN
110
110
  raise e
111
111
  end
112
112
 
113
+ # Supported Method Parameters::
114
+ # PWN::Plugins::NessusCloud.get_policies(
115
+ # nessus_obj: 'required - nessus_obj returned from #login method'
116
+ # )
117
+
118
+ public_class_method def self.get_policies(opts = {})
119
+ nessus_obj = opts[:nessus_obj]
120
+
121
+ scan_templates_resp = nessus_cloud_rest_call(
122
+ nessus_obj: nessus_obj,
123
+ rest_call: 'policies'
124
+ ).body
125
+
126
+ JSON.parse(scan_templates_resp, symbolize_names: true)
127
+ rescue StandardError, SystemExit, Interrupt => e
128
+ raise e
129
+ end
130
+
131
+ # Supported Method Parameters::
132
+ # PWN::Plugins::NessusCloud.get_folders(
133
+ # nessus_obj: 'required - nessus_obj returned from #login method'
134
+ # )
135
+
136
+ public_class_method def self.get_folders(opts = {})
137
+ nessus_obj = opts[:nessus_obj]
138
+
139
+ scan_templates_resp = nessus_cloud_rest_call(
140
+ nessus_obj: nessus_obj,
141
+ rest_call: 'policies'
142
+ ).body
143
+
144
+ JSON.parse(scan_templates_resp, symbolize_names: true)
145
+ rescue StandardError, SystemExit, Interrupt => e
146
+ raise e
147
+ end
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
+
113
185
  # Supported Method Parameters::
114
186
  # PWN::Plugins::NessusCloud.get_scans(
115
187
  # nessus_obj: 'required - nessus_obj returned from #login method'
@@ -305,6 +377,22 @@ module PWN
305
377
  nessus_obj: 'required - nessus_obj returned from #login method'
306
378
  )
307
379
 
380
+ #{self}.get_policies(
381
+ nessus_obj: 'required - nessus_obj returned from #login method'
382
+ )
383
+
384
+ #{self}.get_folders(
385
+ nessus_obj: 'required - nessus_obj returned from #login method'
386
+ )
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
+
308
396
  #{self}.get_scans(
309
397
  nessus_obj: 'required - nessus_obj returned from #login method'
310
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.426'
4
+ VERSION = '0.4.429'
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.426
4
+ version: 0.4.429
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-17 00:00:00.000000000 Z
11
+ date: 2022-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -702,14 +702,14 @@ dependencies:
702
702
  requirements:
703
703
  - - '='
704
704
  - !ruby/object:Gem::Version
705
- version: 2.10.0
705
+ version: 2.11.0
706
706
  type: :runtime
707
707
  prerelease: false
708
708
  version_requirements: !ruby/object:Gem::Requirement
709
709
  requirements:
710
710
  - - '='
711
711
  - !ruby/object:Gem::Version
712
- version: 2.10.0
712
+ version: 2.11.0
713
713
  - !ruby/object:Gem::Dependency
714
714
  name: ruby-audio
715
715
  requirement: !ruby/object:Gem::Requirement