⼀、可以模拟的卡⽚类型
带有全功能NFC功能的⼿机和NFC手环可以模拟的⻔卡类型是13.56MHZ的MIFARE Classic的1K卡,MIFARE Classic卡是NXP(恩智浦)推出的IC卡,也是我们⽬前最常⻅的IC卡。这种我们俗称的M1卡,由于设计的缺陷,在已知任意扇区的密钥的情况下,通过Nested Authentication 攻击可以快速的获取到所有加密扇区的密码,这也为我们解密加密卡提供了可能性。其他所有⾮13.56MHZ频率的IC 卡⼿环或⼿机都是没法模拟的。
⼆、设备和所需硬件
1、带有NFC功能的⼿机1台
使⽤带有NFC功能的⼿机来检测卡的基本信息,我使⽤的是⼩⽶MIX2S⼿机。我喜欢用MIFARE Classic Tool(MCT)这个App,可以快速⽅便的检查卡⽚类型,查看M1卡已知区段,读写卡⽚内容等。 NFC ⼿机其实也并不是必需的,只是很多操作在 NFC ⼿机上会更⽅便⼀点⽽已。
2, NFC/RFID 模块和USB转TTL模块⼀套(或PM3/变⾊⻰等)
PN532芯⽚是NXP公司开发的NFC读写芯⽚,对⽐ACR112U芯⽚,价格更低,且在⼀定成功率上⽀持解密全加密卡。在通过⼿机检测卡⽚是⾮全加密卡的情况下,强烈推荐PN532卡系列。某宝上,PN532 NFC/RFID v3 模块 + PL-2303HX USB 转 TTL 模块整套的价格在三⼗多元。(购买时,记得让商家帮你把插线底座焊接好,如果连 USB2TTL 模块⼀起买的话,最好让商家⼀起帮你连接好。)
3、电脑⼀台,驱动和软件若⼲把连接好的模块插到电脑的USB⼝上,根据操作系统的不同,安装相应的驱动程序。(一般商家都会打包的有驱动程序 )
NFC上位机解密软件(商家给的有)
4、⼀张可以读写的CUID IC卡 (商家赠送有或另买)某宝上,每张1-3元不等
三、检测卡⽚类型和是否加密
打开安装好的MCT⼯具,点击“⼯具”-“显示标签信息”,在“标签类型和⼚商”中,如果显示为“MIFARE Classic 1k, NXP”的话,就可以确定此卡为M1卡。检测卡⽚类型在MCT⼯具中,点击“读标签”,选中全部的密钥,等读取完毕后,0-15个扇区中,如果有部分扇区红⾊的“没密钥发现(或死扇区)”的提示,就表示是⾮全加密卡,这类卡⽚是可以快速的解密出来的。
没密钥发现(或死扇区)
如果全部扇区都是这个提示的话,那这张卡⽚就是不幸的全加密卡。⾮全加密卡(部分加密卡)
好啦,现在这张卡是没办法直接在 NFC⼿机模拟⻔卡功能上直接模拟成功的。
我们继续下⼀步吧
四、解密密钥
1、解密⾮全加密卡
介绍NFC上位机吧。
打开PN532⼯具包,打开“上位机”⽬录,双击运⾏“NFC_READER_crack.exe”,
同意声明后进⼊程序界⾯:
软件声明
上位机主界面
把卡⽚放在PN532模块上,点击“读整卡:读取卡⽚内容”按钮:NFC上位机解密中,经过⼏分钟到⼏⼗分钟甚⾄⼏⼩时不等的时间,NFC上位机通常就会解密成功,显示出如下界⾯:
解密成功
图中的100000000003就是对应之前⽤⼿机MCT⼯具查看到的扇区8和扇区9的密钥。点击数据的左上⻆的位置,可以把解密出的信息保存下来。
五、模拟卡⽚
密钥我们有了,现在到了我们最重要的⼀步,模拟卡了,模拟⻔⼝过程中,可以使⽤PN532模块之间写,也可以⽤⼿机上的MCT⼯具来写。
以MCT⼯具为例。
1、增加密钥
打开MCT⼯具,点击“编辑/增加密钥⽂件”,打开base.keys⽂件,在⽂件内容中,把上⼀步获取的密钥添加到⽂件内容的最下端:
增加密钥
增加密钥后保存,可以给这个密钥⽂件重新取⼀个名字,这样在操作IC卡读写时只使⽤ 这个密钥⽂件,可以让读写的速度快⼀点。
2、读标签
打开MCT⼯具,点击“读标签”按钮,在“映射密钥到扇区”界⾯上,只选中刚刚新增密钥的那个密钥⽂件,把你的IC卡放到⼿机的NFC区域后,点击“启动映射并读取标签”按钮。
读取标签卡⽚读取成功
对⽐⼀下之前我们读加密卡,扇区8和扇区9的内容都出来了,点击右上⻆的保存按钮,把读出来的内容保存到⽂件中。
3、写标签到IC卡
IC卡在扇区0中保存着卡⽚的ID和⼚商信息。上⾯说到过,NFC⼿机的⻔卡模拟都紧紧⽀持模拟未加密的IC卡,也就是仅仅⽀持扇区0⾥有数据,且密码是默认FFFFFFFFFFFF的卡⽚。所以我们这⼀步要造⼀个只有扇区0有信息的IC卡。
打开MCT⼯具,点击“写标签”按钮,拿出准备好的可以读写的 IC卡放在⼿机NFC卡区域,在“写标签”界⾯中,选中“写转储(克隆)”项⽬,选中“显示选项”,然后选中“⾼级:使能⼚商块写⼊”,然后点击“选择转储”按钮,选中刚刚存储的卡⽚内容项⽬,点击“选择转储”按钮。在接着出现的“写扇区”窗⼝中,仅选中“扇区0”,然后点击“好的”。
写标签界⾯写扇区0界⾯
在这⼀步中,如果写⼊到IC卡的是全部扇区,那么这张IC卡就等于是你原来卡⽚的复制卡,是有正常⻔禁功能的,如果你⽤的⼿机是iphone等没有NFC功能的,那么完全可以把IC卡写好后拆出线圈放进⼿机和⼿机套之间,给⼿机增加⻔禁功能。
4、写标签到手机
当MCT提示写⼊成功时,就可以拿 NFC手机来模拟这张⻔卡了。打开⼩⽶钱包,点击“⻔卡模拟”,根据提示,把刚刚写了扇区0的IC卡放在⼿机上进⾏模拟。检测⻔⼝模拟⻔卡模拟成功后,⼿机⾥有了⼀张⻔⼝。但是,现在⼿机⾥的⻔卡是没法刷卡成功的,因为其中的加密信息并没有在⾥⾯。下⼀步,我们就是要把加密内容再写进⼿环中。
打开手机刷卡界面,将手机放在PN532模块上,先读取卡片,读取成功后,再写卡,选择刚刚上位机保存的DUMP文件,写入成功后,就可以用手机刷门卡了