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. KING KING

    为什么我的手机使用MCT识别水卡上面写着NOT A MIFARE CLASSIC TAG但是下面有GENERIC INFO的数据,其中的TAG TYPE AND MANUFACTURER显示是MIFARE CLASSIC 1K, NXP那么这张卡到底是不是符合要求的呢?下面没有像作者图里的第二栏MIFARE CLASSIC INFO

  2. 错觉 错觉

    怎么要登录才能浏览了

    1. 不开放,不好意思哦

  3. 顾臣 顾臣

    学习至尚

  4. 为什么我看到的扇区都是000000000之类的.没有说是密钥错误的提示,密码错误就直接不现实那个扇区?和上图不一样.

    1. 密码错误是直接不显示扇区的,全0正常,代表没存数据而已

  5. 为什么我看到的扇区都是000000之类的.没有说是密钥错误的提示,密码错误就直接不现实那个扇区

  6. lhz lhz

    想学习学习。热水卡没钱了

  7. 曹俊杰 曹俊杰

    想要学习中 如何确定学校是联网还是离线的呢

    1. 一般能挂失就是联网卡

  8. wjz wjz

    请问一下,
    利用验证漏洞警醒破解的时候,是不是acr122u+卡服务程序+目标m1卡就可以了?
    不需要其他的东西了,比如网上提到的加密狗什么的?

  9. 写入软件是那个。我把数据写进入,破解出来数据跟原卡一样。但是打不出信息来。给我个写入软件。

    1. libnfc,可以自己Google

  10. 轩

    acr122通过otg连接手么?可以直接手机驱动acr?

    1. 可以,软件要自己写

  11. qi qi

    请教个问题啊,我学校的卡已确认是1K的

    但是跟你教程中有点不同

    我们是充值个金额,然后自己去机子上分配,饭钱,水钱。。。 数值就分为了3个,这个更改会跟本教程的内容不同么???

    期待您的解答!

    1. 可以多收集数据分析,我们淘宝小店也有提供付费分析破解服务呢http://bobylive.taobao.com

  12. MING MING

    那个写入要不要带后面那个古怪的东西

    1. 有什么奇怪的东西哦(づ ̄3 ̄)づ

  13. ft ft

    59A07C24005F00000001010000FE0060
    这个是我水卡里面的一个数据。
    卡里有93.40
    请问这个要怎么改成999.99
    或者是99.99

    1. 自己分析算法计算

  14. xiaosheng xiaosheng

    如何将密码写入MCT 能详细点吗 谢谢

  15. […] 前不久把某学校的水卡顺利破解了(不了解事情经过的看上一篇文章),看似很顺利,但最近偶然发现一些细节问题,细心的话可能也有人留意到,卡中的数据除了两个值块保存余额之外,还存在其他的数据,虽说学校的热水系统不联网,但要是机器自带日志记录,把我卡记录下来那不就完蛋了?所以此次要斩草除根,免得引来无穷后患。 […]

  16. 雨杉叶 雨杉叶

    我用acr122u破解学校的水卡,什么软件都试过了,就是破解不出来,这是怎么回事,我用同学的手机都能读出来,就只有第11个扇区加了密,但就是破解不出。我把0扇区第0段写到uid卡上,uid卡就会锁死,研究了好久还是没辙,大神麻烦解答一下。

    1. 你可以邮寄卡给我有偿破解,或者更换软件版本试试。

    2. 骚鸡 骚鸡

      你成功了没有 买的读写器多少钱

  17. kingary kingary

    我用我的索尼的NFC读不出来我水卡的数字,只能辨认卡类型(一样),但是饭卡可以读到,麻烦问一下是我的NFC有问题,还是水卡的问题了。

    1. 芯片问题,很多手机的芯片都不是NXP,不支持Mifare读写

  18. libnfc,建议Linux下操作

    1. 曹俊杰 曹俊杰

      想要学习啊

  19. 曹旋 曹旋

    请问,电脑提取出dump 数据修改好金额,怎么写入ic卡

    1. 软件写入。

      1. 曹旋 曹旋

        用软件写,不管是keya还是keyb 都写不进去,求赐教

        1. 控制位不对?检查下

  20. 哈罗 哈罗

    我破解到一般就显示链接NFC失败 怎么办?

Write a new comment