pwn 0.4.956 → 0.4.958

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: 917e0143e5b82f95bd54f567ec76b72d1ad5a819a95416438d2dc6bf39ea3ec8
4
- data.tar.gz: ae03eeb3bfd8d4d6e68056181eea50f8ce62abee838e2b4d93563ca1a8769214
3
+ metadata.gz: c6b7d3647903d295b3b512ea781c69cc886b9fd5ba48d8dfd707171be61f4b33
4
+ data.tar.gz: a22b4e9e3954391f93ce25e6d0f6f59b814e36d0fb62b24c3c42c8e380d88016
5
5
  SHA512:
6
- metadata.gz: 9c25d99b6d76ce1f098c87e9767e45037fc64cde90cbd5087386b167239a59a4a4c0618b808cfe55765ec9f27dfad0939ada1eb2706917342efabc7e04ceec23
7
- data.tar.gz: '08a67b4821bcd551c43c74be96bb6fab5a8734ac13147efcecc3d24137c67a61a6f07d7f0542bf287ab8f4465c1c1c1f44b965df85eea1f6c86fc353b8c71164'
6
+ metadata.gz: 887c0e9ec4cd32ffd8fcbe6f5db832b88261ba3e8f51c382d0e7d01e72a38b66969608dd1286bb784b2db1d0135b2a30ddb31c0b90675eb5756e346edc0483d1
7
+ data.tar.gz: 19e71a82ede71aa0d4d5dbf1e4b2a999d3b9401ffe5eaf8203f0df65ac7f55627b5dd70a47158b620648328d8d442a9948e034168b65079383e51cb238aac0b3
data/Gemfile CHANGED
@@ -11,7 +11,7 @@ gemspec
11
11
  # In some circumstances custom flags are passed to gems in order
12
12
  # to build appropriately. Defer to ./reinstall_pwn_gemset.sh
13
13
  # to review these custom flags (e.g. pg, serialport, etc).
14
- gem 'activesupport', '7.1.2'
14
+ gem 'activesupport', '7.1.3'
15
15
  gem 'anemone', '0.7.2'
16
16
  gem 'authy', '3.0.1'
17
17
  gem 'aws-sdk', '3.2.0'
@@ -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.2.2'
29
+ gem 'faker', '3.2.3'
30
30
  gem 'faye-websocket', '0.11.3'
31
31
  gem 'ffi', '1.16.3'
32
32
  gem 'fftw3', '0.3'
@@ -72,7 +72,7 @@ gem 'rmagick', '5.3.0'
72
72
  gem 'rqrcode', '2.2.0'
73
73
  gem 'rspec', '3.12.0'
74
74
  gem 'rtesseract', '3.1.3'
75
- gem 'rubocop', '1.59.0'
75
+ gem 'rubocop', '1.60.1'
76
76
  gem 'rubocop-rake', '0.6.0'
77
77
  gem 'rubocop-rspec', '2.26.1'
78
78
  gem 'ruby-audio', '1.6.1'
@@ -85,7 +85,7 @@ gem 'serialport', '1.3.2'
85
85
  gem 'sinatra', '3.2.0'
86
86
  gem 'slack-ruby-client', '2.2.0'
87
87
  gem 'socksify', '1.7.1'
88
- gem 'spreadsheet', '1.3.0'
88
+ gem 'spreadsheet', '1.3.1'
89
89
  gem 'sqlite3', '1.7.0'
90
90
  gem 'thin', '1.8.2'
91
91
  gem 'tty-prompt', '0.23.1'
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.4.956]:001 >>> PWN.help
40
+ pwn[v0.4.958]: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.4.956]:001 >>> PWN.help
55
+ pwn[v0.4.958]: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.4.956]:001 >>> PWN.help
65
+ pwn[v0.4.958]: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:
data/bin/pwn_bdba_scan CHANGED
@@ -111,6 +111,10 @@ begin
111
111
  group_id: parent_group_id
112
112
  )
113
113
 
114
+ # Break out of infinite loop if status is anything other than 'B' (i.e. 'Busy')
115
+ # Possible status other than 'B' is:
116
+ # 'R' (i.e. 'Ready') or
117
+ # 'F' (i.e. 'Fail')
114
118
  break if scan_progress_resp[:products].none? { |p| p[:status] == 'B' } || report_only
115
119
 
116
120
  # Cancel queued scan if it's been queued for more than 90 minutes
@@ -134,9 +138,32 @@ begin
134
138
  scan_progress_busy_duration += 10
135
139
  end
136
140
 
137
- find_product = scan_progress_resp[:products].find { |p| p[:name] == CGI.escape(File.basename(target_file)) }
141
+ raise 'ERROR: BDBA Scan Failed - Check BDBA Logs for More Info...' if scan_progress_resp[:products].any? { |p| p[:status] == 'F' }
138
142
 
139
- raise NoMethodError if find_product.nil?
143
+ # Account for rare race condition scenario where get_apps_by_group may need to be called
144
+ # multiple times to find the product
145
+ find_product = nil
146
+ find_product_attempts = scan_attempts
147
+ print 'Looking for Product in Apps by Group...'
148
+ loop do
149
+ find_product = scan_progress_resp[:products].find { |p| p[:name] == CGI.escape(File.basename(target_file)) }
150
+ break unless find_product.nil?
151
+
152
+ find_product_attempts += 1
153
+
154
+ raise "ERROR: Cannot Find Product in Apps by Group:\n#{scan_progress_resp}" if find_product_attempts >= scan_attempts
155
+
156
+ 10.times do
157
+ print '.'
158
+ sleep 1
159
+ end
160
+
161
+ scan_progress_resp = PWN::Plugins::BlackDuckBinaryAnalysis.get_apps_by_group(
162
+ token: token,
163
+ group_id: parent_group_id
164
+ )
165
+ end
166
+ puts 'complete.'
140
167
 
