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

470 Comments

  1. 小伟子 小伟子

    324C E0 128.96
    1450 14 52
    1384 E8 49.96
    三个数据,末尾是金额。。这是啥算法呀

  2. soul soul

    fixdump这个软件一打开就闪退,装了NET Framework 4也安装了也还是闪退,求教。

  3. fuckman fuckman

    请问我用手机NFC读取卡片之后显示在所选的密码文件中没有一个密码可以读取卡片

  4. em90 em90

    3QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ

  5. lIIl lIIl

    挖一下,为什么我的fixdump运行的时候显示“文件不匹配问题”,但明明确实是dump出来的dump文件

    1. lIIl lIIl

      好了,又可以了,应该是机器的问题。

  6. 厉害了

  7. wu wu

    厉害了

  8. kaka kaka

    acr122u是不是不可以写入数据呢?

  9. maoni maoni

    求助,Windows10系统打开fixdump.exe立马闪退怎么办

  10. corwin corwin

    好厉害,可是我只能写进空白卡里面,为啥写进原来的卡就出现select card error,那个最后写入是咋搞的

  11. lucis lucis

    有一些unknown Mifare Classic是什么卡?

  12. doubi doubi

    能读取全部扇区但是写入时说没有密码。。。

  13. cipher cipher

    你好。我用Mifare classic tool 读取门禁卡。12-15扇区的keya都是----------------,keyb是 FFFFFFFFFFFF.我用MCT写入空白卡后。12-15扇区的keya都是FFFFFFFFFFFF.但是复制的卡在门禁没法用。原卡还是能用的。

  14. Iamdied Iamdied

    我想问问您,那个写入数据的算法如何破解,方便私聊?

  15. Chkey Chkey

    .那个。我有张全加密的卡,研究了一晚上mfcuk还是搞不懂要怎么用。。

  16. bazing bazing

    cool

  17. xuing xuing

    余额为3.31时 E1 4B 00 00 00 00 00 00 00 00 00 00 4D BB 16 C2
    余额为2.32时 00 E8 00 00 00 00 00 00 00 00 00 00 4D DC D3 05
    余额为1.99时 00 C7 00 00 00 00 00 00 00 00 00 00 4D E7 C7 11

    已知前面4个是余额了,后面应该是校验,可是不知道是怎么生成的

  18. qing qing

    你好,我的4k卡有几个扇区读不到,sector10下一个就是sector16,中间的扇区不显示

  19. GOOG GOOG

    我想问一下,那个钱的数据怎么算出来,999.99十六进制是1869f,并不能像双字节的那样倒,有什么规则吗,求告知。

  20. goo goo

    谢谢

Write a new comment