pwn 0.4.513 → 0.4.516

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,8 @@ module PWN
7
7
  # Supported Method Parameters::
8
8
  # PWN::Plugins::ThreadPool.fill(
9
9
  # enumerable_array: 'required array for proper thread pool assignment',
10
- # :max_threads: 'optional number of threads in the thread pool (defaults to 9)',
10
+ # max_threads: 'optional number of threads in the thread pool (defaults to 9)',
11
+ # seconds_between_thread_exec: 'optional - time to sleep between thread execution (defaults to 0)'
11
12
  # &block
12
13
  # )
13
14
  #
@@ -19,19 +20,32 @@ module PWN
19
20
 
20
21
  public_class_method def self.fill(opts = {})
21
22
  enumerable_array = opts[:enumerable_array]
22
- opts[:max_threads].nil? ? max_threads = 9 : max_threads = opts[:max_threads].to_i
23
+ max_threads = opts[:max_threads].to_i
24
+ max_threads = 9 if max_threads.zero?
25
+ # seconds_between_thread_exec = opts[:seconds_between_thread_exec].to_i
23
26
 
24
27
  puts "Initiating Thread Pool of #{max_threads} Worker Threads...."
25
28
  queue = SizedQueue.new(max_threads)
26
29
  threads = Array.new(max_threads) do
27
30
  Thread.new do
28
- until (this_thread = queue.pop) == :END
31
+ until (this_thread = queue.pop) == :POOL_EXHAUSTED
29
32
  yield this_thread
30
33
  end
31
34
  end
32
35
  end
33
- enumerable_array.uniq.sort.each { |this_thread| queue << this_thread }
34
- max_threads.times { queue << :END }
36
+
37
+ enumerable_array.uniq.sort.each do |this_thread|
38
+ queue << this_thread
39
+ end
40
+
41
+ max_threads.times do
42
+ queue << :POOL_EXHAUSTED
43
+ end
44
+
45
+ # threads.each do |thread|
46
+ # sleep seconds_between_thread_exec if seconds_between_thread_exec.positive?
47
+ # thread.join
48
+ # end
35
49
  threads.each(&:join)
36
50
  rescue Interrupt
37
51
  puts "\nGoodbye."
data/lib/pwn/plugins.rb CHANGED
@@ -8,6 +8,7 @@ module PWN
8
8
  autoload :Android, 'pwn/plugins/android'
9
9
  autoload :AnsibleVault, 'pwn/plugins/ansible_vault'
10
10
  autoload :AuthenticationHelper, 'pwn/plugins/authentication_helper'
11
+ autoload :BareSIP, 'pwn/plugins/baresip'
11
12
  autoload :BasicAuth, 'pwn/plugins/basic_auth'
12
13
  autoload :BeEF, 'pwn/plugins/beef'
13
14
  autoload :BurpSuite, 'pwn/plugins/burp_suite'
