RFID 安全之某学校水卡破解

本文只作技术研究之用,请勿用于非法用途,否则后果自负。

如今网络上能找到 RFID 安全类的信息非常的少,原因我就不说了,大家也明白。大家如果要研究 RFID 安全可以去 RadioWar或者 Freebuf多看看相关的文章,我在后面也会放出一些相关的资料供大家下载研究,资料大多数是外语资料,所以说外语一定要学好!

用 NFC 手机上安装的 MCT(Mifare Classic Tool) 查看,水卡的确是 Mifare Classic 1k 类型的。

此次破解用到的工具有:电脑一台,ACR122U-A9 港版一台,带 NFC 功能的手机一台,水卡一张。

在进行破解工作之前,我们要为电脑搭建相应的环境,大家需要在电脑上安装 .NET Farmwork 4 以及 Java,请自行上网下载安装,后面用到的软件依赖这两个运行库。

安装完运行库之后就需要安装 ACR122U 的驱动了(驱动下载(百度云)SDK 下载(百度云) ),为了方便后续的开发,我将 SDK 也一并安装。

安装完驱动和 SDK 之后,把 ACR122U 连接电脑,设备就能正常工作了。把我们的水卡放上去,ACR122U 的蜂鸣器就会响并且 LED 的颜色也会改变。

在此之前我已经尝试过用 MCT 自带的常见的密钥去访问水卡,发现有部分扇区使用的不是默认密钥,被加密了,对于这种不是所有扇区加密的卡,我们可以采用验证漏洞把其他扇区密码破解出来。

验证漏洞可利用的程序是 mfoc,mfoc 在 Windows 上的版本叫 mfocgui,但 mfocgui 对于刚刚接触 RFID 安全的同学来说有点麻烦,所以这次直接采用M1 卡服务程序(其实就是简化版的mfocgui)(内容涉及违法,已经按相关部门的规定撤下)

打开之后,程序界面非常简洁,只有一个按钮,就是开始破解。在读卡器列表那我已经见到我的 ACR122U 了,所以直接按开始破解就可以。然后接下来就等待程序自己破解密钥。

不用很久,就看到所有扇区都被打勾了,破解成功了。

破解成功后根目录就生成了这张卡的 dump 文件了,大小是 1 Kb,整张卡就被读取出来了。

但 mfoc 原本是运行在 Linux 环境下的,移植到 Windows 下的 mfocgui 生成的 Dump 文件是并不能直接使用的,还需要一个修复工具 fixdump(下载fixdump),将 1 kb 的 Dump文件修复成 4 Kb 的 Dump 文件才行。

fixdump 是命令行操作,并且必须安装了 .NET Farmwork 4 运行库才可以使用,为了方便命令操作,我们将 Dump 文件拷贝到fixdump 的目录里,打开 cmd 进行修复。命令很简单,直接 fixdump file.dump 就可以,生成的文件会直接覆盖源文件。

修复完成后,用 UltraEdit 或者 WinHex 之类的十六进制编辑器打开,就可以看到 Dump 文件的数据了。

看到上图我用方框框着的数据了吗?这就是卡扇区的控制段,其中前 6 字节和后 6 字节的 FFFFFFFFFFFF 就是这个扇区的密码,中间的 FF078069 就是控制位,还不清楚 M1 卡的结构的可以去看看这篇介绍 M1 卡结构 文章。

知道密码之后,我将密码导入 MCT 中,开始读取卡片的数据了。紧接着就可以开始改写,具体可以看一下 S50 卡的官方文档。

Content Hidden.You Need To Login.

将数据写入到卡里,现在就是去机器实践的时候了。

破解大完满结束,总耗时 5 小时。

如果有什么问题欢迎留言或者邮件咨询和交流。

解决方案:

  1. 将卡片全部更换成 CPU 卡,CPU 卡可以模拟 M1 卡结构,完全代替 M1 卡,安全性也比逻辑加密的 M1 卡更安全。

  2. 采用一卡一密系统,一卡一密可以免去升级硬件的麻烦,最大程度保护 IC 卡系统。

  3. 采用滚动码系统,增加效验,加大破解成本。

Tags: 破解, RFID, ACR122U, 极客, IC卡, Mifare, M1, S50, 黑客, 水卡, 热水卡

