pwn 0.4.480 → 0.4.483

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: 1745701a8f5d6aaca6159fc1a05fbc82fe547bc7e410215af1b69ca013d4e98d
4
- data.tar.gz: de67baa326728cbf3add2ef72498263fbf8d813e079e42e0c0af166a27b2a492
3
+ metadata.gz: 3b2312868fae10dcecce40572e6e7e1322c7acd5a2f9f7d0db67027379e1e3b6
4
+ data.tar.gz: 1a3de23ee29c029a6c6b42a2395e8b89b42f123d40ab0d4c485dfeb4372bf00b
5
5
  SHA512:
6
- metadata.gz: e06d7f528cdadd19f7941bae1682dff378a39388425caa5d29cabe0a3e297b1ce89678a31d1c5a0917c8af194e9bc0eaa0164e6c2fbea167f47d6f6911d1e893
7
- data.tar.gz: 64385168c97cada272ce1e3049367901952090070513a6d0e6196d6b9be0a2e2b4aeacfc58833c47a62653b1b9e5f4a1cdee33fcbf25890435010a962ace48fc
6
+ metadata.gz: 838d40e50d60ce05d1685c6284f2e1c267d8e7a19fa7c0f9883e239cd605a40aa2152df6a7deee3d588ae60c546b039bd9f53691af165491aed9ba3d5a11c80f
7
+ data.tar.gz: c54d893999875d1c3beeeb6a0cbe7a9a60376dece4bfa7d4cef70408af11c31cffada1f3300842ffaf71a085d24937d19f7911c7c032430bbd9a1b7dc0a247fd
data/Gemfile CHANGED
@@ -33,7 +33,7 @@ gem 'ipaddress', '0.8.3'
33
33
  gem 'js-beautify', '0.1.8'
34
34
  gem 'json', '2.6.2'
35
35
  gem 'jsonpath', '1.1.2'
36
- gem 'jwt', '2.4.0'
36
+ gem 'jwt', '2.4.1'
37
37
  gem 'luhn', '1.0.2'
38
38
  gem 'mail', '2.7.1'
39
39
  gem 'mongo', '2.17.1'
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.480]:001 >>> PWN.help
40
+ pwn[v0.4.483]: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.480]:001 >>> PWN.help
55
+ pwn[v0.4.483]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -101,7 +101,6 @@ begin
101
101
  puts '[(B)ackup Card]'
102
102
  puts '[(C)opy Card]'
103
103
  puts '[(L)oad Card from File]'
104
- puts '[(E)dit Card]'
105
104
  puts '[(W)arm Reset]'
106
105
  puts '[(Q)uit]'
107
106
  puts menu_msg
@@ -112,38 +111,24 @@ begin
112
111
  case option
113
112
  when :R
114
113
  menu_msg = 'READ CARD'
115
- # Read Card
116
114
  track_data = PWN::Plugins::MSR206.read_card(
117
115
  msr206_obj: msr206_obj
118
116
  )
119
117
  when :B
120
118
  menu_msg = 'BACKUP CARD TO FILE'
121
- # Read Card to Backup
122
119
  track_data = PWN::Plugins::MSR206.backup_card(
123
120
  msr206_obj: msr206_obj
124
121
  )
125
122
  when :C
126
123
  menu_msg = 'COPY CARD'
127
- # Copy Card
128
124
  track_data = PWN::Plugins::MSR206.copy_card(
129
125
  msr206_obj: msr206_obj
130
126
  )
131
127
  when :L
132
128
  menu_msg = 'LOAD FROM FILE'
133
- # Read Card to Backup
134
129
  track_data = PWN::Plugins::MSR206.load_card_from_file(
135
130
  msr206_obj: msr206_obj
136
131
  )
137
- when :E
138
- menu_msg = 'EDIT'
139
- # Read Target Card
140
- track_data = PWN::Plugins::MSR206.edit_card(
141
- msr206_obj: msr206_obj
142
- )
143
-
144
- # TODO: Save Original Card Contents
145
- # arm_to_write card to edit
146
- # read edited card to verify successful write
147
132
  when :W
148
133
  menu_msg = 'WARM RESET'
149
134
  exec_resp = PWN::Plugins::MSR206.exec(
@@ -662,6 +662,7 @@ module PWN
662
662
  params: [param]
663
663
  )
664
664
  exec_resp[:encoding] = encoding
665
+ exec_resp[:track_format] = [param]
665
666
  puts exec_resp[:decoded]
666
667
  puts exec_resp.inspect