@@ -0,0 +1,294 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+
5
+ module PWN
6
+ module Reports
7
+ # This plugin generates the War Dialing results produced by pwn_phone.
8
+ module Phone
9
+ # Supported Method Parameters::
10
+ # PWN::Reports::Phone.generate(
11
+ # dir_path: dir_path,
12
+ # results_hash: results_hash
13
+ # )
14
+
15
+ public_class_method def self.generate(opts = {})
16
+ dir_path = opts[:dir_path].to_s if File.directory?(opts[:dir_path].to_s)
17
+ raise "PWN Error: Invalid Directory #{dir_path}" if dir_path.nil?
18
+
19
+ results_hash = opts[:results_hash]
20
+
21
+ File.write(
22
+ "#{dir_path}/pwn_phone.json",
23
+ JSON.pretty_generate(results_hash)
24
+ )
25
+
26
+ html_report = %q{<!DOCTYPE HTML>
27
+ <html>
28
+ <head>
29
+ <!-- favicon.ico from https://0dayinc.com -->
30
+ <link rel="icon" href="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABIXAAASFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAgAAiSYAAIlbAACJcAAAiX0AAIlmAACJLQAAiQQAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAAAAiS0AAIluAACJdwAAiXgAAIl+AACJeAAAiXQAAIk5AACJAQAAiQAAAAAAAAAAAAAAAAAAAAAAAACJAAAAiRgAAIlvAACJbQAAiXcAAIl7AACJcwAAiXEAAIl1AACJZwAAiR4AAIkAAACJAAAAAAAAAAAAAACJAAAAiQAAAIlEAACJfAAAiXIAAIlyAACJewAAiX4AAIl5AACJdQAAiXcAAIlIAACJAAAAiQAAAAAAAAAAAAAAiQAAAIkJAACJWQAAiXUAAIl9AACJdAAAiYYAAImLAACJdAAAiXkAAImNAACJfQAAiQwAAIkAAAAAAAAAAAAAAIkAAACJFQAAiWsAAIl2AACJfAAAiYIAAImCAACJfwAAiXYAAIl5AACJiQAAiYYAAIkWAACJAAAAAAAAAAAAAACJAAAAiSAAAIl2AACJeQAAiXkAAIl1AACJfwAAiYEAAIl8AACJbwAAiXoAAImBAACJFgAAiQAAAAAAAAAAAAAAiQAAAIkpAACJeAAAiXMAAIl3AACJeQAAiXUAAImAAACJfwAAiWYAAIl4AACJfwAAiR4AAIkAAAAAAAAAAAAAAIkAAACJKAAAiXkAAIlyAACJdQAAiXQAAIluAACJfAAAiXwAAIl3AACJewAAiXwAAIkvAACJAAAAAAAAAAAAAACJAAAAiSMAAIl4AACJdgAAiXsAAIl1AACJcQAAiXcAAIl6AACJeQAAiXoAAIl0AACJKQAAiQAAAAAAAAAAAAAAiQAAAIkXAACJaAAAiXgAAIl3AACJfAAAiXkAAIl3AACJZwAAiXcAAIl0AACJagAAiSgAAIkAAAAAAAAAAAAAAIkAAACJDgAAiV4AAIl5AACJbwAAiW4AAIl9AACJewAAiXcAAIl6AACJfQAAiW8AAIkWAACJAAAAAAAAAAAAAACJAAAAiQ0AAIllAACJewAAiXYAAIl4AACJdQAAiXUAAIl4AACJbQAAiXkAAIlNAACJAwAAiQAAAAAAAAAAAAAAiQAAAIkCAACJPQAAiXMAAIl2AACJeAAAiWgAAIlsAACJfQAAiXsAAIlwAACJGQAAiQAAAIkAAAAAAAAAAAAAAAAAAACJAAAAiQcAAIk4AACJXAAAiXoAAIl7AACJfAAAiYAAAIlsAACJJwAAiQMAAIkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIkAAACJAQAAiSsAAIluAACJewAAiXwAAIluAACJKgAAiQAAAIkAAAAAAAAAAAAAAAAA8A8AAPAHAADgBwAA4AcAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMADAADAAwAAwAMAAMAHAADgBwAA8B8AAA==" type="image/x-icon" />
31
+ <style>
32
+ body {
33
+ font-family: Verdana, Geneva, sans-serif;
34
+ font-size: 11px;
35
+ background-color: #FFFFFF;
36
+ color: #084B8A !important;
37
+ }
38
+
39
+ a:link {
40
+ color: #0174DF;
41
+ text-decoration: none;
42
+ }
43
+
44
+ a:visited {
45
+ color: #B40404;
46
+ text-decoration: none;
47
+ }
48
+
49
+ a:hover {
50
+ color: #01A9DB;
51
+ text-decoration: underline;
52
+ }
53
+
54
+ a:active {
55
+ color: #610B5E;
56
+ text-decoration: underline;
57
+ }
58
+
59
+ table {
60
+ width: 100%;
61
+ border-spacing:0px;
62
+ }
63
+
64
+ table.squish {
65
+ table-layout: fixed;
66
+ }
67
+
68
+ td {
69
+ vertical-align: top;
70
+ word-wrap: break-word !important;
71
+ }
72
+
73
+ .highlighted {
74
+ background-color: #F2F5A9 !important;
75
+ }
76
+ </style>
77
+
78
+ <!-- jQuery, DataTables, & FancyApps -->
79
+ <script type="text/javascript" src="//code.jquery.com/jquery-3.6.0.min.js"></script>
80
+
81
+ <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/v/dt/dt-1.11.4/b-2.2.2/b-colvis-2.2.2/b-html5-2.2.2/b-print-2.2.2/cr-1.5.5/fc-4.0.1/fh-3.2.1/kt-2.6.4/r-2.2.9/rg-1.1.4/rr-1.2.8/sc-2.0.5/sp-1.4.0/sl-1.3.4/datatables.min.css"/>
82
+
83
+ <script type="text/javascript" src="//cdn.datatables.net/v/dt/dt-1.11.4/b-2.2.2/b-colvis-2.2.2/b-html5-2.2.2/b-print-2.2.2/cr-1.5.5/fc-4.0.1/fh-3.2.1/kt-2.6.4/r-2.2.9/rg-1.1.4/rr-1.2.8/sc-2.0.5/sp-1.4.0/sl-1.3.4/datatables.min.js"></script>
84
+
85
+ <link rel="stylesheet" href="//cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.css" type="text/css" />
86
+
87
+ <script type="text/javascript" src="//cdn.jsdelivr.net/npm/@fancyapps/ui@4.0/dist/fancybox.umd.js"></script>
88
+ </head>
89
+
90
+ <body id="pwn_body">
91
+
92
+ <h1 style="display:inline">
93
+ <a href="https://github.com/0dayinc/pwn/tree/master">~ pwn phone</a>
94
+ </h1><br /><br />
95
+ <h2 id="report_name"></h2><br />
96
+
97
+ <div><button type="button" id="button">Rows Selected</button></div><br />
98
+ <div>
99
+ <b>Toggle Column(s):</b>&nbsp;
100
+ <a class="toggle-vis" data-column="1" href="#">Call Started</a>&nbsp;|&nbsp;
101
+ <a class="toggle-vis" data-column="2" href="#">Source #</a>&nbsp;|&nbsp;
102
+ <a class="toggle-vis" data-column="3" href="#">Source # Rules</a>&nbsp;|&nbsp;
103
+ <a class="toggle-vis" data-column="4" href="#">Target #</a>&nbsp;|&nbsp;
104
+ <a class="toggle-vis" data-column="5" href="#">Seconds Recorded</a>&nbsp;|&nbsp;
105
+ <a class="toggle-vis" data-column="6" href="#">Call Stopped</a>
106
+ <a class="toggle-vis" data-column="7" href="#">Reason</a>
107
+ <a class="toggle-vis" data-column="8" href="#">Recording</a>&nbsp;|&nbsp;
108
+ <a class="toggle-vis" data-column="9" href="#">Spectrogram</a>&nbsp;|&nbsp;
109
+ <a class="toggle-vis" data-column="10" href="#">Waveform</a>
110
+ </div>
111
+ <br /><br />
112
+
113
+ <div>
114
+ <table id="pwn_phone_results" class="display" cellspacing="0">
115
+ <thead>
116
+ <tr>
117
+ <th>#</th>
118
+ <th>Call Started</th>
119
+ <th>Source #</th>
120
+ <th>Source # Rules</th>
121
+ <th>Target #</th>
122
+ <th>Seconds Recorded</th>
123
+ <th>Call Stopped</th>
124
+ <th>Reason Stopped</th>
125
+ <th>Recording</th>
126
+ <th>Spectrogram</th>
127
+ <th>Waveform</th>
128
+ </tr>
129
+ </thead>
130
+ <!-- DataTables <tbody> -->
131
+ </table>
132
+ </div>
133
+
134
+ <script>
135
+ var htmlEntityEncode = $.fn.dataTable.render.text().display;
136
+ var line_entry_uri = "";
137
+ $(document).ready(function() {
138
+ var oldStart = 0;
139
+ var table = $('#pwn_phone_results').DataTable( {
140
+ "paging": true,
141
+ "pagingType": "full_numbers",
142
+ "fnDrawCallback": function ( oSettings ) {
143
+ /* Need to redo the counters if filtered or sorted */
144
+ if ( oSettings.bSorted || oSettings.bFiltered ) {
145
+ for ( var i=0, iLen=oSettings.aiDisplay.length ; i<iLen ; i++ ) {
146
+ $('td:eq(0)', oSettings.aoData[ oSettings.aiDisplay[i] ].nTr ).html( i+1 );
147
+ }
148
+ }
149
+ // Jump to top when utilizing pagination
150
+ if ( oSettings._iDisplayStart != oldStart ) {
151
+ var targetOffset = $('#pwn_body').offset().top;
152
+ $('html,body').animate({scrollTop: targetOffset}, 500);
153
+ oldStart = oSettings._iDisplayStart;
154
+ }
155
+ // Select individual lines in a row
156
+ $('#multi_line_select tbody').on('click', 'tr', function () {
157
+ $(this).toggleClass('highlighted');
158
+ if ($('#multi_line_select tr.highlighted').length > 0) {
159
+ $('#multi_line_select tr td button').attr('disabled', 'disabled');
160
+ // Remove multi-line bug button
161
+ } else {
162
+ $('#multi_line_select tr td button').removeAttr('disabled');
163
+ // Add multi-line bug button
164
+ }
165
+ });
166
+ },
167
+ "ajax": "pwn_phone.json",
168
+ //"deferRender": true,
169
+ "dom": "fplitfpliS",
170
+ "autoWidth": false,
171
+ "columns": [
172
+ { "data": null },
173
+ {
174
+ "data": "call_started",
175
+ "render": $.fn.dataTable.render.text()
176
+ },
177
+ {
178
+ "data": "src_num",
179
+ "render": $.fn.dataTable.render.text()
180
+ },
181
+ {
182
+ "data": "src_num_rules",
183
+ "render": $.fn.dataTable.render.text()
184
+ },
185
+ {
186
+ "data": "target_num",
187
+ "render": $.fn.dataTable.render.text()
188
+ },
189
+ {
190
+ "data": "seconds_recorded",
191
+ "render": $.fn.dataTable.render.text()
192
+ },
193
+ {
194
+ "data": "call_stopped",
195
+ "render": $.fn.dataTable.render.text()
196
+ },
197
+ {
198
+ "data": "reason",
199
+ "render": $.fn.dataTable.render.text()
200
+ },
201
+ {
202
+ "data": "recording",
203
+ "render": function (data, type, row, meta) {
204
+ var wav = htmlEntityEncode(data);
205
+ if (wav == '--') {
206
+ return wav;
207
+ } else {
208
+ return '<audio controls><source src="' + wav +'" type="audio/wav"></audio>';
209
+ }
210
+ }
211
+ },
212
+ {
213
+ "data": "spectrogram",
214
+ "render": function (data, type, row, meta) {
215
+ var spt = htmlEntityEncode(data);
216
+ if (spt == '--') {
217
+ return spt;
218
+ } else {
219
+ return '<a data-fancybox data-src="' + spt + '" data-caption="' + spt + '"><img src="' + data +'" target="_blank" style="width:150px; height:150px;"/></a>';
220
+ }
221
+ }
222
+ },
223
+ {
224
+ "data": "waveform",
225
+ "render": function (data, type, row, meta) {
226
+ var wfm = htmlEntityEncode(data);
227
+ if (wfm == '--') {
228
+ return wfm;
229
+ } else {
230
+ return '<a data-fancybox data-src="' + wfm + '" data-caption="' + wfm + '"><img src="' + data +'" target="_blank" style="width:150px; height:150px;"/></a>';
231
+ }
232
+ }
233
+ }
234
+ ]
235
+ });
236
+ // Toggle Columns
237
+ $('a.toggle-vis').on('click', function (e) {
238
+ e.preventDefault();
239
+
240
+ // Get the column API object
241
+ var column = table.column( $(this).attr('data-column') );
242
+
243
+ // Toggle the visibility
244
+ column.visible( ! column.visible() );
245
+ });
246
+
247
+ // TODO: Open bug for highlighted rows ;)
248
+ $('#button').click( function () {
249
+ alert($('#multi_line_select tr.highlighted').length +' row(s) highlighted');
250
+ });
251
+ });
252
+
253
+ function multi_line_select() {
254
+ // Select all lines in a row
255
+ //$('#pwn_phone_results tbody').on('click', 'tr', function () {
256
+ // $(this).children('td').children('#multi_line_select').children('tbody').children('tr').toggleClass('highlighted');
257
+ //});
258
+
259
+ }
260
+ </script>
261
+ </body>
262
+ </html>
263
+ }
264
+
265
+ File.open("#{dir_path}/pwn_phone.html", 'w') do |f|
266
+ f.print(html_report)
267
+ end
268
+ rescue StandardError => e
269
+ raise e
270
+ end
271
+
272
+ # Author(s):: 0day Inc. <request.pentest@0dayinc.com>
273
+
274
+ public_class_method def self.authors
275
+ "AUTHOR(S):
276
+ 0day Inc. <request.pentest@0dayinc.com>
277
+ "
278
+ end
279
+
280
+ # Display Usage for this Module
281
+
282
+ public_class_method def self.help
283
+ puts "USAGE:
284
+ #{self}.generate(
285
+ dir_path: dir_path,
286
+ results_hash: results_hash
287
+ )
288
+
289
+ #{self}.authors
290
+ "
291
+ end
292
+ end
293
+ end
294
+ end
data/lib/pwn/reports.rb CHANGED
@@ -9,6 +9,7 @@ module PWN
9
9
  # autoload :JSON, 'pwn/reports/json'
