pwn 0.4.956 → 0.4.958

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