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. 微妙 微妙

    为什么会连接破解密码到一半就出现NFC读卡器失败

    1. 各种原因都会导致这样,逐一排查,看问题究竟出在哪里

      1. 王先生 王先生

        我也碰到过。换了LZ版本的M1程序就好了~~

  2. 逄钦中 逄钦中

    不犯罪吗 -_-

  3. hello hello

    改写数据是在nfcgui改写吗?写入卡是用nfcgui里的写入一般白卡吗?

    1. 可以用NFCGUI,也可以直接用libnfc

      1. hello hello

        是那个写入白卡的功能吗,还有那个key文件是怎么弄的

        1. Yeah,直接导入dump文件,会导入dump中的key的

  4. kv2 kv2

    本次破解成功是不是得力于mfocgui破解成功?
    如果失败的话是不是这次破解就无法进行下去了?出现这种情况会不会还有别的办法呢?

    1. mfoc只是使用了验证缺陷漏洞,Mifare还错在算法缺陷,可以通过嗅探获得密码,然后过程就完全一样了

      1. kv2 kv2

        刚刚我这边测试MCT不能够更改0扇区其他区可以更改,是本来手机nfc就有这种缺陷还是别的原因?

        1. 0扇区0段不可改,PC用特殊工具才可以修改,因为涉及UID段

  5. 楼主,,ACR122U分为读写id卡和ic卡,我想在淘宝上买一个,那我怎么知道我的卡是id卡还是ic卡呢?还有你哪个是在哪里买来的?

    1. 用光照卡片,看里面的COB进行判断,网上有鉴别方法,自己找找,我的设备几乎都是神奇的某宝捞回来的

  6. 楼主,那个

  7. observer observer

    上边那个图手机里ACR 122U NFC Reader Utils软件有什么用呢?

  8. 澈尘幽香 澈尘幽香

    可以QQ教一下我吗,表示很闲

    1. 可是我没什么时间,不好意思:-(

  9. 好

    @ChongHom-Hu 提供下手机型号 最近也在研究ic卡

  10. 好

    我打算买一个带nfc手机的 但问卖家都说几百的手机都只能使用支付功能 博主能不能推荐机型

  11. 博主什么手机?

  12. 好

    作者在线不 能不能帮忙回答下这个问题了 谢谢

  13. 好

    最近几天才买了一个nfc设备 就差一个带有nfc手机了 求楼主给个nfc手机型号

    1. 读卡器可以直接修改数据

  14. 好

    请问带有nfc手机的有哪些 有支付功能的nfc手机可以吗 不知道楼主用的什么nfc手机 提供几个型号

  15. […] 继上次水卡的成功破解,对学校的饭卡也有点想要研究的念头了。既然这样,打铁趁热马上开始动手,先拿出MCT测试一下卡类型和扇区情况先。(不了解相关工具和术语的去看看之前的水卡破解案例以及M1卡结构和破解探究) […]

  16. Vincent Vincent

    acr122u可以读取4卡吗

    1. 冇

      扇区0
      6ED552749D0804006263646566676869
      00000000000000000000000000000000
      00000000000000000000000000000000
      FFFFFFFFFFFFFF078069FFFFFFFFFFFF

      数据区
      0000272200000000000000007A990E51
      002CFFD3002C0000000000004506D953
      01200F0003E803F50000277486A854DD
      EB75994D8ADEFF0780695678FC8E1A11

      数据好像加密了
      求解!!!!

      1. 曾先生 曾先生

        钱在数据区1块

      2. 曾先生 曾先生

        朋友,你的钱在数据1块 112.64元或者 0.44元

      3. 最近好多课哦,好心人在哪里呢?

    2. 符合ISO 14443A协议的卡ACR122U都可以读取,其余的请浏览官网:http://www.acs.com.hk

      1. 请问手机连接122u的驱动和软件是?

        1. ACS官网有,只是demo

  17. […] RFID安全之某学校水卡破解 […]

  18. CHU CHU

    我已经默默的复制了同学水卡里的金额,因为我不会修改数据,那个诡异的数据简直看不懂呀,大大可以发一篇数据分析与修改的文章哈哈。

    040A5218E5A605D40010120800010006 0区
    040A5218E5A605D00001170100010004
    040A5218D5A7042C0001170D00010006

    4F4B18E5A605D4001012080001000600 1区
    4F4B18E5A605D0000117010001000400
    4F4B18D5A7042C0001170D0001000600

    040A4B18E5A605D40010120800010006 2区
    040A4B18E5A605D00001170100010004
    040A4B18D5A7042C0001170D00010006

    这是我水卡金额区,分别消费了一点点和好多后的对比,表示看不懂。

    求拯救!~

    1. 不好意思,最近没空,有好心人帮帮忙吗?

  19. lxd lxd

    博主可以告诉我MTC修改完数据如何写到卡里吗 谢谢

    1. 先保存成dump文件,然后Edit Dump File,然后Write Tag via Write Dump就好了

      1. 云飞 云飞

        有没有M1卡穷举密码的工具??

        1. Unix下就有,mfcuk

          1. 有,迟下会发

          2. 云飞 云飞

            windows下就没有?表示window最方便了

  20. […] 一直没有机会也没下定决心认真的去研究某个安全领域,很早之前就看到好多人研究RFID,一直很憧憬那片天空,趁着老大给机会,决定选这个方向作为个人业余努力的方向。 差不多四天前入手了ACR122U,决定拿自己母校的餐厅饭卡练手。 ACR122U的使用很简单,只要安装上驱动,使用M1卡服务程序就可以很快破解,破解完成后查看其生成的dump文件,找到加密扇区的密码,将密码导入到MCT (Mifare Classic Tool),剩下的就可以完全使用MCT完成了,个人很怀疑破解过程是否完全可以通过手机(支持NFC)APP完成。ACR122U的详细使用过程可以参考:RFID安全之某学校水卡破解,本文主要介绍目前M1卡中的数据分析和M1卡安全防护方案。 […]

Write a new comment