【技术分享】需要了解可以骚扰
免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!
文章的最开始,先来致敬RadioWar。一直手痒RFID这个领域,准备了一段时间,开始入门RFID。
先来普及一下基础知识:
RFID即为射频识别。NFC近场通信。很多人把NFC和RFID混为一谈,但实际上NFC可以理解为“以RFID技术为基础的一种产品”。
RFID技术中所衍生的产品大概有三大类:无源RFID产品、有源RFID产品、半有源RFID产品。根据RFID Tag的工作方式,有可分为被动,主动、半主动三种。最常见的就是被动式的了。我们目前接触的多的就是无源、被动式产品,其中最为广泛常见的就是MIFARE Classic 1K卡,简称M1卡、S50卡。M1卡有从0-15共16个扇区,每个扇区配备了从0-3共4个段,每个段可以保存16字节的内容。每个扇区的03段是用来保存KeyA,KeyB和控制位的,因为M1卡允许每个扇区有一对独立的密码保护,这样能够更加灵活的控制数据的操作,控制位就是这个扇区各种详细权限计算出来的结果。每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的00扇区的00段,也称为厂商段,其中前4个字节是卡的UID,第5个字节是卡UID的校验位,剩下的是厂商数据。并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,当然也有例外,有种叫UID卡的特殊卡,UID是没有设置保护的,其实就是厂家不按规范生产的卡。
更多的资料请百度、谷歌之,就目前来说我们简单了解下就够了,有了这些大体的了解,我们就开始今天尝试破解一张水卡(洗澡用,宿舍常见)试试。
工具:ACR122U-A9,UID可写白卡,待破水卡平台&软件:Win7x64、XP:RadioWar的NFCGUI-Pro,简化版的mfocgui。Kali平台:mfoc,,nfc-mfclassic。
0×00开头
关于ACR122U-A9这个读卡器,虽然比不上PM3那么神通广大,但是对于入门学习来说绝对算得上神器了。某宝上一搜一堆,很多店都卖165元左右(爆个内幕;其实都是一家)。然后就是UID可写的卡了,大约3元一张。平台选择这两个是因为入门来说自然首选Win平台,但是其中出现了一些问题,虽然失败但也贴出来供大家查错。
0×01分析、确定卡片
首先确定卡片是M1卡,且数据是保存在卡里而不是服务器上的。通过图1,我们可以看到机器只有电源线,没有网线,且机器已经很老了,肯定不能是无线方式联接。
我想到了一种“非正式”的一种鉴别方法,大多数注明“不记名不挂失”的卡片都是数据存放在本地的IC卡,否则他们完全可以提供记名挂失的功能的,对吧?
所以我们有把握这肯定就是IC卡,金额数据存放在卡里的了。那么对于这种卡,我们有两种让钱“无限”的方式:1.直接复制现有的卡,因为金额可以任意复制,C/V模式,但是这样太没有技术含量,而且成了纯粹的为了利益了;2.尝试了解卡片内数据块的实际意义作用,找到数据加密方法。对应的写出解密方法,这样卡内余额就我们随意控制了。当然,第二种方式是以第一种方式为基础的,所以我们一步一步来尝试。
0x02Win尝试
根据网上提供的资料(
http://bobylive.com/static/1491),我们尝试使用验证漏洞,也就是利用mfocgui破解M1卡的密钥。先是Win7 x64,点击按钮即可一键自动破解,但是出现了问题。当试到05扇区的时候,程序就开始报错,然后ACR122U莫名与PC断开联接。网上搜索无果。尝试RadioWar的NFCGUI-PRO,同样的问题。同样的软件,后来换到XP,问题依旧。说明在Win平台上还是多少有点问题。不如Linux上的兼容性好。
0x03Kali尝试
值得一提的是,Kali原生支持ACR122U的,而且里面内置了很多的NFC安全研究的工具,极大的方便了我们的工作。(注意尽量不要用Win上的Kali虚拟机,因为USB口还是通过Win平台,所以兼容性问题还是可能存在,我的就会出现Usb Timeout错误)
进入Kali我们能看到很多RFID/NFC的工具。我们用到的是mfoc和nfc-mfclassic这两个工具。Mfoc是利用验证漏洞破解key的一个工具,而nfc-mfclassic则是对卡片进行读写的工具,我们可以从卡片里dump出来数据到本地,然后利用hexeditr分析编辑,再将数据导入到卡里去。
由于网上很少有这类工具的中文使用说明,我在此一并给大家介绍了: