pwn 0.4.479 → 0.4.480

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: 5ca99e7a8fee7afaa96d59d48264cf78faaf50b54d9d355b2efa1064f50bc618
4
- data.tar.gz: 416841cc29f3d57207d6b61b783636af8d9b93e29af36b901132492b70066405
3
+ metadata.gz: 1745701a8f5d6aaca6159fc1a05fbc82fe547bc7e410215af1b69ca013d4e98d
4
+ data.tar.gz: de67baa326728cbf3add2ef72498263fbf8d813e079e42e0c0af166a27b2a492
5
5
  SHA512:
6
- metadata.gz: 78eee723d46b98c17f833e10086a34d95e9aaaac55180cce18cb1106b45821d0739613ca53e99d1f72ef311dad108617bf9e2ee178ac0e67cc9daa2582921d58
7
- data.tar.gz: 45661044936bbc8a6bdac18a61c0daaa9fd0a28565f3a50fde1dcbf903ede702e7e07f69806e4f7097ba754ca032fa4a1897888fcd5a0314ae986eecb5b451e6
6
+ metadata.gz: e06d7f528cdadd19f7941bae1682dff378a39388425caa5d29cabe0a3e297b1ce89678a31d1c5a0917c8af194e9bc0eaa0164e6c2fbea167f47d6f6911d1e893
7
+ data.tar.gz: 64385168c97cada272ce1e3049367901952090070513a6d0e6196d6b9be0a2e2b4aeacfc58833c47a62653b1b9e5f4a1cdee33fcbf25890435010a962ace48fc
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.479]:001 >>> PWN.help
40
+ pwn[v0.4.480]: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.479]:001 >>> PWN.help
55
+ pwn[v0.4.480]:001 >>> PWN.help
56
56
  ```
57
57
 
58
58
 
@@ -613,6 +613,7 @@ module PWN
613
613
  msr206_obj: msr206_obj,
614
614
  cmd: type
615
615
  )
616
+ puts exec_resp.inspect
616
617
 
617
618
  print 'Ready to Read. Please Swipe Card Now:'
618
619
  loop do
@@ -621,6 +622,7 @@ module PWN
621
622
  cmd: type
622
623
  )
623
624
 
625
+ puts exec_resp[:msg]
624
626
  break if exec_resp[:msg] == :ack_command_completed
625
627
  end
626
628
 
@@ -715,6 +717,9 @@ module PWN
715
717
 
716
718
  cmds_arr.each_with_index do |cmd, track|
717
719
  puts "\n*** #{cmd.to_s.gsub('_', ' ').upcase} #{'*' * 17}"
720
+ puts track_data[track][:decoded]
721
+ next if track_data[track][:decoded] == '+'
722
+
718
723
  this_track = track_data[track][:decoded].chars.map do |c|
719
724
  c.unpack1('H*').to_i(16)
720
725
  end
@@ -726,7 +731,6 @@ module PWN
726
731
  params: this_track_w_eot
727
732
  )
728
733
  exec_resp[:encoding] = encoding
729
- puts exec_resp[:decoded]
730
734
  puts exec_resp.inspect
731
735
  track_data_arr.push(exec_resp)
732
736
  end
@@ -776,6 +780,7 @@ module PWN
776
780
  msr206_obj: msr206_obj,
777
781
  cmd: type
778
782
  )
783
+ puts exec_resp.inspect
779
784
 
780
785
  print 'Ready to Write. Please Swipe Card Now:'
781
786
  loop do
@@ -887,7 +892,80 @@ module PWN
887
892
  cmd: :yellow_off
888
893
  )
889
894
 
890
- puts 'complete.'
895
+ track_data
896
+ rescue StandardError => e
897
+ raise e
898
+ end
899
+
900
+ # Supported Method Parameters::
901
+ # PWN::Plugins::MSR206.write_card(
902
+ # msr206_obj: 'required - msr206_obj returned from #connect method',
903
+ # encoding: 'required - :iso || :alt_iso || :raw',
904
+ # track_data: 'requred - track data to write (see #backup_card for structure)'
905
+ # )
906
+
907
+ public_class_method def self.write_card(opts = {})
908
+ msr206_obj = opts[:msr206_obj]
909
+ encoding = opts[:encoding].to_s.scrub.strip.chomp.to_sym
910
+ track_data = opts[:track_data]
911
+
912
+ puts 'IN ORDER TO GET BLANK TRACKS, A STRONG MAGNETIC FIELD MUST BE PRESENT TO FIRST WIPE THE CARD TARGETED FOR WRITING.'
913
+ # puts 'Default Write Current:'
914
+ # exec_resp = exec(
915
+ # msr206_obj: msr206_obj,
916
+ # cmd: :view_default_write_current
917
+ # )
918
+ # puts exec_resp.inspect
919
+
920
+ # puts 'Temporary Write Current:'
921
+ # exec_resp = exec(
922
+ # msr206_obj: msr206_obj,
923
+ # cmd: :view_temp_write_current
924
+ # )
925
+ # puts exec_resp.inspect
926
+
927
+ coercivity = :waiting_for_selection
928
+ loop do
929
+ puts "\nCOERCIVITY OPTIONS:"
930
+ puts '[(H)igh (Black Stripe)]'
931
+ puts '[(L)ow (Brown Stripe)]'
932
+ print 'COERCIVITY LEVEL >>> '
933
+ coercivity_choice = gets.scrub.chomp.strip.upcase.to_sym
934
+
935
+ # Write Current Settings vs. Media Coercivties
936
+ # Media Coercivity (Oersteds)|Write Current Setting*|Typical Usage
937
+ # 300 |36 |Low coercivity
938
+ # 600 | |
939
+ # 1800 | |
940
+ # 3600+ |255 |Typical high corcivity
941
+
942
+ case coercivity_choice
943
+ when :H
944
+ coercivity = [0x32, 0x35, 0x35]
945
+ break
946
+ when :L
947
+ coercivity = [0x30, 0x33, 0x36]
948
+ break
949
+ end
950
+ end
951
+
952
+ exec_resp = exec(
953
+ msr206_obj: msr206_obj,
954
+ cmd: :set_temp_write_current,
955
+ params: coercivity
956
+ )
957
+
958
+ track_data = wait_for_swipe(
959
+ msr206_obj: msr206_obj,
960
+ type: :arm_to_write_no_raw,
961
+ encoding: encoding,
962
+ track_data: track_data
963
+ )
964
+
965
+ exec_resp = PWN::Plugins::MSR206.exec(
966
+ msr206_obj: msr206_obj,
967
+ cmd: :simulate_power_cycle_warm_reset
968
+ )
891
969
 
892
970
  track_data
893
971
  rescue StandardError => e
@@ -909,16 +987,11 @@ module PWN
909
987
 
910
988
  encoding = track_data.first[:encoding] if track_data.length == 3
911
989
  # TODO: Save Original Card Contents
912
- track_data = wait_for_swipe(
990
+ write_card(
913
991
  msr206_obj: msr206_obj,
914
- type: :arm_to_write_no_raw,
915
992
  encoding: encoding,
916
993
  track_data: track_data
917
994
  )
918
-
919
- puts 'complete.'
920
-
921
- track_data
922
995
  rescue StandardError => e
923
996
  raise e
924
997
  end
@@ -971,16 +1044,11 @@ module PWN
971
1044
  encoding = track_data.first[:encoding] if track_data.length == 3
972
1045
 
973
1046
  # TODO: Save Original Card Contents
974
- track_data = wait_for_swipe(
1047
+ write_card(
975
1048
  msr206_obj: msr206_obj,
976
- type: :arm_to_write_no_raw,
977
1049
  encoding: encoding,
978
1050
  track_data: track_data
979
1051
  )
980
-
981
- puts 'complete.'
982
-
983
- track_data
984
1052
  rescue StandardError => e
985
1053
  raise e
986
1054
  end
@@ -1002,15 +1070,11 @@ module PWN
1002
1070
 
1003
1071
  encoding = track_data.first[:encoding] if track_data.length == 3
1004
1072
  # TODO: Save Original Card Contents
1005
- track_data = wait_for_swipe(
1073
+ write_card(
1006
1074
  msr206_obj: msr206_obj,
1007
- type: :arm_to_write_no_raw,
1008
- encoding: encoding
1075
+ encoding: encoding,
1076
+ track_data: track_data
1009
1077
  )
1010
-
1011
- puts 'complete.'
1012
-
1013
- track_data
1014
1078
  rescue StandardError => e
1015
1079
  raise e
1016
1080
  end
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.479'
4
+ VERSION = '0.4.480'
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.479
4
+ version: 0.4.480
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.