前言
    安全不仅仅包含网络上的安全,在我们实际生活中也同样存在很多个安全相关的事物,可以说跟科技扯上关系的事物都会有安全问题,无线,蓝牙,手机,无人机,汽车。真正有问题的不是安全,而是人心。很多事物的设计之初都是没有考虑安全问题的,因为人心的不坏好意迫使去考虑它的安全问题。
    硬件准备
    破解设备
    Proxmark3Easy

    破解工具不一定是Proxmark3 Easy,只要是还能够获取和修改卡片数据的设备都可以,比如arc122u,arc122u只能读取和修改高频卡,有点不足

    各种卡
    准备一些ID,IC卡

    区分ID卡和IC卡的方法
    1.光照法

    圆形大多是ID卡,方形大多是IC卡
    2.NFC法 拿一部带有NFC功能的手机打开NFC,卡片靠近手机会响的是IC卡,不会响的是ID卡
    知识准备
    首先,门禁卡所用到的技术是RFID,具体详情可以看这里–>传送门,首先从频率上可以分为高频(13.56MHZ)和低频两种类型的卡,在这两个频率上又会分为多种类型的卡。常见的卡的有

    高频
    M1 S50卡
    目前最常见的高频卡,也是我们口中俗称的IC卡。M1卡科储存的数据大小为8k,分为16个扇区,每个扇区分4个块,每个块为16个字节,以块为存取单位。每个扇区都有独立的一组密码及访问控制,每张卡有唯一的一个32位的序列号。每个扇区的0,1,2块为数据块,用来存储数据,第3块为控制块,包括了密A、存取控制、密码B 每张卡的第0扇区的第0块用来春芳厂商代码,不可更改。

    中间4字节控制字是管理密码权限,用来设置A密码和B密码的功能。默认不修改的时候,可以用A密码读写所有数据。A密码不可读出,B密码可以用A密码读出。密码不一定可以读取,由控制字决定。
    M1 UID卡
    M1 UID卡是针对M1 S50卡特制的变种卡,用起来和M1 S50完全一样,只是多了一个功能,就是0扇区块的数据可以随意修改。因此UID号也可以随意修改,厂家信息也可以随意修改。UID卡修改0扇区0块数据是靠指令进入工厂模式,可以直接对全卡任何数据编辑,不需要密码即可读写卡,同时不怕写坏卡,即使写错0块,写坏扇区控制字,也可以随时修复回来,不影响后续使用。
    FUID卡
    FUID卡是针对UID卡做的优化。新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能。FUID可以修改0块,但只可以修改一次,写错也没办法更改,也不能重复利用。修改后和M1卡完全一样,很难被屏蔽检测。
    CUID卡
    CUID卡是针对FUID卡做的优化。CUID卡可以重复修改0块,但是它和UID卡的区别是,UID卡是通过指令修改0块,CUID使用的是常规密码验证的方法写0块,其他扇区和标准M1卡相同。缺点是,还是有可能会被检测出来,而且如果不小心写错了UID号的校验位导致无法读卡,没办法修复只能报废。
    低频
    ID卡
    ID卡是我们的俗称,内部芯片的全名叫做EM4100或EM41XX。每张卡出厂就有独一无二的ID号,不可改写。
    T5577卡
    T5577 卡是一种可以写入数据可以加密的低频卡。最特别之处是,写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡。T5577一共有8个块,每个块只能存8位数。第0块是用来设置卡片类型和调制方式的,决定了卡片是ID卡还是HID卡,如果随意修改会导致读不到卡。最后一个块,在没有加密时是数据区,加密后,其数据就变成了密码。结构如下

    破解
    破解ID卡
    安装驱动
    驱动下载官网网址–>传送门 安装驱动文件前需要禁用驱动安装强制签名,方法–>传送门 驱动安装方法 我的电脑右键–>管理–>设备管理器–>端口下的设备右键–>更新驱动程序–>浏览我的计算机–>选择本地–>从磁盘安装–找到官方的驱动文件–>确认 驱动安装完成会显示图片上的样子,记住COM端口

    硬件使用方法
    Proxmark3 Easy

    功能按钮有退出、取消、停止、强刷固件的功能,ABCD指示灯作为设备运行的依据,闪烁说明正在进行,完全熄灭或者常亮代表攻击失败、等待。全部熄灭表示已经停止运行了,直接重新拔插设备。
    破解方法
    读卡片ID号→换上T5577卡→把ID号写入卡片→完成 ID是没有密码只有卡号的,因此只要知道卡号就可以复制。 软件资料包–>密码: f8q4 打开官方软件固件\pm3-bin-2.5.0\win32(client+GUI)\Proxmark Tool.exe,箭头所指选择刚刚驱动安装的那个COM端口,连接Proxmark3,接入电脑后,电源指示灯处POW亮蓝灯,FULL亮绿灯,CHR闪烁微弱红灯。

    在COMMAND TO SEND里输入hw tune测试天线谐振电压,高频超过5V,低频超过10V就可以正常使用。

    把低频ID卡(门禁卡)放到低频读卡区输入lf search获取ID卡的信息,把卡号抄下来,复制时要用

    把T5577卡放到低频读卡区,输入命令lf hid clone 0000001450

    上述命令在左上方的命令树中都可以找到,左边有一些按钮和命令的介绍

    ID卡复制就完成了
    破解IC卡
    IC卡破解思路
    获取任意扇区的密钥
    PRNG 漏洞攻击得 0 扇区密匙

    • 默认密码扫描获得密匙
    • 嗅探读卡机和卡片交互数据获得密匙
    • 模拟成 M1 卡刷卡后捕获密匙(挑读卡机,兼容性不好)


    利用MFOC漏洞用已知扇区密钥求所有扇区密钥 ↓ 用破解出的密匙把卡片数据读出导入电脑 ↓ 把电脑中的数据写入UID卡中
    第一步是最重要也是最难的一步,很多IC卡往往都是难以攻破0扇区的密钥而无法进行下一步。默认密码扫描看运气,PRNG漏洞攻击概率低,后面两个虽然概率高但是成本高且实施比较困难。 上面的Proxmark Tool是官方英文版GUI,还有国内中文版GUI(Proxmark3_EASY_GUI),中文版的GUI比较简单,不用记很多命令,原生态PM3指令台就是纯命令行模式,看起来也比较有逼格点。一开始我是根据资料用英文版的GUI,感觉不怎么好用,后来用了原生态后觉得原生态的好用多了,但是要记命令,命令忘记了就用中文GUI查命令ㄟ( ▔, ▔ )ㄏ。can’t slect card这个bug也是在用了原生态之后才知道的。
    PRNG漏洞获取0扇区密钥,486固件不掉线外,630之后的固件,有些卡可以破,有卡些会掉线并出现can’t slect card

    获取0扇区密钥
    扯远了,默认密码扫描hf mf chk *1 ? t

    密码是默认密码的时候可以扫的出来,不是默认密码可以尝试PRNG漏洞获取0扇区密钥hf mf mifare

    因为我小姐姐的,固件是630之后的,所以会出现很多
    #db# Mifare: Can’t select card,就放不了全部代码,查看固件命令hw version

    Tip:固件版本是根据固件的日期来看的
    我们可以测试一下我们拿到的密钥对不对,错误不会返回最下面那一行

    知一求十五
    获取到0扇区的密钥后我们就可以通过MFOC漏洞获取所有扇区的密钥(100%成功)

    接下来导出密钥

    导出后会在根目录生成一个dumpkeys.bin的文件,里面存放了16个扇区的密钥(16进制)

    导出数据
    拿到密码后我们就可以导出卡上的数据到电脑里

    同样16进制打开

    因为是测试卡,所以里面就没什么数据ㄟ( ▔, ▔ )ㄏ。
    写入UID卡
    下一步把数据写进写UID卡 Proxmark3不能识别、使用bin文件,需要转换成eml格式 第一个方法是运行下面的命令转成eml格式

    第二个方法是运行dump to EML.bat脚本转成eml格式

    写入到白卡(UID卡)上

    写卡是没有回显的,只能通过读取的方式查看有没有读取成功,对比两张卡的数据就可以看到数据是一模一样的,克隆就完成了
    总结
    IC卡破解不止这一种方法,能力和设备有限,以后有机会会继续学习下去
    https://cloud.tencent.com/developer/article/1189471