pwn 0.4.465 → 0.4.466

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: 0ce80ecfe98017552fc1b5da930b332b64284fa51ae55465fd8774bcdc354a77
4
- data.tar.gz: 70880e0ec3b2c750e0c2ac60cd41deaea5aada6bfd191cd9ce21d7a1dd7e7bbf
3
+ metadata.gz: b22a31f1952951d9c3bd1a8dd912b58e1b6ccf39d93a55327b10e285729e67de
4
+ data.tar.gz: a15ab49fbf548031599248380aca04bb05e9220357d771d27de63d477af33038
5
5
  SHA512:
6
- metadata.gz: 3abe9759400c7cc906788386eb0efe23f0411a93f6ae299ad0f365ba9358c9440fd550d710eec59eba01fc7947e6403f44ce78b408a9a54e4e365fbff76a6140
7
- data.tar.gz: a25c91a96cf55c80ba0ba8b3e080ddc1a6a712082a00c3b8fb16869d621f97a693b3220c105e942c1b9b36cc3453cd94fd7d6747f9517a6a0d8bd1244fb9eeee
6
+ metadata.gz: 360eab449207970607c8052dfd3ee9beae9026ed19c41f690f2874cdc932eb8981c341792d37316bc202a5feb2332cdf86686f39416dd001b0338d8b19dbad72
7
+ data.tar.gz: d85c5f1785095b00c058727366896774a47afcb107aa69d0115aa4d501b83daa71df4699983f51acafdc46fa91fc9bcba52bdd7cb770fade67ac5ba85e3ecf9d
data/Gemfile CHANGED
@@ -13,12 +13,12 @@ gemspec
13
13
  # to review these custom flags (e.g. pg, serialport, etc).
14
14
  gem 'activesupport', '7.0.3'
15
15
  gem 'anemone', '0.7.2'
16
- gem 'authy', '3.0.0'
16
+ gem 'authy', '3.0.1'
17
17
  gem 'aws-sdk', '3.1.0'
18
18
  gem 'bettercap', '1.6.2'
19
19
  gem 'brakeman', '5.2.3'
20
20
  gem 'bson', '4.15.0'
21
- gem 'bundler', '>=2.3.14'
21
+ gem 'bundler', '>=2.3.15'
22
22
  gem 'bundler-audit', '0.9.1'
23
23
  gem 'bunny', '2.19.0'
24
24
  gem 'colorize', '0.8.1'
@@ -80,4 +80,4 @@ gem 'watir', '7.1.0'
80
80
  gem 'waveform', '0.1.2'
81
81
  gem 'webrick', '1.7.0'
82
82
  gem 'wicked_pdf', '2.6.3'
83
- gem 'yard', '0.9.27'
83
+ gem 'yard', '0.9.28'
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.465]:001 >>> PWN.help
40
+ pwn[v0.4.466]: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.465]:001 >>> PWN.help
55
+ pwn[v0.4.466]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -67,6 +67,27 @@ begin
67
67
  cmd: :simulate_power_cycle_warm_reset
68
68
  )
69
69
 