490 Comments

  1. Barkleysu Barkleysu

    求解,打开SDK后运行Install ACS CCID Driver时显示Unsupported platform然后安装程序就自动停止了了,我已经装好了其他所有所需软件了

    1. 英文的意思就是不支持的平台,请检查驱动以及读卡器还有操作系统

      1. Barkleysu Barkleysu

        不过好像不安装CCID驱动也用得了,还有一个问题,就是怎么在手机的应用里面导入秘钥

        1. 自己输入key文件,Edit key file要自己去看看英语的意思啊,老伸手学不会东西的。

  2. 0749orz 0749orz

    我转载了一下,写得不错跟我的方法一样@dhm

    1. 给个话 给个话

      哈哈哈哈

  3. 抓图发i@b0dy,im

    1. 看清楚邮件地址哦,暂时没收到你的邮件

  4. wmsky wmsky

    你好,我RFID用手机米2NFC读,只是读了UID,和厂码,其它扇区和块都是0,AB密码都显示FF,控制码显默认的,我想其它区一定有数据,但看不到。什么问题?

    1. 你的卡也很有可能是只识别UID,其余数据保存在服务器上,这样的话你就只能篡改UID实现修改或者渗透数据保存的服务器

    2. 要是有扇区的key的话就一定能读到,而你说的情况是空白卡的,所有都是0肯定是空白的。注意下是不是有扇区没有key无法显示?

  5. lisun lisun

    也就是说ACR122U,不可以写数据?

    1. 你好,软件显示水卡不是这样Mifare Classic 1k 类型 你好,软件显示水卡不是这样Mifare Classic 1k 类型

      软件显示水卡不是这样Mifare Classic 1k 类型

    2. 可以写,ACR122U可以破解key,手机不可以。而你必须知道key之后才可以写入内容,所以两者结合就是最方便的

  6. 好的,非常感谢。
    另外还有个问题,需要一台带NFC功能的手机?那意思是手机直接刷卡才能让MCT读卡?这样的话ACR122U只是拿来用在电脑上的?
    我看图片里你用的小米手机结合ACR122U和OTG线连接的,似乎MCT能通过OTG识别出ACR122U?这样不要求手机有NFC功能吧

    1. 不一定,不过手机修改更加方便而已,毕竟不能去到哪都拖着电脑。手机可以OTG连接122u,但目前只能用官方的应用读卡,修改还是不行的。MCT只是使用本机的NFC模块,不会调用122u

      1. soga。就是说要么用NFC手机+MCT,要么PC+ACR122U?ACR122U就相当于给PC加上NFC功能了,自身就带NFC的手机没必要用ACR122U是吧

        1. 不能这么说,NFC手机只是简化了的ACR122U,因为必须有122u你才能破解key,而MCT就是一个知道key之后拿来随时修改数据的软件,两者结合就是最完美的

          1. 手机可以随身带着改比较方便,功能肯定是电脑强大。手机可以做的电脑能做得更好

          2. nike nike

            还是没太看懂?
            大神
            请问 用手机修改方便在那里?一般不都是用电脑方便点么?毕竟现在NFC手机还不算太普遍
            是去现场修改数据验证有没有成功么?
            如果完全用电脑?能不能完成呀???

  7. 想问一下那个突然出现的M1服务程序是什么东西?mfocgui精简版?哪来的..

    PS:你的博客在我这里访问不正常-_-图片和文件都失效。我是从看雪上过来的

    1. 是ACR官方出的一个解mifare卡密码的工具,也是使用了mfoc的方法,不过界面和功能很单一。过几天我会把工具再放到百度云,你到时候再来看看吧

  8. 小凯 小凯

    文件都下不了了。。。麻烦给个链接,也想研究研究

    1. 你好,文件拒绝访问是因为采用了防盗链哦,博客文件和图片都是使用CDN缓存,能看到图片就表示服务器在你的地区访问正常,请直接用浏览器下载(下载工具一律会被拒绝),还不行请给我发个邮件

  9. Rita Rita

    超厉害!!不过用的时候正常么…

    1. 一切正常哦

      1. 小毅 小毅

        求教,我不太懂,加我QQ########

Write a new comment