667
668
  track_data_arr.push(exec_resp)
@@ -687,17 +688,20 @@ module PWN
687
688
  params: [param]
688
689
  )
689
690
  exec_resp[:encoding] = encoding
691
+ exec_resp[:track_format] = [param]
690
692
  puts exec_resp[:decoded]
691
693
  puts exec_resp.inspect
692
694
  track_data_arr.push(exec_resp)
693
695
 
694
696
  # 3 byte command
697
+ param = [0x5f] + [param]
695
698
  exec_resp = exec(
696
699
  msr206_obj: msr206_obj,
697
700
  cmd: cmd,
698
- params: [0x5f] + [param]
701
+ params: param
699
702
  )
700
703
  exec_resp[:encoding] = encoding
704
+ exec_resp[:track_format] = param
701
705
  puts exec_resp[:decoded]
702
706
  puts exec_resp.inspect
703
707
  track_data_arr.push(exec_resp)
@@ -708,6 +712,9 @@ module PWN
708
712
  :arm_to_write_with_raw,
709
713
  :arm_to_write_with_raw_speed_prompts
710
714
 
715
+ # TODO: Set Write Density for Tracks Here
716
+ # >>>
717
+
711
718
  if encoding == :iso
712
719
  cmds_arr = %i[
713
720
  load_iso_std_data_for_writing_track1
@@ -715,6 +722,37 @@ module PWN
715
722
  load_iso_std_data_for_writing_track3
716
723
  ]
717
724
 
725
+ # TODO: Get Data by cmd (e.g. load_iso_std_data_for_writing_track1)
726
+ cmds_arr.each_with_index do |cmd, track|
727
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
728
+ puts track_data[track][:decoded]
729
+ next if track_data[track][:decoded] == '+'
730
+
731
+ this_track = track_data[track][:decoded].chars.map do |c|
732
+ c.unpack1('H*').to_i(16)
733
+ end
734
+ track_eot = [0x04]
735
+ track_payload = this_track + track_eot
736
+ puts track_payload.inspect
737
+ exec_resp = exec(
738
+ msr206_obj: msr206_obj,
739
+ cmd: cmd,
740
+ params: track_payload
741
+ )
742
+ exec_resp[:encoding] = encoding
743
+ puts exec_resp.inspect
744
+ track_data_arr.push(exec_resp)
745
+ end
746
+ end
747
+
748
+ if encoding == :iso_alt
749
+ cmds_arr = %i[
750
+ alt_load_iso_std_data_for_writing_track1
751
+ alt_load_iso_std_data_for_writing_track2
752
+ alt_load_iso_std_data_for_writing_track3
753
+ ]
754
+
755
+ # TODO: Get Data by cmd (e.g. alt_load_iso_std_data_for_writing_track1)
718
756
  cmds_arr.each_with_index do |cmd, track|
719
757
  puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
720
758
  puts track_data[track][:decoded]
@@ -723,12 +761,14 @@ module PWN
723
761
  this_track = track_data[track][:decoded].chars.map do |c|
724
762
  c.unpack1('H*').to_i(16)
725
763
  end
726
- this_track_w_eot = this_track + [0x04]
727
- puts this_track_w_eot.inspect
764
+ track_format = track_data[track][:track_format]
765
+ track_eot = [0x04]
766
+ track_payload = track_format + this_track + track_eot
767
+ puts track_payload.inspect
728
768
  exec_resp = exec(
729
769
  msr206_obj: msr206_obj,
730
770
  cmd: cmd,
731
- params: this_track_w_eot
771
+ params: track_payload
732
772
  )
733
773
  exec_resp[:encoding] = encoding
734
774
  puts exec_resp.inspect
@@ -736,45 +776,36 @@ module PWN
736
776
  end
737
777
  end
738
778
 
