pwn 0.5.76 → 0.5.77

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: 6341c999a95a8ef1867905f07a60fd054d0ad217912b5b50dbafa1d42c8c1aa9
4
- data.tar.gz: dc476c26b6f833f7c78850e8a32f9ad5b68cb36f0110ca5b739b2d5e8a690a55
3
+ metadata.gz: 785ee96770cdafec2335a97bebd6ead037c1e101e71034a42ac7a2b2d9e1ad3f
4
+ data.tar.gz: ec5131e73e7880531e0eb1c7c3d61ba0736c0f8f1f65756a61d9deaf59dc458a
5
5
  SHA512:
6
- metadata.gz: 30126968532893656b7d1db6bd1afb32a46b59831d9156fe7d1b4eaa317609b5c8e5a268e468ab4c7bc922b0731049485db14a703d24f958c600c6da564d77d3
7
- data.tar.gz: a6a8d6b2d84a71bf9730885b1a7b1c2d746d1e6ac8c22183e089f03260cc57eeed8ed79f619093e11e087c4267dd3ca113fd9175bc9837d685c4b6795ea099e0
6
+ metadata.gz: b35076b724a522bd1ea40981ce5d37f1454162b64ba2120217e6b19f26856d8eacb1457032179148a136c375809dd09b7fad4348169e1a8cce8381f6bfe154ae
7
+ data.tar.gz: 0db05cecffa1a616df0dfc49d7b78e13f2f25099b350f31e24b2f69d534c876490df424b8ab9b7a63de249b0103e34bac58fd8df39c58ca8b41902cb10514978
data/Gemfile CHANGED
@@ -26,7 +26,7 @@ gem 'colorize', '1.1.0'
26
26
  gem 'credit_card_validations', '6.1.0'
27
27
  gem 'eventmachine', '1.2.7'
28
28
  gem 'executable-hooks', '1.7.1'
29
- gem 'faker', '3.3.0'
29
+ gem 'faker', '3.3.1'
30
30
  gem 'faye-websocket', '0.11.3'
31
31
  gem 'ffi', '1.16.3'
32
32
  gem 'fftw3', '0.3'
@@ -63,7 +63,7 @@ gem 'pdf-reader', '2.12.0'
63
63
  gem 'pg', '1.5.6'
64
64
  gem 'pry', '0.14.2'
65
65
  gem 'pry-doc', '1.5.0'
66
- gem 'rake', '13.1.0'
66
+ gem 'rake', '13.2.0'
67
67
  gem 'rb-readline', '0.5.5'
68
68
  gem 'rbvmomi', '3.0.0'
69
69
  gem 'rdoc', '6.6.3.1'
@@ -75,7 +75,7 @@ gem 'rspec', '3.13.0'
75
75
  gem 'rtesseract', '3.1.3'
76
76
  gem 'rubocop', '1.62.1'
77
77
  gem 'rubocop-rake', '0.6.0'
78
- gem 'rubocop-rspec', '2.27.1'
78
+ gem 'rubocop-rspec', '2.28.0'
79
79
  gem 'ruby-audio', '1.6.1'
80
80
  gem 'ruby-nmap', '1.0.3'
81
81
  gem 'ruby-saml', '1.16.0'
data/README.md CHANGED
@@ -37,7 +37,7 @@ $ cd /opt/pwn
37
37
  $ ./install.sh
38
38
  $ ./install.sh ruby-gem
39
39
  $ pwn
40
- pwn[v0.5.76]:001 >>> PWN.help
40
+ pwn[v0.5.77]: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.3.0@pwn
52
52
  $ gem uninstall --all --executables pwn
53
53
  $ gem install --verbose pwn
54
54
  $ pwn
55
- pwn[v0.5.76]:001 >>> PWN.help
55
+ pwn[v0.5.77]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
  If you're using a multi-user install of RVM do:
@@ -62,7 +62,7 @@ $ rvm use ruby-3.3.0@pwn
62
62
  $ rvmsudo gem uninstall --all --executables pwn
63
63
  $ rvmsudo gem install --verbose pwn
64
64
  $ pwn