10
10
  # autoload :PDF, 'pwn/reports/pdf'
11
11
  autoload :Fuzz, 'pwn/reports/fuzz'
12
+ autoload :Phone, 'pwn/reports/phone'
12
13
  autoload :SAST, 'pwn/reports/sast'
13
14
  # autoload :XML, 'pwn/reports/xml'
14
15
 
@@ -112,7 +112,7 @@ module PWN
112
112
  section: 'MALICIOUS CODE PROTECTION',
113
113
  nist_800_53_uri: 'https://csrc.nist.gov/Projects/risk-management/sp800-53-controls/release-search#/control/?version=5.1&number=SI-3',
114
114
  cwe_id: '79',
115
- uri: 'https://cwe.mitre.org/data/definitions/79.html'
115
+ cwe_uri: 'https://cwe.mitre.org/data/definitions/79.html'
116
116
  }
117
117
  rescue StandardError => e
118
118
  raise e
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.513'
4
+ VERSION = '0.4.516'
5
5
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::Reports::Phone do
6
+ it 'should display information for authors' do
7
+ authors_response = PWN::Reports::Phone
8
+ expect(authors_response).to respond_to :authors
9
+ end
10
+
11
+ it 'should display information for existing help method' do
12
+ help_response = PWN::Reports::Phone
13
+ expect(help_response).to respond_to :help
14
+ end
15
+ 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.513
4
+ version: 0.4.516
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-14 00:00:00.000000000 Z
11
+ date: 2022-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 2.3.18
117
+ version: 2.3.19
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 2.3.18
124
+ version: 2.3.19
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler-audit
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - '='
207
207
  - !ruby/object:Gem::Version
