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, 黑客, 水卡, 热水卡

489 Comments

  1. 错觉 错觉

    怎么要登录才能浏览了

    1. 不开放,不好意思哦

  2. 顾臣 顾臣

    学习至尚

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

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

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

  5. lhz lhz

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

  6. 曹俊杰 曹俊杰

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

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

  7. wjz wjz

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

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

    1. libnfc,可以自己Google

  9. 轩

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

    1. 可以,软件要自己写

  10. qi qi

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

    但是跟你教程中有点不同

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

    期待您的解答!

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

  11. MING MING

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

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

  12. ft ft

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

    1. 自己分析算法计算

  13. xiaosheng xiaosheng

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

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

  15. 雨杉叶 雨杉叶

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

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

    2. 骚鸡 骚鸡

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

  16. kingary kingary

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

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

  17. libnfc,建议Linux下操作

    1. 曹俊杰 曹俊杰

      想要学习啊

  18. 曹旋 曹旋

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

    1. 软件写入。

      1. 曹旋 曹旋

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

        1. 控制位不对?检查下

  19. 哈罗 哈罗

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

  20. 小白 小白

    楼主,请问电脑win7用啥来写卡啊?

    1. libnfc,建议Linux环境下写卡

Write a new comment