141
168
  product_id = find_product[:product_id]
142
169
 
@@ -149,7 +176,6 @@ begin
149
176
 
150
177
  puts "\nReport Saved to: #{report_path}"
151
178
  rescue IO::TimeoutError,
152
- NoMethodError,
153
179
  RestClient::BadGateway,
154
180
  RestClient::BadRequest,
155
181
  RestClient::Exceptions::OpenTimeout,
@@ -62,11 +62,11 @@ OptionParser.new do |options|
62
62
  opts[:create_finding_groups] = g
63
63
  end
64
64
 
65
- options.on('-c', '--close-old-findings-product-scope', '<Optional - close old findings from the engagement (defaults to false)') do |c|
65
+ options.on('-c', '--close-old-findings-product-scope', '<Optional - Select if close_old_findings applies to all findings of the same type in the product (defaults to false)') do |c|
66
66
  opts[:close_old_findings_product_scope] = c
67
67
  end
68
68
 
69
- options.on('-C', '--close-old-findings', '<Optional - close old findings, regardless of engagement (defaults to false)') do |c|
69
+ options.on('-C', '--close-old-findings', '<Optional - old findings no longer present in the report get closed as mitigated when importing (defaults to false)') do |c|
70
70
  opts[:close_old_findings] = c
71
71
  end
72
72
 
@@ -62,11 +62,11 @@ OptionParser.new do |options|
62
62
  opts[:create_finding_groups] = g
63
63
  end
64
64
 
65
- options.on('-c', '--close-old-findings-product-scope', '<Optional - close old findings from the engagement (defaults to false)') do |c|
65
+ options.on('-c', '--close-old-findings-product-scope', '<Optional - Select if close_old_findings applies to all findings of the same type in the product (defaults to false)') do |c|
66
66
  opts[:close_old_findings_product_scope] = c
67
67
  end
68
68
 
69
- options.on('-C', '--close-old-findings', '<Optional - close old findings, regardless of engagement (defaults to false)') do |c|
69
+ options.on('-C', '--close-old-findings', '<Optional - old findings no longer present in the report get closed as mitigated when importing (defaults to false)') do |c|
70
70
  opts[:close_old_findings] = c
71
71
  end
72
72
 
@@ -473,6 +473,8 @@ module PWN
473
473
 
474
474
  opts[:close_old_findings_product_scope] ? (http_body[:close_old_findings_product_scope] = true) : (http_body[:close_old_findings_product_scope] = false)
475
475
 
476
+ opts[:close_old_findings] = true if opts[:close_old_findings_product_scope]
477
+
476
478
  opts[:close_old_findings] ? (http_body[:close_old_findings] = true) : (http_body[:close_old_findings] = false)
477
479
 
478
480
  opts[:push_to_jira] ? (http_body[:push_to_jira] = true) : (http_body[:push_to_jira] = false)
@@ -581,6 +583,8 @@ module PWN
581
583
 
582
584
  opts[:close_old_findings_product_scope] ? (http_body[:close_old_findings_product_scope] = true) : (http_body[:close_old_findings_product_scope] = false)
583
585
 
586
+ opts[:close_old_findings] = true if opts[:close_old_findings_product_scope]
587
+
584
588
  opts[:close_old_findings] ? (http_body[:close_old_findings] = true) : (http_body[:close_old_findings] = false)
585
589
 
586
590
  opts[:push_to_jira] ? (http_body[:push_to_jira] = true) : (http_body[:push_to_jira] = 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.4.956'
4
+ VERSION = '0.4.958'
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.956
4
+ version: 0.4.958
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-01-11 00:00:00.000000000 Z
11
+ date: 2024-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 7.1.2
19
+ version: 7.1.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 7.1.2
26
+ version: 7.1.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: anemone
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +212,14 @@ dependencies:
212
212
  requirements:
213
213
  - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: 3.2.2
215
+ version: 3.2.3
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.2.2
222
+ version: 3.2.3
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: faye-websocket
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -856,14 +856,14 @@ dependencies:
856
856
  requirements:
857
857
  - - '='
858
858
  - !ruby/object:Gem::Version
859
- version: 1.59.0
859
+ version: 1.60.1
860
860
  type: :runtime
861
861
  prerelease: false
862
862
  version_requirements: !ruby/object:Gem::Requirement
863
863
  requirements:
864
864
  - - '='
865
865
  - !ruby/object:Gem::Version
866
- version: 1.59.0
866
+ version: 1.60.1
867
867
  - !ruby/object:Gem::Dependency
868
868
  name: rubocop-rake
869
869
  requirement: !ruby/object:Gem::Requirement
@@ -1038,14 +1038,14 @@ dependencies:
1038
1038
  requirements:
1039
1039
  - - '='
1040
1040
  - !ruby/object:Gem::Version
1041
- version: 1.3.0
1041
+ version: 1.3.1
1042
1042
  type: :runtime
1043
1043
  prerelease: false
1044
1044
  version_requirements: !ruby/object:Gem::Requirement
1045
1045
  requirements:
1046
1046
  - - '='
1047
1047
  - !ruby/object:Gem::Version
1048
- version: 1.3.0
1048
+ version: 1.3.1
1049
1049
  - !ruby/object:Gem::Dependency
1050
1050
  name: sqlite3
1051
1051
  requirement: !ruby/object:Gem::Requirement