208
208
  version: 0.11.1
209
+ - !ruby/object:Gem::Dependency
210
+ name: fftw3
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '='
214
+ - !ruby/object:Gem::Version
215
+ version: '0.3'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '='
221
+ - !ruby/object:Gem::Version
222
+ version: '0.3'
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: gdb
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -352,14 +366,14 @@ dependencies:
352
366
  requirements:
353
367
  - - '='
354
368
  - !ruby/object:Gem::Version
355
- version: 2.17.1
369
+ version: 2.18.1
356
370
  type: :runtime
357
371
  prerelease: false
358
372
  version_requirements: !ruby/object:Gem::Requirement
359
373
  requirements:
360
374
  - - '='
361
375
  - !ruby/object:Gem::Version
362
- version: 2.17.1
376
+ version: 2.18.1
363
377
  - !ruby/object:Gem::Dependency
364
378
  name: msfrpc-client
365
379
  requirement: !ruby/object:Gem::Requirement
@@ -436,14 +450,14 @@ dependencies:
436
450
  requirements:
437
451
  - - '='
438
452
  - !ruby/object:Gem::Version
439
- version: 1.13.7
453
+ version: 1.13.8
440
454
  type: :runtime
441
455
  prerelease: false
442
456
  version_requirements: !ruby/object:Gem::Requirement
