pwn 0.4.456 → 0.4.458
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/pwn/plugins/msr206.rb +202 -0
- data/lib/pwn/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85a03a42892f8f86f382af989d14ecb6abdff9043de8d4e6b45609c659d25a5a
|
4
|
+
data.tar.gz: 5ad007f33886674f720ab1ba73fff4da5cb1cfdeec8a5f5202de8fd4707c60ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 831872dde165783f8f102c094d29b6d73b7556b29ec6d97567b97324cddf4fdf72e87861100e2cd4d9cbf302f453ede7b0f79ddb8369c4018e4d5d44a9990c0d
|
7
|
+
data.tar.gz: 3cef3140532c9f1368aec2f9290dc79a52c19b810a0861a982655c35681d6ff8b35fe04a72aa4314bfd974909aab42c7171f2aec685096d3d5e0b3d8eecafa49
|
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.
|
40
|
+
pwn[v0.4.458]: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.
|
55
|
+
pwn[v0.4.458]:001 >>> PWN.help
|
56
56
|
```
|
57
57
|
|
58
58
|
|
data/lib/pwn/plugins/msr206.rb
CHANGED
@@ -24,6 +24,200 @@ module PWN
|
|
24
24
|
raise e
|
25
25
|
end
|
26
26
|
|
27
|
+
# Supported Method Parameters::
|
28
|
+
# cmds = PWN::Plugins::MSR206.list_cmds
|
29
|
+
public_class_method def self.list_cmds
|
30
|
+
# Returns an Array of Symbols
|
31
|
+
cmds = %i[
|
32
|
+
version_report
|
33
|
+
simulate_power_cycle_warm_reset
|
34
|
+
configuration_request
|
35
|
+
reproduce_last_command
|
36
|
+
resume_transmission_to_host
|
37
|
+
pause_transmission_to_host
|
38
|
+
abort_command
|
39
|
+
red_on
|
40
|
+
red_off
|
41
|
+
red_flash
|
42
|
+
green_on
|
43
|
+
green_off
|
44
|
+
green_flash
|
45
|
+
yellow_on
|
46
|
+
yellow_off
|
47
|
+
yellow_flash
|
48
|
+
arm_to_read
|
49
|
+
arm_to_read_w_speed_prompts
|
50
|
+
tx_iso_std_data_track1
|
51
|
+
tx_iso_std_data_track2
|
52
|
+
tx_iso_std_data_track3
|
53
|
+
alt_tx_iso_std_data_track1
|
54
|
+
alt_tx_iso_std_data_track2
|
55
|
+
alt_tx_iso_std_data_track3
|
56
|
+
tx_error_data
|
57
|
+
tx_custom_data_forward_track1
|
58
|
+
tx_custom_data_forward_track2
|
59
|
+
tx_custom_data_forward_track3
|
60
|
+
tx_passbook_data
|
61
|
+
alt_tx_passbook_data
|
62
|
+
write_verify
|
63
|
+
card_edge_detect
|
64
|
+
load_iso_std_data_for_writing_track1
|
65
|
+
load_iso_std_data_for_writing_track2
|
66
|
+
load_iso_std_data_for_writing_track3
|
67
|
+
alt_load_iso_std_data_for_writing_track1
|
68
|
+
alt_load_iso_std_data_for_writing_track2
|
69
|
+
alt_load_iso_std_data_for_writing_track3
|
70
|
+
load_passbook_data_for_writing
|
71
|
+
load_custom_data_for_writing_track1
|
72
|
+
load_custom_data_for_writing_track2
|
73
|
+
load_custom_data_for_writing_track3
|
74
|
+
set_write_density
|
75
|
+
set_write_density_210_bpi_tracks13
|
76
|
+
set_write_density_75_bpi_tracks13
|
77
|
+
set_write_density_210_bpi_tracks2
|
78
|
+
set_write_density_75_bpi_tracks2
|
79
|
+
set_default_write_current
|
80
|
+
view_default_write_current
|
81
|
+
set_temp_write_current
|
82
|
+
view_temp_write_current
|
83
|
+
arm_to_write_with_raw
|
84
|
+
arm_to_write_no_raw
|
85
|
+
arm_to_write_with_raw_speed_prompts
|
86
|
+
]
|
87
|
+
rescue StandardError => e
|
88
|
+
raise e
|
89
|
+
end
|
90
|
+
|
91
|
+
# Supported Method Parameters::
|
92
|
+
# PWN::Plugins::MSR206.exec(
|
93
|
+
# msr206_obj: 'required - msr206_obj returned from #connect method'
|
94
|
+
# cmd: 'required - cmd returned from #list_cmds method',
|
95
|
+
# params: 'optional - parameters for specific command returned from #list_params method'
|
96
|
+
# )
|
97
|
+
public_class_method def self.exec(opts = {})
|
98
|
+
msr206_obj = opts[:msr206_obj]
|
99
|
+
cmd = opts[:cmd].to_s.scrub.strip.chomp
|
100
|
+
params = opts[:params].to_s.scrub.strip.chomp
|
101
|
+
|
102
|
+
params_bytes = []
|
103
|
+
case cmd.to_sym
|
104
|
+
when :version_report
|
105
|
+
cmd_bytes = [0x39]
|
106
|
+
when :simulate_power_cycle_warm_reset
|
107
|
+
cmd_bytes = [0x7F]
|
108
|
+
when :configuration_request
|
109
|
+
cmd_bytes = [0x23]
|
110
|
+
when :reproduce_last_command
|
111
|
+
cmd_bytes = [0x25]
|
112
|
+
when :resume_transmission_to_host
|
113
|
+
cmd_bytes = [0x11]
|
114
|
+
when :pause_transmission_to_host
|
115
|
+
cmd_bytes = [0x13]
|
116
|
+
when :abort_command
|
117
|
+
cmd_bytes = [0x1B]
|
118
|
+
when :red_on
|
119
|
+
cmd_bytes = [0x4D]
|
120
|
+
when :red_off
|
121
|
+
cmd_bytes = [0x6D]
|
122
|
+
when :red_flash
|
123
|
+
cmd_bytes = [0x29]
|
124
|
+
when :green_on
|
125
|
+
cmd_bytes = [0x4C]
|
126
|
+
when :green_off
|
127
|
+
cmd_bytes = [0x6C]
|
128
|
+
when :green_flash
|
129
|
+
cmd_bytes = [0x28]
|
130
|
+
when :yellow_on
|
131
|
+
cmd_bytes = [0x4B]
|
132
|
+
when :yellow_off
|
133
|
+
cmd_bytes = [0x6B]
|
134
|
+
when :yellow_flash
|
135
|
+
cmd_bytes = [0x7C]
|
136
|
+
when :arm_to_read
|
137
|
+
cmd_bytes = [0x50]
|
138
|
+
when :arm_to_read_w_speed_prompts
|
139
|
+
cmd_bytes = [0x70]
|
140
|
+
when :tx_iso_std_data_track1
|
141
|
+
cmd_bytes = [0x51]
|
142
|
+
when :tx_iso_std_data_track2
|
143
|
+
cmd_bytes = [0x52]
|
144
|
+
when :tx_iso_std_data_track3
|
145
|
+
cmd_bytes = [0x53]
|
146
|
+
when :tx_error_data
|
147
|
+
cmd_bytes = [0x49]
|
148
|
+
when :tx_custom_data_forward_track1, :load_custom_data_for_writing_track1
|
149
|
+
cmd_bytes = [0x45]
|
150
|
+
when :tx_custom_data_forward_track2, :load_custom_data_for_writing_track2
|
151
|
+
cmd_bytes = [0x46]
|
152
|
+
when :tx_custom_data_forward_track3, :load_custom_data_for_writing_track3
|
153
|
+
cmd_bytes = [0x47]
|
154
|
+
when :tx_passbook_data
|
155
|
+
cmd_bytes = [0x58]
|
156
|
+
when :alt_tx_passbook_data
|
157
|
+
cmd_bytes = [0x78]
|
158
|
+
when :write_verify
|
159
|
+
cmd_bytes = [0x3F]
|
160
|
+
when :card_edge_detect
|
161
|
+
cmd_bytes = [0x26]
|
162
|
+
when :load_iso_std_data_for_writing_track1
|
163
|
+
cmd_bytes = [0x41]
|
164
|
+
when :load_iso_std_data_for_writing_track2
|
165
|
+
cmd_bytes = [0x42]
|
166
|
+
when :load_iso_std_data_for_writing_track3
|
167
|
+
cmd_bytes = [0x43]
|
168
|
+
when :alt_load_iso_std_data_for_writing_track1
|
169
|
+
cmd_bytes = [0x61]
|
170
|
+
when :alt_load_iso_std_data_for_writing_track2
|
171
|
+
cmd_bytes = [0x62]
|
172
|
+
when :alt_load_iso_std_data_for_writing_track3
|
173
|
+
cmd_bytes = [0x63]
|
174
|
+
when :load_passbook_data_for_writing
|
175
|
+
cmd_bytes = [0x6A]
|
176
|
+
when :set_write_density
|
177
|
+
cmd_bytes = [0x3B]
|
178
|
+
when :set_write_density_210_bpi_tracks13
|
179
|
+
cmd_bytes = [0x4F]
|
180
|
+
when :set_write_density_75_bpi_tracks13
|
181
|
+
cmd_bytes = [0x6F]
|
182
|
+
when :set_write_density_210_bpi_tracks2
|
183
|
+
cmd_bytes = [0x4E]
|
184
|
+
when :set_write_density_75_bpi_tracks2
|
185
|
+
cmd_bytes = [0x6E]
|
186
|
+
when :set_default_write_current
|
187
|
+
cmd_bytes = [0x5B]
|
188
|
+
when :view_default_write_current
|
189
|
+
cmd_bytes = [0x5D]
|
190
|
+
when :set_temp_write_current
|
191
|
+
cmd_bytes = [0x3C]
|
192
|
+
when :view_temp_write_current
|
193
|
+
cmd_bytes = [0x3E]
|
194
|
+
when :arm_to_write_with_raw
|
195
|
+
cmd_bytes = [0x40]
|
196
|
+
when :arm_to_write_no_raw
|
197
|
+
cmd_bytes = [0x5A]
|
198
|
+
when :arm_to_write_with_raw_speed_prompts
|
199
|
+
cmd_bytes = [0x7A]
|
200
|
+
else
|
201
|
+
raise "Unsupported Command: #{cmd}. Supported commands are:\n#{list_cmds}\n\n\n"
|
202
|
+
end
|
203
|
+
|
204
|
+
# If parameters to a command are set, append them.
|
205
|
+
cmd_bytes += params_bytes unless params_bytes.empty?
|
206
|
+
# Execute the command.
|
207
|
+
cmd_bytes.each do |byte|
|
208
|
+
son_micro_rfid_obj[:serial_conn].putc(byte)
|
209
|
+
end
|
210
|
+
|
211
|
+
# Parse commands response(s).
|
212
|
+
# Return an array of hashes.
|
213
|
+
parse_responses(
|
214
|
+
son_micro_rfid_obj: son_micro_rfid_obj,
|
215
|
+
cmd: cmd.to_sym
|
216
|
+
)
|
217
|
+
rescue StandardError => e
|
218
|
+
raise e
|
219
|
+
end
|
220
|
+
|
27
221
|
# Supported Method Parameters::
|
28
222
|
# PWN::Plugins::MSR206.disconnect(
|
29
223
|
# msr206_obj: 'required - msr206_obj returned from #connect method'
|
@@ -58,6 +252,14 @@ module PWN
|
|
58
252
|
flow_control: 'optional (defaults to SerialPort::NONE)'
|
59
253
|
)
|
60
254
|
|
255
|
+
cmds = #{self}.list_cmds
|
256
|
+
|
257
|
+
parsed_cmd_resp_arr = #{self}.exec(
|
258
|
+
msr206_obj: 'required msr206_obj returned from #connect method',
|
259
|
+
cmd: 'required - cmd returned from #list_cmds method',
|
260
|
+
params: 'optional - parameters for specific command returned from #list_params method'
|
261
|
+
)
|
262
|
+
|
61
263
|
#{self}.disconnect(
|
62
264
|
msr206_obj: 'required msr206_obj returned from #connect method'
|
63
265
|
)
|
data/lib/pwn/version.rb
CHANGED