使用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 ...
随机推荐
- [实战]MVC5+EF6+MySql企业网盘实战(5)——ajax方式注册
写在前面 今天贴合到实际的客户需求仔细的想了下,其实在userInfo这个类里面很多字段都不是必须的.有很多的事业单位根本就不能上网,填写的邮箱也是exchange的,个人的详细信息都在ad里面可以取 ...
- Codeforces Round #302 (Div. 1) B - Destroying Roads
B - Destroying Roads 思路:这么菜的题我居然想了40分钟... n^2枚举两个交汇点,点与点之间肯定都跑最短路,取最小值. #include<bits/stdc++.h> ...
- poj2078 Matrix(DFS)
题目链接 http://poj.org/problem?id=2078 题意 输入一个n×n的矩阵,可以对矩阵的每行进行任意次的循环右移操作,行的每一次右移后,计算矩阵中每一列的和的最大值,输出这些最 ...
- 浅谈三款常用软件 - Chrome、Intellij IDEA、Cygwin
作为一个每天的接触计算机的程序员,肯定也会接触形形色色的软件,不过今天在此介绍的三款软件,则是我每天都要用到的,而且我认为它们非常好用,极大的提高了我的开发效率. 1.Chrome Google的大名 ...
- Scrapy学习篇(三)之创建项目
创建项目 创建项目是爬取内容的第一步,之前已经讲过,Scrapy通过scrapy startproject <project_name>命令来在当前目录下创建一个新的项目. 下面我们创建一 ...
- 【BZOJ 3289】 3289: Mato的文件管理 (莫队)
3289: Mato的文件管理 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 2819 Solved: 1185 Description Mato同 ...
- 字符串的模板 Manacher kmp ac自动机 后缀数组 后缀自动机
为何scanf("%s", str)不需要&运算 经常忘掉的字符串知识点,最好不加&,不加&最标准,指针如果像scanf里一样加&是错的,大概是未定 ...
- [CCC 2018] 平衡树
题面在这里! 根据题目描述就可以直接模拟出一个暴力. 如果把前 n^(1/2) 的树的方案数先一遍 O(n^(3/4)) 暴力预处理出来(其实复杂度并到不了这个级别),然后把n带进来直接暴力算就行了. ...
- 去除List中的重复元素
/** * 去重list中的重复元素 * @param list * @return */ public static <T> List<T> removeRepeat(Lis ...
- HDU 4183
给出一个有向图,以及src和dst.判断是否存在从src到dst的两条路径,使得除了src和dst外,没有其它点同时属于两条路径. 给每个点一个为1的点容量(src和dst为2),边的容量也是1,然后 ...