443
457
  requirements:
444
458
  - - '='
445
459
  - !ruby/object:Gem::Version
446
- version: 1.13.7
460
+ version: 1.13.8
447
461
  - !ruby/object:Gem::Dependency
448
462
  name: oily_png
449
463
  requirement: !ruby/object:Gem::Requirement
@@ -506,14 +520,14 @@ dependencies:
506
520
  requirements:
507
521
  - - '='
508
522
  - !ruby/object:Gem::Version
509
- version: 1.4.1
523
+ version: 1.4.2
510
524
  type: :runtime
511
525
  prerelease: false
512
526
  version_requirements: !ruby/object:Gem::Requirement
513
527
  requirements:
514
528
  - - '='
515
529
  - !ruby/object:Gem::Version
516
- version: 1.4.1
530
+ version: 1.4.2
517
531
  - !ruby/object:Gem::Dependency
518
532
  name: pry
519
533
  requirement: !ruby/object:Gem::Requirement
@@ -632,14 +646,14 @@ dependencies:
632
646
  requirements:
633
647
  - - '='
634
648
  - !ruby/object:Gem::Version
635
- version: 4.2.5
649
+ version: 4.2.6
636
650
  type: :runtime
637
651
  prerelease: false
638
652
  version_requirements: !ruby/object:Gem::Requirement