70
+ # TODO: Parse Binary Bits to Derive Readable Configuration
71
+ # e.g. 'Read & Write All Three Tracks' if binary_resp == '11101111'
72
+ # Probably better to split each bit and then evaluate
73
+ # binary_resp_arr = binary_resp.chars
74
+ # --------------------------------------------------
75
+ # Bit|Bit = 0 |Bit = 1
76
+ # --------------------------------------------------
77
+ # 0 |Track 1 Read not present |Track 1 Read present
78
+ # 1 |Track 2 Read not present |Track 2 Read present
79
+ # 2 |Track 3 Read not present |Track 3 Read present
80
+ # 3 |not used – should be 0 |not used
81
+ # 4 |Track 3 Write not present|Track 3 Write present
82
+ # 5 |Track 2 Write not present|Track 2 Write present
83
+ # 6 |Track 1 Write not present|Track 1 Write present
84
+ # 7 |parity bit** |parity bit**
85
+ exec_resp = PWN::Plugins::MSR206.exec(
86
+ msr206_obj: msr206_obj,
87
+ cmd: :configuration_request
88
+ )
89
+ puts "Configuration Bits: #{exec_resp[:binary].first}"
90
+
70
91
  exec_resp = PWN::Plugins::MSR206.exec(
71
92
  msr206_obj: msr206_obj,
72
93
  cmd: :version_report
@@ -308,6 +308,26 @@ module PWN
308
308
  raise e
309
309
  end
310
310
 
311
+ # Supported Method Parameters::
312
+ # parsed_cmd_resp_arr = binary(
313
+ # raw_byte_arr: 'required - raw_byte_arr produced in #parse_responses'
314
+ # )
315
+
316
+ private_class_method def self.binary(opts = {})
317
+ raw_byte_arr = opts[:raw_byte_arr]
318
+
319
+ binary_byte_arr = []
320
+ if raw_byte_arr
321
+ raw_byte_arr.first.split.each do |byte_str|
322
+ binary_byte_arr.push([byte_str].pack('H*').unpack('B*').first.reverse)
323
+ end
324
+ end
325
+
326
+ binary_byte_arr
327
+ rescue StandardError => e
328
+ raise e
329
+ end
330
+
311
331
  # Supported Method Parameters::
312
332
  # parsed_cmd_resp_arr = parse_responses(
313
333
  # cmd_resp: 'required - command response string'
@@ -342,31 +362,31 @@ module PWN
342
362
  end
343
363
 
344
364
  case cmd_resp
345
- when '21'
365
+ when '21', 'A1'
346
366
  response[:msg] = :invalid_command
347
- when '28'
367
+ when '28', 'A8'
348
368
  response[:msg] = :card_speed_measurement_start
349
- when '29'
369
+ when '29', 'A9'
350
370
  response[:msg] = :card_speed_measurement_end
351
- when '2A'
371
+ when '2A', 'AA'
352
372
  response[:msg] = :error
353
- when '2B'
373
+ when '2B', 'AB'
354
374
  response[:msg] = :no_data_found
355
- when '2D'
375
+ when '2D', 'AD'
356
376
  response[:msg] = :insufficient_leading_zeros_for_custom_writing
357
- when '2F'
377
+ when '2F', 'AF'
358
378
  response[:msg] = :first_lsb_char_not_one_for_custom_writing
359
- when '3A'
360
- response[:msg] = :power_on_report
361
- when '31'
379
+ when '31', 'B1'
362
380
  response[:msg] = :unsuccessful_read_after_write_track1
363
- when '32'
381
+ when '32', 'B2'
364
382
  response[:msg] = :unsuccessful_read_after_write_track2
365
- when '33'
383
+ when '33', 'B3'
366
384
  response[:msg] = :unsuccessful_read_after_write_track3
367
- when '3E'
385
+ when '3A', 'BA'
386
+ response[:msg] = :power_on_report
387
+ when '3E', 'BE'
368
388
  response[:msg] = :card_edge_detected
369
- when '3F'
389
+ when '3F', 'BF'
370
390
  response[:msg] = :communications_error
371
391
  when '5E'
372
392
  response[:msg] = :ack_command_completed
@@ -382,6 +402,7 @@ module PWN
382
402
  end
383
403
 
384
404
  response[:raw] = raw_byte_arr
405
+ response[:binary] = binary(raw_byte_arr: raw_byte_arr)
385
406
  response[:decoded] = decode(raw_byte_arr: raw_byte_arr)
386
407
  response
387
408
  rescue StandardError => e
@@ -584,57 +605,61 @@ module PWN
584
605
  break if exec_resp[:msg] == :ack_command_completed
585
606
  end
586
607
 
587
- puts "*** ISO Track Format: Standard #{'*' * 17}"
608
+ puts "\n*** ISO Track Format: Standard #{'*' * 17}"
588
609
  print 'TRACK 1 >>> '
589
610
  exec_resp = exec(
590
611
  msr206_obj: msr206_obj,
591
- cmd: :tx_iso_std_data_track1,
592
- params: [0x31]
612
+ cmd: :tx_iso_std_data_track1
593
613
  )
594
614
  puts exec_resp[:decoded]
595
615
  puts exec_resp.inspect
596
616
 
597
- # print ">> Track 1 (ALT DATA)\n"
598
- # exec_resp = exec(
599
- # msr206_obj: msr206_obj,
600
- # cmd: :alt_tx_iso_std_data_track1,
601
- # params: [0x31]
602
- # )
603
- # puts exec_resp.inspect
617
+ # (1..3).each do |n|
618
+ # print ">> Track 1 (ALT DATA) ISO Track Format: #{n}\n"
619
+ # exec_resp = exec(
620
+ # msr206_obj: msr206_obj,
621
+ # cmd: :alt_tx_iso_std_data_track1,
622
+ # params: [n.to_s]
623
+ # )
624
+ # puts exec_resp.inspect
625
+ # end
604
626
 
605
627
  print "\nTRACK 2 >>> "
606
628
  exec_resp = exec(
607
629
  msr206_obj: msr206_obj,
608
- cmd: :tx_iso_std_data_track2,
609
- params: [0x32]
630
+ cmd: :tx_iso_std_data_track2
610
631
  )
611
632
  puts exec_resp[:decoded]
612
633
  puts exec_resp.inspect
613
634
 
614
- # print ">> Track 2 (ALT DATA)\n"
615
- # exec_resp = exec(
616
- # msr206_obj: msr206_obj,
617
- # cmd: :alt_tx_iso_std_data_track2,
618
- # params: [0x32]
619
- # )
620
- # puts exec_resp.inspect
635
+ # (1..3).each do |n|
636
+ # print ">> Track 2 (ALT DATA) ISO Track Format: #{n}\n"
637
+ # exec_resp = exec(
638
+ # msr206_obj: msr206_obj,
639
+ # cmd: :alt_tx_iso_std_data_track2,
640
+ # params: [n.to_s]
641
+ # )
642
+ # puts exec_resp.inspect
643
+ # end
621
644
 
622
645
  print "\nTRACK 3 >>> "
623
646
  exec_resp = exec(
624
647
  msr206_obj: msr206_obj,
625
- cmd: :tx_iso_std_data_track3,
626
- params: [0x33]
648
+ cmd: :tx_iso_std_data_track3
627
649
  )
628
650
  puts exec_resp[:decoded]
629
651
  puts exec_resp.inspect
630
652
 
631
- # print ">> Track 3 (ALT DATA)\n"
632
- # exec_resp = exec(
633
- # msr206_obj: msr206_obj,
634
- # cmd: :alt_tx_iso_std_data_track3,
635
- # params: [0x33]
636
- # )
637
- # puts exec_resp.inspect
653
+ # (1..3).each do |n|
654
+ # print ">> Track 3 (ALT DATA) ISO Track Format: #{n}\n"
655
+ # exec_resp = exec(
656
+ # msr206_obj: msr206_obj,
657
+ # cmd: :alt_tx_iso_std_data_track3,
658
+ # params: [n.to_s]
659
+ # )
660
+ # puts exec_resp.inspect
661
+ # end
662
+
638
663
  rescue StandardError => e
639
664
  raise e
640
665
  ensure
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.465'
4
+ VERSION = '0.4.466'
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.465
4
+ version: 0.4.466
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-27 00:00:00.000000000 Z
11
+ date: 2022-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 3.0.0
47
+ version: 3.0.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - '='
53
53
  - !ruby/object:Gem::Version
54
- version: 3.0.0
54
+ version: 3.0.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: aws-sdk
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 2.3.14
117
+ version: 2.3.15
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.14
124
+ version: 2.3.15
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler-audit
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -968,14 +968,14 @@ dependencies:
968
968
  requirements:
969
969
  - - '='
970
970
  - !ruby/object:Gem::Version
971
- version: 0.9.27
971
+ version: 0.9.28
972
972
  type: :runtime
973
973
  prerelease: false
974
974
  version_requirements: !ruby/object:Gem::Requirement
975
975
  requirements:
976
976
  - - '='
977
977
  - !ruby/object:Gem::Version
978
- version: 0.9.27
978
+ version: 0.9.28
979
979
  description: https://github.com/0dayinc/pwn/README.md
980
980
  email:
981
981
  - request.pentest@0dayinc.com