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. 圣光的正义 圣光的正义

    请详细解释一下文章最后一段数值转换之间的含义,刚接触没有弄懂。
    比如如下数据
    读第3扇区
    第12块: 00 23 5A FF DC A5 00 05 78 06 18 00 00 38 01 D1
    第13块: 00 25 3B 58 00 00 00 CF C4 D3 A2 C4 C8 20 20 8C
    第14块: 00 00 10 00 00 16 09 30 06 18 12 20 02 00 00 B1
    第15块: 00 00 00 00 00 00 FF 07 80 69 43 05 21 19 87 09
    能再解释一下这些块值代表的含义吗,15块这个 是密码我弄懂了,谢谢

    1. 你可以把M1卡官方文档下载看,里面很详细的介绍有

      1. 圣光的正义 圣光的正义

        请问博主,卡里面的块值有没有可能某些数值是代表中文字符呢

        1. 值域是只能代表数字。其他非值域就可以

  2. 不知道 不知道

    请教下博主,我尝试将一张卡里的数据包括UID全部写到一张UID白卡里,为什么这张白卡去刷的时候还是提示error呢?

    1. 那原卡还能继续用吗?

      1. 不知道 不知道

        可以啊

        1. 看清楚uid,uid段需要acr122u电脑配合特殊软件修改

          1. 我没有实卡进行采集很难判断,你自己多收集数据,自己计算多几次或许就有发现

          2. 不知道 不知道

            确实没改,改了就正常了。但是博主我经过几次刷卡发现钱是存在15扇区,但我的结构貌似和博主的不一样只知道前两个字节是余额,后面的数据每次都会变搞不懂是什么意思啊?
            余额9.54:BA0300 013200 00FF0C 7A0000 7A0000 B9
            余额9.31: A30300 013400 00FF0C 910000 910000 8E
            余额9.20:980300 013600 00FF0C 9C0000 9C0000 DB
            余额8.97: 810300 013800 00FF0C B30000 B30000 9C
            余额8.37: 450300 013B00 00FF0C EF0000 EF0000 46

  3. smzdm smzdm

    博主你好,我们学校饭卡水卡是一张卡现在饭卡的数据应该是传输到服务器的(刷卡器上有根网线),就是不知道水卡的数据会不会传输到服务器,问下有什么方法可以判断刷水卡的时候是离线的还是会上传的服务器?

    1. 看看水机后面有没有什么奇怪的线

  4. 苏州才子 苏州才子

    那个验证漏洞破解出来的密码怎么还是一连串的F 这个不是内置字典就存在的密码吗,??

    1. 如果你的卡本来就是使用默认密码的话那就是FFFFFFFFFFFF啊

      1. 苏州才子 苏州才子

        不是,大神我没有明白IC卡读卡器发挥了什么作用?
        我看大神的图片中 IC卡读卡器破解出的扇区密码还是一串F 这个不是内置密码就有的吗 那么读卡器的还有什么用?

        1. 密码我打码了你没有看到而已( ̄. ̄)

  5. 苏州才子 苏州才子

    知道密码之后,我将密码导入MCT中,开始读取卡片的数据了 这个密码是不是就是那一连串的F
    小白不知,望大神赐教

    1. 你知道了密码,再导入了mct,怎么可能还是FFFFFFFFFFFF呢?默认密码mct已经自带,不需要导入

  6. CAIZI CAIZI

    那个读卡器从哪里买的?多钱?

    1. 香港自带,淘宝也有,价格不清楚

  7. abc123 abc123

    将数据写入到卡里,用的什么工具?

    1. 电脑用nfcgui,手机用MCT即可

    2. 读卡器或者其他NFC设备

  8. DDG DDG

    博主你好,我是一名非计算机专业的在校学生现在对网络安全这一类比较感兴趣,但是目前比较迷茫不知道从何下手,您能给我写经验或好的学习网站吗?

    1. 多逛论坛,多看书,多实践。不懂就去搜索引擎找,慢慢积累就可以

  9. HUI HUI

    我在破解水卡的时似有加密的效验码,这个怎么破

    1. 校验肯定与卡中数据有关,自行比较找出关键点再黑箱还原算法

      1. HUI HUI

        四个关键数据现在能联系两个了,还有两个无法联系,就像随机性的一样

        1. 也可能有随机数,排除干扰可以清零去尝试是否正常。

          1. 为防止采集,请到《关于我》页面下面寻找邮件地址

          2. 梁家豪 梁家豪

            请问你QQ或者联系方式。我的QQ1835926,请教

          3. 多次消费,收集数据回来推测。没有机器源码情况下要靠自己算法基本功

          4. HUI HUI

            刚清零了试了一下,发现还是无法效验,还是也是属于效验码之类的,刚我又破解大部分,还差最后一点实在搞不懂了

  10. lzz lzz

    出于对射频卡的好奇,一直想破解学校水卡(饭卡插网线了,没戏),偶然搜到了这篇文章,当看到你正在读高三时突然觉得很惭愧,我都大一了,虽对电子方面很感兴趣却从未深入研究过,上了快一年的大学了,大把的时间都荒废了。很佩服你,能在高三压力这么大的同时坚持自己的爱好,坚持自己的梦想!

    祝高考顺利,加油!

    1. 谢谢你的肯定。承你貴言:-)

  11. ic卡的密码读取不到,怎么样才能破解?

  12. bbqiu bbqiu

    在否?你邮箱是多少,你的破解里面我有两个问题想和你讨论讨论

    1. 关于我页面有,防止采集请自己去看

    2. 你qq多少,咱俩讨论讨论

      1. 我没太多时间上QQ,有事请邮件

  13. bbqiu bbqiu

    谢谢楼主,按照你的所有教程我已经破解密码出来了,现在还差一步就是没有nfc能用其他的软件读取修改里面的金钱么

  14. 你的qq多少?我有问题不会!想问你

    1. 有事请发邮件。地址到关于我页面寻找

  15. bbqiu bbqiu

    如果密码破解不了是代表这张水卡密码过于复杂还是破解的时间不够长,看到请回复,

  16. bbqiu bbqiu

    我现在卡在key b这里已经有一个小时了 还在破解,我想请问大概还要多久才能破解

    1. ACR122U破解的时候的确会有卡停的BUG,把mfocgui目录下的临时文件全部清除干净,再破解一次试试,不会超过20分钟的,超过即表示有问题,要么读卡器不是真正ACR122U,要么是模拟卡并不是真正M1

  17. haha haha

    二代身份证貌似兼容14443 B类标准
    看截图那个软件也支持14443B
    你跑一下试试?

    1. 身份证是低频卡,用低频天线才可以

  18. lykkl lykkl

    那用ACR122U破解既可以破解加密扇区 又可以破解 显示为横线的数据?

  19. lykkl lykkl

    请问sector14 block3前面有一行横线是什么意思 ?是数据还在加密?

    1. 你密码没破解出来

  20. 半夏 半夏

    这些修改的过程只用手机不用电脑可以么

    1. 知道密钥的话可以

Write a new comment