639
653
  requirements:
640
654
  - - '='
641
655
  - !ruby/object:Gem::Version
642
- version: 4.2.5
656
+ version: 4.2.6
643
657
  - !ruby/object:Gem::Dependency
644
658
  name: rspec
645
659
  requirement: !ruby/object:Gem::Requirement
@@ -674,14 +688,14 @@ dependencies:
674
688
  requirements:
675
689
  - - '='
676
690
  - !ruby/object:Gem::Version
677
- version: 1.31.2
691
+ version: 1.32.0
678
692
  type: :runtime
679
693
  prerelease: false
680
694
  version_requirements: !ruby/object:Gem::Requirement
681
695
  requirements:
682
696
  - - '='
683
697
  - !ruby/object:Gem::Version
684
- version: 1.31.2
698
+ version: 1.32.0
685
699
  - !ruby/object:Gem::Dependency
686
700
  name: rubocop-rake
687
701
  requirement: !ruby/object:Gem::Requirement
@@ -786,14 +800,14 @@ dependencies:
786
800
  requirements:
787
801
  - - '='
788
802
  - !ruby/object:Gem::Version
789
- version: 0.103.1
803
+ version: 0.104.0
790
804
  type: :runtime
791
805
  prerelease: false
792
806
  version_requirements: !ruby/object:Gem::Requirement
793
807
  requirements:
794
808
  - - '='
795
809
  - !ruby/object:Gem::Version
796
- version: 0.103.1
810
+ version: 0.104.0
797
811
  - !ruby/object:Gem::Dependency
798
812
  name: serialport
