pwn 0.4.426 → 0.4.429

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: 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