|
现在需要刷卡的地方越来越多,每个人身上都带着数张RFID射频卡,对于出门只带手机一族来说,非常不方便,现在手机基本自带NFC功能,可以将很多公交卡和小区门禁卡都可以模拟复制到手机上,相当的便利,但是有部分加密卡是无法复制的,对于数码之家坛友来说,考验我们的时候到了。
设备准备:
1. 电脑一台
2. ProxMark3(以下简称PM3)一个
3. 待破解电梯卡一张
4. 带有全功能NFC的手机一台(本文以小米MIX3为例)
购买ProxMark3的时候,卖家都会附送相应软件,有些软件是捆绑机器一起的,有些是收费的
先声明,楼主和本文均不提供软件的共享等,请不要询问。
首先需要先明确待破解的卡是飞利浦(恩智浦)的MF1 S50卡,即常说的M1卡、S50卡、Mifare 1K卡……
其他卡片比如低频卡,手机NFC不支持,破解完成仅能复制而不能手机模拟,这里暂不讨论
Q:如何确定自己的卡是否能够模拟?
A:直接使用手机读取并模拟(以MIUI系统为例,使用“小米钱包”),将卡靠近手机,如果手机有反应,那么恭喜,这是13.56MHz的高频卡,手机NFC支持。
Q:如何确定自己的卡是否加密?
A:直接使用软件进行卡的复制和模拟,以小米钱包为例,点击添加门卡,将卡放置于手机背面NFC区域,直接可以模拟的,为非加密卡,刷卡机仅需要验证明文信息。
(我楼下门禁就是这样的,形同虚设)
Q:如何确定自己的卡加密到何种程度(部分扇区加密、全扇区加密)
A:可以在手机上安装使用MIFARE Classic Tool工具来读取卡信息,如果有显示“未找到keys(或者扇区损坏)”,则表示该扇区加密,如果全部都是……那么你很可怜,这是一张全加密卡,你需要付出较大代价才可以破解
本文引申阅读:《搞定加密卡!小米门禁卡模拟那些事》
======正文======
作为数码之家坛友、硬件工程师、电子技术爱好者,本着“人生在于折腾”的原则,这种事情怎么可能放过
拿到电梯卡首先使用手机复制,提示加密卡,如下图:
这种情况稍微费工夫了,可以参考上文中提到的引申阅读
使用MIFARE Classic Tool工具配合较为简单的字典进行,这些简单的字典通常都是内置,比如:
extended-std.keys
std.keys
(使用大小高达1M的超大容量字典破解时MIFARE Classic Tool工具会直接卡死)
因为出厂默认密钥是FFFFFFFFFFFF,比如当有些人偷懒改为000000000000时,就可能可以用MIFARE Classic Tool工具破解出来
当然MIFARE Classic Tool工具是非常低级的,当密钥设定没有那么简单、密钥不存在于字典中时,它就一点办法都没有了
比如这张电梯卡,因为第9扇区的keyA不存在于字典中,直接就红字读不出
这时候你要么求助于发卡部门,求求你了,不要加密了好不好,我不想带张卡,我想刷手机……
求人不如求自己
这时候就要付出点代价了
需要用到类似PM3的工具了(售价闲鱼150~160,淘宝200左右,更高级的400~500,代价一)
连接电脑安装驱动这些不再赘述,我们以PM3 GUI正式版为例(因为我发现这个版本挺好使),直接进入界面教学
软件如下:
首先读卡,将卡放在PM3高频天线位置,点击“读卡类型”,就可以看到卡的信息,厂商,型号什么的
不出意外,会有这么一行 TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
然后点击“一键解析”,client会自动扫描卡
读取完卡16个扇区64个块的信息之后,会显示哪些扇区的密钥非默认密钥,然后软件会自动进行“知一密解全密”
即使用扇区0的默认密码FFFFFFFFFFFF进行Nested(NT)的过程
如果漏洞可攻破,那么一次或者几次Nested后,读取时未找到的密钥就都出来了
然后就可以看到整张卡的密钥和数据,比如读的另一张门禁/电梯卡(当初忘了截图了)
如果漏洞不可攻破,比如我这张电梯卡,跑完一次Nested后,提示有密钥遗漏(9扇区密钥解不开),是否要再次进行Nested?
再次NT也是无果的,那么就要进入PRNG破解(需要用Proxmark3_EASY_GUI这个软件)
PRNG破解也是利用漏洞……
好吧跑一遍PRNG,但是这如果PRNG也不可攻破,PM3好像会进入一个乏味、漫长、甚至掉线死机的状态。估计是和卡的反破解功能有关
(这里要提一下,PM3的硬件经常会自己就死机了,或者仍在操作,但它并没有任何反应,需要使用者去猜,去摸清它脾气,然后插拔重启软件……)
好像是某种型号的还是新卡会把漏洞堵上,无法破解
当这两个方法都没法解出全部密钥的时候,就需要付出更大的代价——去到刷卡机处进行现场嗅探(代价二)
这里以【现场有卡嗅探】为例
将PM3连接至笔记本电脑后,打开PM3 GUI,点击“现场有卡嗅探”,PM3 client会进入嗅探状态,等待信号
此时将PM3尽可能的靠近刷卡机,但PM3与刷卡机之间要留点位置以便待会插入卡刷卡,建议两人操作
准备好之后,刷卡,此时PM3 client会出现一堆嗅探到的信息
我们不要管信息是什么,PM3 GUI正式版会直接进行计算(这也是我推荐这个版本的原因)
然后,密钥就会显示在相应的区域,如下图,9扇区keyA位置,红色的字体
这样我们就拿到了之前两种方法都解不开的密钥(第9扇区的keyA)
这一代价挺大的,首先这种行为你很可能会被盯上,然后物业八成……十成不允许你这样做吧
还有另一种不那么显眼的方式——【有卡离线嗅探】
这个我没有具体试过,这里不再展开
然后我们提着电脑回到室内,记录下嗅探到的密钥,根据之前说过的“知一密解全密”的方法
点击“知一密解全密”,将密钥输入、选择相应的扇区、ABkey,然后点确定
软件就会根据这一密钥,解开加密扇区的内容,如下图:
这就是和刷卡机通讯的内容和密钥,我们将完整的数据保存dump备份
然后,原数据不能动的,我试过删除密钥保留内容,结果不行,刷卡机不认
这个保存下来的dump文件,可以用来做卡的克隆
那么重点是,加密的内容,怎么写入手机?
由于内容加密,克隆出来的卡也是加密的,你只是知道了密钥和数据,手机并不支持模拟加密卡
这个时候可以参考上文中提到的引申阅读的破解后写卡方法
也可以这么做:
1. 首先手机上(小米钱包里),新建一张空白卡
方法是:小米钱包——小米门卡——右下角+号——自定义空白卡——输入小米账户密码——等待添加完成
2. 添加完成之后,调出刷卡界面
(如果之前没有设置双击Home键调出刷卡界面,此时可以使用某些方式唤醒,比如贴近刷卡机,然后点击右上角的小齿轮,打开“桌面键双击支付模式”)
此时手机会有振动提示“请靠近读卡器”
3. 现在将手机的NFC区域靠近PM3的高频天线区域,开始写手机的空白卡,如图1
PM3 GUI中确保打开了之前保存的dump文件,然后点击“克隆到FUID”
这时候将开始写卡,一般来说,手机不支持重写0扇区0块的厂商信息,所以第一行写入必定是写入失败
这个错误可以忽略,写入完毕后,应该是63成功,1失败,如下图:
表明dump中的信息已经写入了手机调出的空白卡中,这时候可以拿着手机到刷卡机上去测试了
(刷卡时,刷卡界面一定要选刚才的那张卡)
如果偶尔会有几行数据写入失败,那么可能是读写操作受到了干扰,需要远离周围的电路、金属物体、其他卡片等再试
如果一直都是写入失败,那么可能手机不具备全功能NFC功能,加密卡就没法往里写了,放弃吧
如果刷卡系统需要验证0扇区0块的厂商信息,那么也放弃吧
本文仅仅是提供了破解的一个思路,对于全加密的卡,也可以使用现场嗅探的方式来解开密钥
或者使用其他设备,比如“变色龙”来进行破解,方法不计其数。
破解加密卡是什么性质的行为希望大家都清楚,本文的目的在于技术交流学习,本文涉及到的智能卡、密钥等仅用于设备研发调试。严禁利用本帖学习到的内容从事非法牟利等违法犯罪活动(特别是包括但不仅限于水卡饭卡停车卡的修改)。否则造成的一切后果由事主负责,本人及网站不为其承担任何责任。
谢谢观赏!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|