65
- pwn[v0.5.76]:001 >>> PWN.help
65
+ pwn[v0.5.77]:001 >>> PWN.help
66
66
  ```
67
67
 
68
68
  PWN periodically upgrades to the latest version of Ruby which is reflected in `/opt/pwn/.ruby-version`. The easiest way to upgrade to the latest version of Ruby from a previous PWN installation is to run the following script:
@@ -38,6 +38,10 @@ OptionParser.new do |options|
38
38
  opts[:file] = f
39
39
  end
40
40
 
41
+ options.on('-TNAME', '--test-title=NAME', '<Optional - name of test to associate w/ scan type (Defaults to --scan-type value>') do |t|
42
+ opts[:test_title] = t
43
+ end
44
+
41
45
  options.on('-lUSER', '--lead-username=USER', '<Optional - username of lead to tie to engagement (Defaults to username)>') do |l|
42
46
  opts[:lead_username] = l
43
47
  end
@@ -58,6 +62,10 @@ OptionParser.new do |options|
58
62
  opts[:verified] = v
59
63
  end
60
64
 
65
+ options.on('-G', '--group-by', '<Optional - group findings by "component_name" || "component_name+component_version" || "file_path" || "finding_title" (defaults to nil)') do |g|
66
+ opts[:group_by] = g
67
+ end
68
+
61
69
  options.on('-g', '--create-finding-groups', '<Optional - group similar findings into one finding (defaults to false)') do |g|
62
70
  opts[:create_finding_groups] = g
63
71
  end
@@ -91,10 +99,12 @@ engagement_name = opts[:engagement_name]
91
99
  scan_type = opts[:scan_type]
92
100
  file = opts[:file]
93
101
  opts[:lead_username] ? (lead_username = opts[:lead_username]) : (lead_username = username)
102
+ test_title = opts[:test_title]
94
103
  tags = opts[:tags]
95
104
  minimum_severity = opts[:minimum_severity]
96
105
  scan_date = opts[:scan_date]
97
106
  verified = opts[:verified]
107
+ group_by = opts[:group_by]
98
108
  create_findings_groups = opts[:create_finding_groups]
99
109
  close_old_findings_product_scope = opts[:close_old_findings_product_scope]
100
110
  close_old_findings = opts[:close_old_findings]
@@ -113,11 +123,13 @@ begin
113
123
  engagement_name: engagement_name,
114
124
  scan_type: scan_type,
115
125
  file: file,
126
+ test_title: test_title,
116
127
  lead_username: lead_username,
117
128
  tags: tags,
118
129
  minimum_severity: minimum_severity,
119
130
  scan_date: scan_date,
120
131
  verified: verified,
132
+ group_by: group_by,
121
133
  create_findings_groups: create_findings_groups,
122
134
  close_old_findings_product_scope: close_old_findings_product_scope,
123
135
  close_old_findings: close_old_findings,
@@ -432,6 +432,8 @@ module PWN
432
432
  http_body[:multipart] = true
433
433
  http_body[:file] = File.new(opts[:file].to_s.strip.chomp.scrub, 'rb') if File.exist?(opts[:file].to_s.strip.chomp.scrub)
434
434
 
435
+ http_body[:test_title] = opts[:test_title]
436
+
435
437
  # Ok lets determine the resource_uri for the lead username
436
438
  lead_username = opts[:lead_username].to_s.strip.chomp.scrub
437
439
  user_list = self.user_list(dd_obj: dd_obj)
@@ -469,6 +471,19 @@ module PWN
469
471
  # Defaults to false
470
472
  opts[:verified] ? (http_body[:verified] = true) : (http_body[:verified] = false)
471
473
 
474
+ valid_group_by = %w[
475
+ component_name
476
+ component_name+compoent_version
477
+ file_path
478
+ finding_title
479
+ ]
480
+
481
+ group_by = opts[:group_by]
482
+ # If group_by is set, ensure we have a valid group_by value
483
+ raise "ERROR: Invalid group_by value: #{group_by}. Options are 'product' or 'engagement'" unless valid_group_by.include?(group_by) || group_by.nil?
484
+
485
+ http_body[:group_by] = group_by if group_by
486
+
472
487
  opts[:create_finding_groups] ? (http_body[:create_finding_groups_for_all_findings] = true) : (http_body[:create_finding_groups_for_all_findings] = false)
473
488
 
474
489
  opts[:close_old_findings_product_scope] ? (http_body[:close_old_findings_product_scope] = true) : (http_body[:close_old_findings_product_scope] = false)
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.5.76'
4
+ VERSION = '0.5.77'
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.5.76
4
+ version: 0.5.77
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-27 00:00:00.000000000 Z
11
+ date: 2024-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 3.3.0
215
+ version: 3.3.1
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: 3.3.0
222
+ version: 3.3.1
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: faye-websocket
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -716,14 +716,14 @@ dependencies:
716
716
  requirements:
717
717
  - - '='
718
718
  - !ruby/object:Gem::Version
719
- version: 13.1.0
719
+ version: 13.2.0
720
720
  type: :development
721
721
  prerelease: false
722
722
  version_requirements: !ruby/object:Gem::Requirement
723
723
  requirements:
724
724
  - - '='
725
725
  - !ruby/object:Gem::Version
726
- version: 13.1.0
726
+ version: 13.2.0
727
727
  - !ruby/object:Gem::Dependency
728
728
  name: rb-readline
729
729
  requirement: !ruby/object:Gem::Requirement
@@ -884,14 +884,14 @@ dependencies:
884
884
  requirements:
885
885
  - - '='
886
886
  - !ruby/object:Gem::Version
887
- version: 2.27.1
887
+ version: 2.28.0
888
888
  type: :runtime
889
889
  prerelease: false
890
890
  version_requirements: !ruby/object:Gem::Requirement
891
891
  requirements:
892
892
  - - '='
893
893
  - !ruby/object:Gem::Version
894
- version: 2.27.1
894
+ version: 2.28.0
895
895
  - !ruby/object:Gem::Dependency
896
896
  name: ruby-audio
897
897
  requirement: !ruby/object:Gem::Requirement