739
- # if encoding == :iso_alt
740
- # cmds_arr = %i[
741
- # alt_load_iso_std_data_for_writing_track1
742
- # alt_load_iso_std_data_for_writing_track2
743
- # alt_load_iso_std_data_for_writing_track3
744
- # ]
745
-
746
- # cmds_arr.each do |cmd|
747
- # puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
748
- # exec_resp = exec(
749
- # msr206_obj: msr206_obj,
750
- # cmd: cmd
751
- # )
752
- # exec_resp[:encoding] = encoding
753
- # puts exec_resp[:decoded]
754
- # puts exec_resp.inspect
755
- # track_data_arr.push(exec_resp)
756
- # end
757
- # end
758
-
759
- # if encoding == :raw
760
- # cmds_arr = %i[
761
- # load_custom_data_for_writing_track1
762
- # load_custom_data_for_writing_track2
763
- # load_custom_data_for_writing_track3
764
- # ]
765
-
766
- # cmds_arr.each do |cmd|
767
- # puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
768
- # exec_resp = exec(
769
- # msr206_obj: msr206_obj,
770
- # cmd: cmd
771
- # )
772
- # exec_resp[:encoding] = encoding
773
- # puts exec_resp[:decoded]
774
- # puts exec_resp.inspect
775
- # track_data_arr.push(exec_resp)
776
- # end
777
- # end
779
+ if encoding == :raw
780
+ cmds_arr = %i[
781
+ load_custom_data_for_writing_track1
782
+ load_custom_data_for_writing_track2
783
+ load_custom_data_for_writing_track3
784
+ ]
785
+
786
+ # TODO: Get Data by cmd (e.g. load_custom_data_for_writing_track1)
787
+ cmds_arr.each_with_index do |cmd, track|
788
+ puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
789
+ puts track_data[track][:decoded]
790
+ next if track_data[track][:decoded] == '+'
791
+
792
+ this_track = track_data[track][:decoded].chars.map do |c|
793
+ c.unpack1('H*').to_i(16)
794
+ end
795
+ track_format = track_data[track][:track_format]
796
+ track_eot = [0x04]
797
+ track_payload = track_format + this_track + track_eot
798
+ puts track_payload.inspect
799
+ exec_resp = exec(
800
+ msr206_obj: msr206_obj,
801
+ cmd: cmd,
802
+ params: track_payload
803
+ )
804
+ exec_resp[:encoding] = encoding
805
+ puts exec_resp.inspect
806
+ track_data_arr.push(exec_resp)
807
+ end
808
+ end
778
809
 
779
810
  exec_resp = PWN::Plugins::MSR206.exec(
780
811
  msr206_obj: msr206_obj,
@@ -927,8 +958,8 @@ module PWN
927
958
  coercivity = :waiting_for_selection
928
959
  loop do
929
960
  puts "\nCOERCIVITY OPTIONS:"
930
- puts '[(H)igh (Black Stripe)]'
931
- puts '[(L)ow (Brown Stripe)]'
961
+ puts '[(H)igh (Most Often Black Stripe)]'
962
+ puts '[(L)ow (Most Often Brown Stripe)]'
932
963
  print 'COERCIVITY LEVEL >>> '
933
964
  coercivity_choice = gets.scrub.chomp.strip.upcase.to_sym
934
965
 
@@ -1053,32 +1084,6 @@ module PWN
1053
1084
  raise e
1054
1085
  end
1055
1086
 
1056
- # Supported Method Parameters::
1057
- # PWN::Plugins::MSR206.edit_card(
1058
- # msr206_obj: 'required - msr206_obj returned from #connect method'
1059
- # )
1060
-
1061
- public_class_method def self.edit_card(opts = {})
1062
- msr206_obj = opts[:msr206_obj]
1063
-
1064
- # Read Card to Backup
1065
- track_data = backup_card(
1066
- msr206_obj: msr206_obj
1067
- )
1068
-
1069
- # TODO: Inline Editing
1070
-
1071
- encoding = track_data.first[:encoding] if track_data.length == 3
1072
- # TODO: Save Original Card Contents
1073
- write_card(
1074
- msr206_obj: msr206_obj,
1075
- encoding: encoding,
1076
- track_data: track_data
1077
- )
1078
- rescue StandardError => e
1079
- raise e
1080
- end
1081
-
1082
1087
  # Supported Method Parameters::
1083
1088
  # PWN::Plugins::MSR206.get_config(
1084
1089
  # msr206_obj: 'required - msr206_obj returned from #connect method'
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.480'
4
+ VERSION = '0.4.483'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.480
4
+ version: 0.4.483
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -310,14 +310,14 @@ dependencies:
310
310
  requirements:
311
311
  - - '='
312
312
  - !ruby/object:Gem::Version
313
- version: 2.4.0
313
+ version: 2.4.1
314
314
  type: :runtime
315
315
  prerelease: false
316
316
  version_requirements: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - '='
319
319
  - !ruby/object:Gem::Version
320
- version: 2.4.0
320
+ version: 2.4.1
321
321
  - !ruby/object:Gem::Dependency
322
322
  name: luhn
323
323
  requirement: !ruby/object:Gem::Requirement