使用Proxmark3进行MIFARE Classic卡的安全测试
使用Proxmark3进行MIFARE Classic卡的安全测试
Proxmark3的MIFARE安全测试是很多朋友都非常重视的一部分,所以我们特地以这个部分进行介绍,告诉大家如何当你完成前期操作之后,进行MIFARE CLassic卡类的安全测试操作。
首先,我们要把高频天线连接到Proxmark3的天线接口。当我们连接完成之后,我们就需要查看一下天线与Proxmark3是否连接正常并且正常电压为多少?
命令:hw tune 这个命令大概需要几秒的时间进行回显
有些朋友会问,当我输入完hw tune之后,是不是接下来就是输入hf tune呢?
我个人认为当你输入完hw tune之后就没有必要再次输入hf tune,这是多此一举的操作。
并且hf tune的命令实际上是为了当你需要调试手工高频天线而使用的。
当你输入完hw tune之后,窗口所显示的HF antenna后面的数值就是现在非工作状态下的电压,当你把相关的卡放在高频天线上面/下面的时候,电压就会所变化了(依然是非工作状态下)。
从图中我们可以看到,当卡没有放到天线的情况下电压为9.22v,而卡放在天线之后电压将为3.9v,现在的电压依然是为非工作电压,但是从这个现象当中我们会得到很多非常有意义的数据。
变化出来了!第三张hw tune的结果为8.57v,是因为我把一张125kHZ的门禁卡放在了高频天线上面,所以其电压的降幅很低,但是如果我把一张13.56MHz的卡放在 上面就好像第二张图片那样子,电压会降低会很多,有时候会是10v左右。从这个变化当中我们就可以初步识别出高频与低频卡的区别了
当确定需要测试的卡为13.56MHz卡之后,就开始需要深入的了解这卡的信息了!我们可以从hf命令集当中找到相关的命令
命令:hf 14a reader
什么是RATS?RATS是Request for answer to select (选择应答请求)
什么是proprietary non-iso14443a card found,RATS not supported?
有时候Proxmark3在读取部分MIFARE Classic卡UID的信息时,因为无法得到RATS的返回信息,会判断为非ISO14443a标准的卡.国内有太多MIFARE Classic类的卡,并不是NXP出产的,所以Proxmark3就会出现了这样子的提示!
从图中的信息我们可以看到的是现在读取的卡[ATQA]为04 00,从NXP的识别文档我们可以看到类似的信息。通常ATQA为04 00数值的卡,大部分都是MIFARE Classic或者是CPU兼容模式下的MIFARE Classic。
当我们可以确定卡类型之后就可以针对其特性进行相关的安全测试了,我之前在RadioWar写过一篇关于MIFARE Classic安全的文章“从乌云的错误漏洞分析看Mifare Classic安全”, 介绍了MIFARE Classic系列卡类主要的安全问题,通常当我们拿到相关的卡的时候,我们应该先用chk命令去检测一下测试卡是否存在出厂时遗留的默认Key,默认的 Key A/Key B是使得MIFARE Classic系列雪上加霜的主要成因,因为使用默认的Key导致恶意用户可以使用其进行卡的信息读取以及修改。
已知默认Key列表
- ffffffffffff
- b0b1b2b3b4b5
- 4d3a99c351dd
- 1a982c7e459a
- 000000000000
- d3f7d3f7d3f7
- 0a1a2a3a4a5
- aabbccddeeff
从列表当中你是否可以看出另外一个端倪呢?没错,Key的排列大部分都是ABAB/AABB这样子的。所以在你使用MIFARE Classic的时候,请不要使用默认的Key以及不要使用固定的排列,以免被恶意用户进行Key的穷举攻击。
命令: hf mf chk 0 A a0a1a2a3a4a5 检查0区Key A是否为a0a1a2a3a4a5
当命令回显为isOK:01 vaid key:a0a1a2a3a4a5
经过默认key的检测,我们发现测试卡当中存在一个默认key:a0a1a2a3a4a5。我们就可以利用这个默认Key进行区块的读取以及更进一步的操作了。有些童鞋就会问如何我们检测默认Key全部都不存在的情况下那怎么办?那样子我们就需要利用“从乌云的错误漏洞分析看Mifare Classic安全”所提到的PRNG漏洞进行测试了。
命令: hf mf mifare
当输入命令后,窗口会出现类似进度状态的显示……
这个时候就需要耐心去等待结果,因为整个过程花费的时间有快有慢。
当你在无法继续等候或者想停止该项操作的时候,请记住前面提到的“不要使用CTRL+C或者直接关闭窗口,而是选择按下你板子上的黑色按钮”, 否则你有可能会使得Proxmark3出现故障或者报错之类的情况出现。结果出现后,首先要判断的是Found invaid Key还是Found vaid key,如果是invaid key的话,就是代表基于PRNG的漏洞出现的Key是错误的,并非正确的Key来的。但是最起码可以证明卡是存在PRNG漏洞的。接下来就是记住数值当 中的Nt,这个数值将会被利用来进行第二次的PRNG漏洞的攻击测试
命令: hf mf mifare 524bb6a2
当输入命令后,窗口会再次进入进度状态,依然请记住耐心等待结果。并且如需停止,请按黑色按钮
因为基于PRNG的漏洞进行的破解,所以有时候会出现多次Nt的循环,这是很正常的结果,我们需要不断的利用Nt去进行真正Key的破解。整个过程是漫长而乏味的,所以我们才需要借用默认Key的检测来减少安全测试的耗时。
当使用hf mf mifare得出Key后,我们可以按照得到默认Key的后续操作一样,[读取卡中的区域信息]或者进行全卡所有区域的Key破解测试。
命令: hf mf nested 1 0 A a0a1a2a3a4a5 基于验证漏洞进行全卡区域Key破解
必须知道一个正确的Key方可进行相关的操作
这个操作的过程比较短暂,而且前提条件是必须存在一个正确的Key进行操作,否者就无法继续进行。基本上MIFARE Classic的安全测试就已经完成了,而基于一些全加密或者CPU兼容模式MIFARE Classic(Cryto-1算法)的卡,我们还可以使用嗅探的测试去进行测试。前提是要记住嗅探模式是需要在正常交互模式下进行的!不要以为用个读卡器读取一下卡就可以了
使用Proxmark3进行MIFARE Classic卡的安全测试的更多相关文章
- 复制MIFARE Classic卡
Mifare Classic 1K智能卡介绍及nfc-tools的使用 [原创]RFID安全之——ACR122U菜鸟初体验-『智能设备』-看雪安全论坛 复制MIFARE Classic小区门禁卡记录 ...
- 从乌云的错误漏洞分析看Mifare Classic安全
前言 12年2月初国内著名安全问题反馈平台-乌云发布了有关某公司员工卡的金额效验算法破解的安全问题.从整个漏洞分析来看,漏洞的提交者把员工卡的数据分析得非常仔细,以至很多刚刚接触或者未曾接触的都纷纷赞 ...
- MIFARE Classic S50技术详解
Mifare Classic 简介 MIFARE Classic是恩智浦半导体开发的可用于非接触式智能卡,符合ISO/IEC 14443 A类标准.用于公共交通票证等应用,还可用于各类其他应用有S20 ...
- 谈谈 Mifare Classic 破解
2008 年的时候,荷兰恩智浦(NXP)公司开发的 RFID 产品 Mifare Classic 就被破解了,黑历史在这里就不在具体说了,想详细了解可以自己 Google 百度.现在还是重点说说关于 ...
- [转]谈谈 Mifare Classic 破解
Mifare Classic 提供 1 Kb - 4Kb 的容量,现在国内采用的多数是 Mifare Classic 1k(S50)[后面简称 M1 卡] M1 卡有从 0 到 15 共 16 个扇区 ...
- Mifare Classic Tool(MCT)汉化版
2.0.4 到 2.0.6的更改: 注意:本汉化版本可能不稳定,与此发生的一切后果与作者和汉化者无关. Version : * Bugfix: Fixed crash which occurred i ...
- 破解简单Mifare射频卡密钥杂记
先要了解一点大学城浴卡用的是什么卡,经查证是Mifare S50卡,也有叫ISO14443A的(协议名).本来想看看大学城浴卡有没有安全漏洞,没想到浴卡公司在安全性上几乎是蔑视我们大学生的智商,虽然被 ...
- 由Mifare 1卡破解带来的危险以及应对方法
今年年初以来,一个消息的传出震惊了整个IC卡行业.最近,德国和美国的研究人员成功地破解了NXP的Mifare1芯片的安全算法.Mifare1芯片主要用于门禁系统访问控制卡,以及一些小额支付卡,应用范围 ...
- 射频识别技术漫谈(11)——Mifare系列卡的共性【worldsing笔记】
Mifare是NXP公司生产的一系列遵守ISO14443A标准的射频卡,包Mifare S50.Mifare S70.Mifare UltraLight.Mifare Pro.Mifare Desfi ...
随机推荐
- JavaScript与C#互通的DES加解密算法
原文地址:传送门 本文提供了一个能使JavaScript与C#互通的DES加解密算法的实现,在前台页面中用JavaScript版本的DES算法将数据加密之后,传到服务器端,在服务器端可用C#版本的DE ...
- Rookey.Frame v1.0快速开发平台-用户登录
上一次介绍的了Rookey.Frame v1.0快速开发平台的整体功能,接下来会对各个功能点进行解析说明,今天给大家介绍下系统登录功能. 用户登录 系统中基本上所有功能页面都是从后台代码拼接后返回的, ...
- 飘窗原生js效果
css: .close { width: 30px; height: 20px; background: white; position: absolute; right: 0; top: 0; z- ...
- html5弹性布局两则,有交互。
要开发一个后台管理框架,要求如下效果. 然后开始找各种弹性布局啊什么的,用了flex写了一个,但是觉得不好,首先是兼容,其次它会破坏掉里面子元素的一些css特性,为了不给自己找麻烦我还是用传统写法吧. ...
- HDU - 4777 离线树状数组
离线树状数组搞一搞. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #de ...
- Codeforces Round #292 (Div. 1) C - Drazil and Park
C - Drazil and Park 每个点有两个值Li 和 Bi,求Li + Rj (i < j) 的最大值,这个可以用线段树巧妙的维护.. #include<bits/stdc++. ...
- Codeforces Round #496 (Div. 3) F - Berland and the Shortest Paths
F - Berland and the Shortest Paths 思路:还是很好想的,处理出来最短路径图,然后搜k个就好啦. #include<bits/stdc++.h> #defi ...
- javascript 进制转换(2进制、8进制、10进制、16进制之间的转换)
//十进制转其他 var x=110; alert(x); alert(x.toString(8)); alert(x.toString(32)); alert(x.toString(16)); // ...
- 洛谷P4644 [USACO2005 Dec]Cleaning Shifts 清理牛棚 [DP,数据结构优化]
题目传送门 清理牛棚 题目描述 Farmer John's cows, pampered since birth, have reached new heights of fastidiousness ...
- javascript中Date对象的应用
前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 使用type=number的两个input分别作为年和月的输入 ...