799
813
  requirement: !ruby/object:Gem::Requirement
@@ -814,14 +828,14 @@ dependencies:
814
828
  requirements:
815
829
  - - '='
816
830
  - !ruby/object:Gem::Version
817
- version: 2.2.0
831
+ version: 2.2.2
818
832
  type: :runtime
819
833
  prerelease: false
820
834
  version_requirements: !ruby/object:Gem::Requirement
821
835
  requirements:
822
836
  - - '='
823
837
  - !ruby/object:Gem::Version
824
- version: 2.2.0
838
+ version: 2.2.2
825
839
  - !ruby/object:Gem::Dependency
826
840
  name: slack-ruby-client
827
841
  requirement: !ruby/object:Gem::Requirement
@@ -1042,6 +1056,7 @@ executables:
1042
1056
  - pwn_owasp_zap_active_scan
1043
1057
  - pwn_pastebin_sample_filter
1044
1058
  - pwn_perimeter_recon
1059
+ - pwn_phone
1045
1060
  - pwn_sast
1046
1061
  - pwn_serial_check_voicemail
1047
1062
  - pwn_serial_msr206
@@ -1105,6 +1120,7 @@ files:
1105
1120
  - bin/pwn_owasp_zap_active_scan
1106
1121
  - bin/pwn_pastebin_sample_filter
1107
1122
  - bin/pwn_perimeter_recon
1123
+ - bin/pwn_phone
1108
1124
  - bin/pwn_sast
1109
1125
  - bin/pwn_serial_check_voicemail
1110
1126
  - bin/pwn_serial_msr206
@@ -1542,6 +1558,7 @@ files:
1542
1558
  - lib/pwn/plugins/android.rb
1543
1559
  - lib/pwn/plugins/ansible_vault.rb
1544
1560
  - lib/pwn/plugins/authentication_helper.rb
1561
+ - lib/pwn/plugins/baresip.rb
1545
1562
  - lib/pwn/plugins/basic_auth.rb
1546
1563
  - lib/pwn/plugins/beef.rb
1547
1564
  - lib/pwn/plugins/burp_suite.rb
@@ -1595,6 +1612,7 @@ files:
1595
1612
  - lib/pwn/plugins/vsphere.rb
1596
1613
  - lib/pwn/reports.rb
1597
1614
  - lib/pwn/reports/fuzz.rb
1615
+ - lib/pwn/reports/phone.rb
1598
1616
  - lib/pwn/reports/sast.rb
1599
1617
  - lib/pwn/sast.rb
1600
1618
  - lib/pwn/sast/amqp_connect_as_guest.rb
@@ -1891,6 +1909,7 @@ files:
1891
1909
  - spec/lib/pwn/plugins/vsphere_spec.rb
1892
1910
  - spec/lib/pwn/plugins_spec.rb
1893
1911
  - spec/lib/pwn/reports/fuzz_spec.rb
1912
+ - spec/lib/pwn/reports/phone_spec.rb
1894
1913
  - spec/lib/pwn/reports/sast_spec.rb
1895
1914
  - spec/lib/pwn/reports_spec.rb
1896
1915
  - spec/lib/pwn/sast/amqp_connect_as_guest_spec.rb
@@ -1990,7 +2009,7 @@ licenses:
1990
2009
  - MIT
1991
2010
  metadata:
1992
2011
  rubygems_mfa_required: 'true'
1993
- post_install_message:
2012
+ post_install_message:
1994
2013
  rdoc_options: []
1995
2014
  require_paths:
1996
2015
  - lib
@@ -2005,8 +2024,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2005
2024
  - !ruby/object:Gem::Version
2006
2025
  version: '0'
2007
2026
  requirements: []
2008
- rubygems_version: 3.3.17
2009
- signing_key:
2027
+ rubygems_version: 3.3.19
2028
+ signing_key:
2010
2029
  specification_version: 4
2011
2030
  summary: Automated Security Testing for CI/CD Pipelines & Beyond
2012
2031
  test_files: []