精华内容
下载资源
问答
  • 使用手机模拟NFC加密门禁卡

    万次阅读 多人点赞 2019-07-17 17:07:48
    使用手机搞定加密卡 准备: A、B两部具有NFC的手机 门禁原卡 MIFARE Classic Tool[(下载... 关闭AB两部手机的Android Beam功能 Proxmark3(非必要条件) 我准备了A手机荣耀magic2,用来模拟门禁卡;B手机华...

    使用手机搞定加密卡

    	准备:
    		A、B两部具有NFC的手机
    		门禁原卡
    		MIFARE Classic Tool[(下载地址 提取码:im20](https://pan.baidu.com/s/1zKrWelAZZbAcIptMB0w3IQ))
    		关闭AB两部手机的Android Beam功能
    		Proxmark3(非必要条件)
    

    我准备了A手机荣耀magic2,用来模拟门禁卡;B手机华为P10,用来做写卡器
    第一步:
    B手机上安装MIFARE Classic Tools,打开MIFARE Classic Tools增加一个KEY文件,将原卡的KEY写进去,不知道原卡的卡密的话建议使用Proxmark3跑一下或者直接在下一步读卡的时候勾选两个密钥文件。

    第二步:
    将原卡放在B手机背部使用MIFARE Classic Tools点击读卡,勾选刚刚添加的密钥文件,如果不知道原卡密钥则勾选全部密钥碰碰运气,然后读出来的完整原卡数据保存一下。

    第三步:
    在MIFARE Classic Tools中编辑原卡数据将原卡中的密钥全部改为F,其他位置不要动,将编辑好的数据使用MIFARE Classic Tools写Dump到原卡或者其他卡片中(见图2),这就是一张没有加密的卡了(尽量不要报错编辑后的文件,容易覆盖掉原卡数据)
    如图:在这里插入图片描述
    图二
    第四步:
    将没有密码的卡使用A手机钱包模拟门钥匙 (注意!是A手机的手机钱包),模拟完成后,打开钱包将模拟的无密原卡设置为刷卡状态,把A、B两个手机背对背,使用B手机MIFARE Classic Tools选择写入卡片 写Dump(克隆),选择之前保存的原卡数据,全选扇区,确定,然后随便选择一个密钥,点映射(选择扇区的时候如果无法下一步,先把A手机拿开,在重新放回来,替听到B手机检测到卡片的时候在点确定)等待写入完成即可。重要步骤(别偷懒)

    最后还不还原原卡,看自己心情,要什么物理卡,垃圾
    在这里插入图片描述
    如果经过测试还不行或者是本垃圾写的不够明白
    请移步这位大佬这里http://bbs.xiaomi.cn/t-30553502?

    展开全文
  • 加密门禁卡复制

    万次阅读 2020-12-07 22:19:43
    本文主要是针对一下加密门禁卡解密复制问题。 最近发现补一张要50,成本的话白卡2块钱一张,读卡器可以白嫖也可以24多买一个不带壳pn532模块。 一.卡类型 IC卡是智能卡的总称。 普通IC卡,0扇区不可以修改,...

    本文主要是针对一下加密门禁卡解密复制问题。

    最近发现补一张要50,成本的话白卡2块钱一张,读卡器可以白嫖也可以24多买一个不带壳pn532模块。

    一.卡类型

    IC卡是智能卡的总称。

    普通IC卡,0扇区不可以修改,其他扇区可反复擦写,我们使用的电梯卡、门禁卡等智能卡发卡商所使用的都是 M1 卡,可以理解为物业发的原卡。
    
    UID 卡
    普通复制卡,可以重复擦写所有扇区,主要应用在IC卡复制上,遇到带有防火墙的读卡器就会失效。
    
    CUID 卡
    可擦写防屏蔽卡,可以重复擦写所有扇区,UID卡复制无效的情况下使用,可以绕过防火墙。
    
    FUID 卡
    不可擦写防屏蔽卡,此卡的特点0扇区只能写入一次,写入一次变成 M1 卡,CUID 复制没用的情况下使用,可以绕过防火墙。
    
    UFUID 卡
    高级复制卡,我们就理解为是 UID 和 FUID 的合成卡,需要封卡操作,不封卡就是 UID 卡,封卡后就变为 M1 卡。

    ID卡:只存储了ID号,设备识别ID号,没有算法可言,容易复制,安全性低;

    M1卡:存储了ID号,可读写数据,M1卡发一个数据到设备,设备再传一个数据给M1卡确认,再进行交易或身份认证,只有一个算法,可在空中盗-取信息,反复计算,算出其中算法,在复制卡,安全性比ID卡高很多,但还是能被破解(有看过M1卡被破解的录象,基本可以知道,只要有软件和简单的DIY读卡器材,就可以复制);有人说一卡一密的M1卡能防止破解,其实不然,这样的卡也是可以破解的,但每次破解只能破解一张被复制的卡;

    CPU卡:有操作系统,可存储数据,也有自己的ID号,CPU卡发一串数据给设备,设备与SAM卡进行运算,设备再发一串数据回CPU卡确认,然后进行交易或身份认证;跟M1卡的区别在于一个算法在空中,一个算法在设备里面;无论是卡商,设备商,运营商,都不知道其中的算法,所以这个系统的安全性会高很多。

    主要讲的是ic卡,id卡很简单。

    二.加密流程

    一般厂家会用秘钥对原数据进行加密分为密码A、密码B

    三.破解秘钥

    由上可得到,找到秘钥(密码A、密码B),然后逆向解密就可以得到原数据,那么破解秘钥有两种方式

    1.硬件破解读卡器acr122u、pm3(价格有高有低靠谱)

    2.其他人在网上分享解过的秘钥(概率太小)

    四.解密数据

    手机电脑都可以

    手机的话 (软件mifare classic tool),github搜有apk,教程可以百度

    电脑的话(买硬件的话都会送上位机程序并且厂家会给教程)

    分为读标签-根据秘钥文件解密-保存解密后dump或者mct文件三个步骤

    五.复制

    首先要准备一张cuid白卡或者钥匙扣或者卡贴

    cuid代表就是可读可写,看那上面卡类型解释,买的话一定要买cuid

    然后就是将前面原数据根据秘钥加密写进去这张白卡里面

    六.完整流程

    准备cuid白卡、读卡器、全功能nfc手机(没有也没关系,没有读卡器就要这个)、原卡

    一、读卡器连接电脑、打开上位机程序,放上原卡自带解密功能点这里

    二、如果用的是mct软件 点这里详细教程

          1.新建秘钥文件然后导入密码A密码B(如果有秘钥跳过一

          2.读标签,拿原卡选择默认秘钥和新的导入的秘钥

          3.保证所有扇区都能读得出来,然后保存mct文件

          4.写标签,放上cuid白卡写所有存储,块0也要写,接着选择上面保存mct文件,一般就完成了

    三、如果用的是上位机程序(具体参考提供的程序)

          1.解密完然后保存dump文件

          2.放入cuid白卡把dump文件写进去

        

    七.疑难点

    1.原卡按上面步骤无法复制看原卡类型

    2.白卡写不进去一定要买cuid卡

    3.写到手机nfc目前情况看不支持将所有加密内容都写进去,厂商安全考虑,(友情提示,如果小区是最近2、3年装的门禁系统,请放弃吧,现在新的门禁系统都有防火墙(非CUID识别屏蔽)都有厂家码校验。。。而小米无论手环还是手机,全部根据国家法律要求,锁死了后16位,无法写入国家法律直接手机复制加密NFC卡)

    展开全文
  • 毕竟门禁卡是一个安全性很强的东西,如果随便拿一台手机就可以任意复制加密的门禁卡,那么门禁卡也就是去了存在的意义,所以正规的加密门禁卡都是不可以用手机NFC复制的,这就导致手机NFC门禁卡...
    f7e00ed3bee3cab8fd0b81cc0316b4a5.gif

    手机NFC的门禁卡是一个很鸡肋的功能,因为现在大部分手机NFC都只能针对未加密的门禁卡进行模拟。但实际上绝大多数小区、公司的门禁卡都经过加密,而包括华为、小米、OPPO的手机均不支持对加密门禁卡的模拟。毕竟门禁卡是一个安全性很强的东西,如果随便拿一台手机就可以任意复制加密的门禁卡,那么门禁卡也就是去了存在的意义,所以正规的加密门禁卡都是不可以用手机NFC来复制的,这就导致手机NFC门禁卡功能地位十分尴尬,虽然它很有用,但大多数用户都用不了。

    0924e780fa857c219f9bcdb06f8f1db6.png

    当然手机厂商也提供了一个针对加密门禁卡的替代方案,就是将手机NFC模拟成一张空白卡,用户可以拿着手机去找小区或者公司的物业,要求对方将加密的卡片信息直接写在手机上,这样一来手机就变成了加密的门禁卡,可以像真正的加密门禁卡一样使用了。

    af693fe0c007b4c113dbb00882fc8f1e.png

    但是很多网友都抱怨称,自己拿着手机去物业要求写卡,但物业却不愿意弄,理由是高科技不会弄。遇到这种情况也是没有太好的办法,毕竟门禁卡和小区的安全息息相关,物业一般不会将门禁卡的信息写在住户的手机上。而如果是公司的物业,那么就涉及到员工离职返还门禁卡的问题。如果公司物业把门禁卡写在员工手机上,过一段时间员工离职了,总不能将员工的手机也收回吧?当然,如果能够和物业搞好关系的话,将门禁卡写在手机上也并不是一件太难的事情。                                              

    91dee88686d31fbceeb093d68d8e6129.png

    所以华为、小米的手机NFC门禁卡功能虽然宣传的很厉害,但真正能够派上用上的场景并不多。苹果手机虽然也支持NFC,但压根就没有开放NF第三三方权限,也没有做类似门禁卡的功能。一加、魅族等手机虽然也支持NFC,但并没有门禁卡的相关功能。这些品牌之所以不愿意去搞门禁卡共,主要还是因为实用性不强,能够用到场景不多。

    a3c6afd63af1a3749b721acd9aebb55c.png

    再加上现在很多小区都在搞智能门禁系统,直接用摄像头人脸识别开门,而这种“刷脸进门”的技术未来也会在全国范围内普及。所以老式的门禁卡已经是注定要被淘汰的技术,在选择手机的时候没有必要刻意关注这方面的功能。当然即使是一些加密的门禁卡,也可以通过专门的设备,以及在ROOT手机系统的情况下,将加密门禁卡复制到手机的NFC。但这其中涉及到的技术较为复杂,一般人根本没办法实际操作,而且成功率也不是100%,这里也就不多做解答了。                                                 

    (图文源于网络,如有侵权联系删除)

    展开全文
  • NFC手机模拟加密门禁卡

    万次阅读 多人点赞 2019-08-03 18:04:01
    CSDN仅用于增加百度收录权重,...记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。 0. 缘起 之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。 后来,小区门禁系统换了...

    CSDN仅用于增加百度收录权重,排版未优化,日常不维护。请访问:www.hceng.cn 查看、评论。
    本博文对应地址:https://hceng.cn/2019/07/12/NFC手机模拟加密门禁卡/#more

    记录小米手机NFC模拟加密门禁卡,以及Proxmark3的使用。

    0. 缘起

    之前,小区用的门禁卡为非加密的门禁卡,使用小米手机系统自带的门卡模拟功能复制即可。
    后来,小区门禁系统换了一家供应商,再使用之前的方法复制门禁卡,手机提示为加密卡,无法复制。

    新的门禁系统,更安全了,也支持APP远程控制开门了,直到有一天门禁卡丢了,开始使用APP开门,发现这APP写得烂透了,十次有五次点击开门按钮无反应,需要反复退出、打开APP多次才能点击开门按钮成功,还有两次直接没了开门按钮,提示到物业管理处处理……
    那个时候,我又开始怀念用手机刷门禁的快感了。。

    1. 基础知识

    于是,我开始查阅资料,基本确定了小米手机是还是可以通过其它方式模拟加密门禁卡的。
    然后,资料查多了,记不到,又怕以后用到需要重新找,干脆水一篇博客记录下来。
    如果熟悉NFC和IC卡,或者只想模拟加密门禁卡,并不关心原理,这章可以跳过,直接看下一章。

    1.1 ID卡和IC卡

    • ID卡:全称身份识别卡(Identification Card),多为低频(125Khz),是一种不可写入的感应卡,含固定的编号,主要有台湾SYRIS的EM格式,美国HID、TI、MOTOROLA等各类ID卡。
    • IC卡:全称集成电路卡(Integrated Circuit Card),又称智能卡(Smart Card)。多为高频(13.56Mhz),可读写数据容量大有加密功能、数据记录可靠、使用更方便,如一卡通系统、消费系统等,目前主要有PHILIPS的Mifare系列卡。

    主要区别
    ID卡,低频,不可写入数据,其记录内容(卡号)只可由芯片生产厂一次性写入,开发商只可读出卡号加以利用,无法根据系统的实际需要制订新的号码管理制度;
    IC卡,高频,不仅可由授权用户读出大量数据,而且亦可由授权用户写入大量数据(如新的卡用户的权限、用户资料等),IC卡所记录内容可反复擦写;

    IC卡由于其固有的信息安全、便于携带、比较完善的标准化等优点,在身份认证、银行、电信、公共交通、车场管理等领域正得到越来越多的应用,例如二代身份证、银行的电子钱包,电信的手机SIM卡、公共交通的公交卡、地铁卡、用于收取停车费的停车卡、小区门禁卡等;

    以上图片来自淘宝商家,网上找了半天相关资料,发现淘宝商家解释得最清楚。

    总结:
    1.ID卡多为低频,IC多为高频;
    2.IC卡整体上看比ID卡更有优势,市面上使用的大多数也是IC卡;
    3.对于矩形白卡,里面为矩形线圈、表面没有编号的多为IC卡,里面为圆形线圈、表面有编号的多为ID卡;
    4.对于异形卡,有编号的多为ID卡,最好使用带NFC的手机进行测试(目前手机NFC只能读高频13.56Mhz),IC卡会有反应;

    1.2 接触式和非接触式IC卡

    IC卡又可以分为接触式IC卡和非接触式IC卡。

    • 接触式IC卡:该类卡是通过IC卡读写设备的触点与IC卡的触点接触后进行数据的读写;
    • 非接触式IC卡:又称射频卡、感应式IC卡,该类卡与卡设备无电路接触,而是通过非接触式的读写技术进行读写(例如RFID、NFC),其内嵌芯片除了CPU、逻辑单元、存储单元外,增加了射频收发电路。该类卡一般用在使用频繁、信息量相对较少、可靠性要求较高的场合。

    两者比较好区分,直接看卡上有无金属触点即可。

    1.3 RFID和NFC

    非接触式的读写技术常见的有两种:RFID技术和NFC技术。

    • RFID技术:
      1.通常应用在生产,物流,跟踪和资产管理上;
      2.根据频率划分包含低频、高频(13.56MHz)、超高频、微波等;
      3.作用距离取决于频率、读写器功率、读写器天线增益值、标签天线尺寸等,工作距离在几厘米到几十米不等;
      4.读写器和非接触卡可以是一对多关系,也可以说一对一关系;且读写器和非接触卡是两个实体,不能切换;

    • NFC技术:
      1.通常应用在门禁,公交卡,手机支付等领域;
      2.频率也是13.56MHz,且兼容大部分RFID高频相关标准(有些是不兼容);
      3.NFC作用距离较短,一般都是0~10厘米;
      4.读写器和标签几乎都是一对一关系;且支持读写模式和卡模式,可以作为读写器也可变为非接触卡;

    总体来说,NFC是RFID的子集,但NFC有些新特性又是RFID所不具备的。

    1.4 ID卡类型

    ID卡,工作在低频(125Khz),根据卡内使用芯片的不同,有如下分类:

    • ID卡
      EM4XX系列,多为EM4100/EM4102卡,常用的固化ID卡,出厂固化ID,只能读不能写;常用于低成本门禁卡,小区门禁卡,停车场门禁卡;

    • ID白卡
      EM4305或T5577,可用来克隆ID卡,出厂为白卡,内部EEPROM可读可写,修改卡内EEPROM的内容即可修改卡片对外的ID号,达到复制普通ID卡的目的;
      T5577写入ID号可以变身成为ID卡,写入HID号可以变身HID卡,写入Indala卡号,可以变身Indala卡

    • HID卡
      全称HID ProxⅡ,美国常用的低频卡,可擦写,不与其他卡通用;

    1.5 IC卡类型

    IC卡中最常见的是NXP Mifare系列卡,工作在高频(13.56Mhz),根据卡内使用芯片的不同,有如下分类:

    • M1卡
      全称Mifare S50,是最常见的卡,出厂固化UID(UID即指卡号,全球唯一),可存储修改数据;常用于学生卡,饭卡,公交卡,门禁卡;

    • M0卡
      全称Mifare UltraLight,相当于M1卡的精简版,容量更小、功能更少,但价格更低,出厂固化UID,可存储修改数据;常用于地铁卡,公交卡;

    以上两种固化了UID,为正规卡,接下来就是一些没有固化UID,即不正规的卡:

    • UID卡
      全称Mifare UID Chinese magic card,国外叫做中国魔术卡,M1卡的变异版本,使用后门指令(magic指令),可修改UID(UID在block0分区),可以用来完整克隆M1卡的数据;
      但是现在新的读卡系统通过检测卡片对后门指令的回应,可以检测出UID卡,因此可以来拒绝UID卡的访问,来达到屏蔽复制卡的功能(即UID防火墙系统);

    • CUID卡
      为了避开UID防火墙系统,CUID卡应运而生,取消响应后门指令(magic指令),可修改UID,是目前市场上最常用的复制卡;
      近两年,智能卡系统制造公司,根据CUID卡的特性研发出CUID卡防火墙,虽然现在(2019年)还不是很普及,但是总有一天CUID卡会和UID卡一样面临着淘汰;

    • FUID卡
      FUID卡只能写一次UID,写完之后自动固化UID所在分区,就等同M1卡,目前任何防火墙系统都无法屏蔽,复制的卡几乎和原卡一模一样;
      但缺点也相对明显,价格高、写坏卡率高,写错就废卡。

    • UFUID卡
      集UID卡和FUID卡的优点于一身,使用后门指令,可修改UID,再手动锁卡,变成M1卡
      可先反复读写UID,确认数据无误,手动锁卡变成M1,解决了UID卡的UID防火墙屏蔽,也解决FUID的一次性写入容易写错的问题,且价格比FUID卡还便宜;

    判断是M0卡(Mifare UltraLight),还是M1卡(Mifare Classic 1k),可以通过SAK值判断。

    产品ATQASAKUID长度
    Mifare Mini00 04094 bytes
    Mifare Classic 1k00 04084 bytes
    Mifare Classic 4k00 02184 bytes
    Mifare Ultraligh00 44007 bytes
    Mifare Plus00 44207 bytes

    1.6 IC卡详细分析

    1.6.1 IC卡存储器结构

    以M1卡为例,介绍IC卡数据结构。
    M1卡有从0到15共16个扇区,每个扇区配备了从0到3共4个数据段,每个数据段可以保存16字节的内容;
    每个扇区中的段按照0~3编号,第4个段中包含KEYA(密钥A 6字节)、控制位(4字节)、KEYB(密钥B 6字节),每个扇区可以通过它包含的密钥A或者密钥B单独加密;

    • 厂商段
      每张M1卡都有一个全球唯一的UID号,这个UID号保存在卡的第一个扇区(0 扇区)的第一段(0 编号数据段),也称为厂商段。
      其中前4个字节是卡的UID,第5个字节是卡 UID 的校验位,剩下的是厂商数据。
      并且这个段在出厂之前就会被设置了写入保护,只能读取不能修改,前面各种能修改UID的卡,UID是没有设置保护的,也就是厂家不按规范生产的卡。
    • 数据段
      除了第0扇区外,其它每个扇区都把段0、段1、段2作为了数据段,用于保存数据。
      数据段的数据类型可以被区尾的控制位(Access Bits)配置为读/写段(用于譬如无线访问控制)或者值段(用于譬如电子钱包)。
      值段有固定的存储格式,只能在值段格式的写操作时产生,值段可以进行错误检测和纠正并备份管理,其有效命令包括读、写、加、减、传送、恢复,值段格式如下:

    Value表示一个带符号4字节值,为了保证数据的正确性和保密性,值被保存了3次,两次直接保存,一次取反保存。该值先保存在0字节-3字节中,然后将取反的字节保存在4字节-7字节中,还保存了一次在8字节-11字节中。
    Adr表示一个字节的地址,当执行备份管理时用于保存存储段的地址。地址字节保存了4次,取反和不取反各保存了2次。在执行加值、减值、恢复和传送等操作时,地址保持不变,它只能通过写命令改变。

    • 控制段
      每个扇区都有一个区尾控制段,它包括密钥A和密钥B(可选),以及本扇区四个段的访问控制位 (Access bits);访问控制位也可用于指出数据段的类型(为读/写段还是值段);控制段的存储格式如下:

    如果不需要密钥B,那么区尾的最后6个字节可以作为数据字节,用户数据可以存储在区尾的第9个字节,这个字节具有和字节6、7、8一样的访问权限。

    1.6.2 IC卡访问存储器

    • 数据段支持的操作
      根据使用的密钥相应区尾访问条件的不同,数据段所支持的存储器操作也不同,存储器的操作类型如下:

    可以看到只有作为值段时,才能加、减、传送、恢复。

    • 各区的访问位定义
      每个数据段和区尾的访问条件由3个位来定义,它们以取反和不取反的形式保存在区尾指定字节中。
      访问位控制了使用密钥A和B操作存储器的权限,当知道相关的密钥和当前的访问控制条件时,可以修改访问条件,各区的访问位定义如下:
    • 访问位在区尾的存储形式
    • 区尾的访问条件
      根据区尾(段 3)访问位的不同,访问条件可分为 “从不”、“密钥A”、“密钥B” 或“密钥A|B”(密钥A或密钥B),区尾的访问条件如下:

    用灰色标明的行是密钥B可被读的访问条件,此时密钥B可以存放数据。
    例如:当段3的访问条件C13C23C33=100时,表示:密钥 不可读(隐藏),验证密钥B正确后,可写(或更改);访问控制位在验证密钥A或密钥B正确后,可读不可写(写保护);密钥B不可读,在验证密钥 B 正确后可写;
    又如:当段3的访问条件C13C23C33=110或者111时,除访问控制位需要在验证密钥A或密钥B正确后可读外,其他如访问控制位的改写,密钥 A,密钥 B 的读写权限均被锁死而无法访问;

    • 数据段的访问条件
      根据数据段(段 0-2 访问位的不同,访问条件可分为 “从不”、“密钥A ”、“密钥B ” 或“密钥A|B”(密钥A或密钥B)。
      相关访问位的设置定义了该段的应用(或者说数据段类型)以及所支持的应用命令,不同的数据段类型可以进行不同的访问操作。 读/写段可以进行读操作和写操作。值段可以进行加、减、传送和恢复的值操作。
      其中一种情况中(001)只能对不可再充电的卡进行读操作和减操作,另一种情况中(110)使用密钥B可以再充电。 厂商段无论设置任何的访问位都只是只读的, 数据段的访问条件如下:

    如果密钥B可以在相应的区尾被读出,它就不能用于确认(在前面所有表中的灰色行)。如果读卡器要用这些(带灰色标记的)访问条件的密钥B确认任何段,卡会在确认后拒绝任何存储器访问操作。

    1.6.3 举例说明

    Mifare S50出厂时,访问控制字节(字节6-字节9)被初始化为“FF 07 80 69”,KEY A和KEY B的默认值为“FF FF FF FF FF FF” ;
    字节6为FF,二进制为1111111;字节7为07,二进制为00000111;字节8为80,二进制为10000000,如下:

    对照前面的访问位在区尾的存储形式图,可得知访问控制位为:
    C10C20C30=000;C11C21C31=000;C12C22C32=000;C13C23C33=001。

    C10C20C30、C11C21C31、C12C22C32对应数据段0、1、2,参考数据段的访问条件图即可得知该段三个数据区的访问权限;
    C13C23C33对应区尾(段 3),参考区尾的访问条件图即可得知该段的访问权限;

    块0控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
    块1控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
    块2控制位为:0 0 0 权限为:通过A或者B密码认证后可读,可写,可进行加值和减值操作;
    块3控制位为:0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码;验证A或者B密码后,可读可改写存取控制;验证A密码或者B密码后,可读可改写B密码;

    这样每次换算还是有点麻烦,可以使用M1 S50卡控制字节生成工具快速换算:

    最下面一行可以输入想解释的控制字,也可以根据上面的设置生成控制字;
    最上面一行,左边是数据段0、1、2的访问控制位,右边是对应权限所需要的秘钥;
    中间的一行,左边是区尾的访问控制位,右边是对应权限所需要的秘钥;

    1.7 非加密IC卡和加密IC卡

    非加密IC卡和加密IC卡的区别就是,非加密IC卡中所有扇区的KEYA和KEYB数值都是默认值FFFFFFFFFFFF;
    而加密IC卡中,其中有扇区的KEYA和KEYB不等于FFFFFFFFFFFF,部分扇区加密的卡称半加密IC卡,所有扇区都加密的卡称全加密IC卡。

    一般的读卡器,像手机的NFC,是读不到IC卡的加密数据的,需要用专门的工具,比如Proxmark3读取。

    对于IC卡,除了对卡上数据加密,还有滚动码加密、服务器数据验证等技术。
    因此,对IC卡的解密,更多的是门禁卡、签到卡、车库卡等的讨论,像公交卡、饭卡等涉及到资金问题的,基本都有服务器定期校验,得先搞定服务器再说,难度高还违法。

    参考资料:
    码农生活 篇二:IC卡门卡模拟探秘
    IC卡简介【M1/S50,UID,CUID,FUID,UFUID复制卡介绍】
    谈谈 Mifare Classic 破解
    rfid-practice
    Type A 卡存储结构与通信
    Proxmark3 Easy破解门禁卡学习过程

    2. 手机NFC模拟加密门禁卡

    有了前面的知识,再来看现在我的加密门禁卡情况,手机能识别为加密卡,肯定是IC卡。

    首先,加密卡在目前这个情况下是无法解密的,如果按照下面的操作失败,请参考下一章。
    部分门禁系统只认证IC卡的UID,利用这一情况,可以试试复制门禁卡的UID,看运气能否打开门。

    在已root的情况下,直接使用APP NFC卡模拟 便可读取加密卡的UID和非加密数据、并写UID到手机NFC里。
    在未root的情况下,使用小米系统自带的门卡模拟功能,出于安全考虑,是不能对加密卡进行任何操作。手机的NFC,理论上可以读加密IC卡的UID,因此可以使用第三方软件MifareClassicTool读取UID,因为没有root,不能写手机NFC,但可以写IC卡,因此还需要一张CUID卡(不能使用UID卡),某宝上一块多一张,思路就是先读取加密卡的UID,再读取CUID卡的数据,然后将CUID卡的UID改为加密卡一样的UID,再将修改后的数据写回到CUID卡,最后用小米系统自带的门卡模拟功能,复制未加密的CUID卡即可。

    • 1.读取加密卡的UID
      打开软件Mifare Classic Tool,将加密门禁卡放到手机的NFC感应区域,识别到IC卡后,点击“工具”->“显示标签信息”,可以看到加密门禁卡的8个数字,4字节的UID。
      注意,在16进制里,每个数字为4位(2^4=16),8位(bits)为一字节(bytes),即两个数字组成一字节,这里8个数字,即为4字节(Bytes)。
      前8个数字,每个数字代表4位,8位为一字节,8个数字就是32位,即4字节
      接着打开“工具”->“BCC计算器”,输入UID,得到1位BBC(两个数字)校验数据。
    • 2.读取CUID卡数据
      将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“读标签”->“启动映射并读取标签”,即可得到CUID白卡的所有信息。
      接着修改第一行的前10个数字,改为加密门禁卡的UID(8个数字)和BCC(2个数字),一共10个数字,并点右上角保存图标保存。
    • 3.写数据到CUID卡
      再将CUID卡放到手机的NFC感应区域,识别到IC卡后,点击“写标签”,勾选“写转储(克隆)”->“显示选项”->“高级:使能厂商块写入”。
      再点击“选择转储”,选择刚才保存的数据,点击“选择转储”。

    在弹出的选择写扇区界面,默认即可,点击“好的”,最后点击“启动映射并写转储数据”。

    • 4.NFC手机复制CUID卡
      最后,使用小米手机系统自带的门卡模拟功能,复制刚才写入新UID的CUID卡即可。

    接着,就看运气吧,我小区的门禁系统就只认UID,搞定。

    参考资料:
    如何用小米NFC手机模拟加密卡(的部分功能)

    3. Proxmark3解密门禁卡

    先理一下技术原理:
    1.对于未加密的IC卡,直接读出UID,写入空白卡即可;也就是我最开始那个门禁系统;
    2.对于加密的IC卡,先读取UID,写入空白卡,如果门禁只认UID,也就可以了;也就是我现在的门禁系统;
    3.越来越多的门禁,不再只看UID,还要看分区的加密数据,这个加密数据,一般的读卡器读不出来(比如手机NFC),需要Proxmark3、ACR122U等专业读卡器,利用漏洞把卡里的数据读取出来。这里读取出来时,就已经是16进制的数据了,一般门禁系统,把UID和加密数据直接写入新卡即可;
    4.接着前面情况,如果不是门禁系统而是饭卡,余额的变化,就是加密数据在不断的变化,此时读取出来数据,对数据分析后,写入新数据,即实现了修改余额的效果,不过一般都有服务器定期验证,发现没有充卡记录但余额变化,迟早会发现问题;
    5.如果是高级点的门禁,比如某些电梯卡,采用动码技术,卡前后的数据会发生变化,而且每次变化都没规律,复制后用新卡,原卡就不能再用了,否则原卡前后数据不一样,可能会被拉进黑名单锁卡;需要破解滚动码的加密规则,才能自由写卡;
    6.Proxmark3、ACR122U都是工具,功能是利用IC卡漏洞,读取加密区域数据,同时也能写卡,具体的数据的修改规则,得自己研究;两个工具的区别是Proxmark3可以写高频和低频(IC卡和ID卡),而ACR122U只能读写高频(IC卡);
    7.NXP Mifare系列卡,即便数据全加密,Proxmark3也能直接解出来;国产卡全加密后,需要先侦测个密码,再用Proxmark3才能解出来,这里的密码可以使用变色龙(ChameleonMini)去刷卡的地方侦测密码,成功率更高;
    8.另外,进行学习研究是好事,在不危害他人利益的情况下方便自己问题也不大,危害他人利益肯定违法犯罪,切勿以身试法,参考此文进行犯罪的相关人员与本人无关;

    常规IC卡破解流程如下:

    Proxmark3是由Jonathan Westhues设计的开源硬件,主要用于他的硕士毕业论文。
    现在某宝卖的Proxmark3,都是国内厂商参考源硬件制作出来,我手里这台Proxmark3 V5.0也是来自某宝,内存512K,双USB口,已刷好目前最新稳定版的冰人固件3.1.0。

    Proxmark3除了官方的固件,还有不少第三方固件,这些固件中,以Iceman的固件最流行,除此之外,卖家送的资料里还有离线嗅探固件用于侦测密码,设计的双USB的用意,也是为此。

    3.1 PM3常用指令(部分)

    PM3 Universal GUI是客户端软件,用于Windows上向Proxmark3发送命令。

    左上角需要选择对应的串口端口,左边是命令介绍,可以点击所需命令,将自动出现在输入框,点击Run则执行。

    3.1.1 help主帮助命令

    命令介绍
    help显示帮助
    data图形窗口/缓冲区数据操作等
    exit退出Proxmark3的终端环境
    hf高频相关命令
    hw硬件检测相关命令
    lf退出Proxmark3的终端环境等同exit

    3.1.2 hw硬件检测相关命令

    命令介绍
    detectreader[‘l’/‘h’] --检测外部读卡器频率区域(选项“l”或“h”限制到低频LF或高频HF)
    fpgaoff设置FPGA为关闭
    readmem从芯片中读取10进制地址的存贮器
    reset重置Proxmark3
    setlfdivisor<19 - 255> – 在12Mhz/(基数+1)驱动LF天线
    setmux<loraw/hiraw/lopkd/hipkd> – 设置ADC多路复用器为一个特定的值
    tune测量天线的调谐
    version显示Proxmark3的固件版本信息
    status显示Proxmark3状态信息
    ping测试Proxmark3连接是否正常

    3.1.3 lf低频相关命令

    命令介绍
    cmdread <‘0’> <‘1’> <命令> [‘h’] – 在读取之前发送命令来调整LF读卡器周期(以微妙为单位)('h’选项为134)
    em4xEM4X卡类相关命令…
    flexdemod解调FlexPass样本
    hidHID卡类相关命令…
    indalademod[‘224’] --解调Indala样本的64位UID(选项’224’是224位)
    indalacloneUID] [‘l’]-- 克隆Indala到T55x7卡 (标签必须在天线上)(UID为16进制)(选项’l’表示224位UID)
    read[‘h’] – 读取125/134 kHz的低频ID标签(选项’h’是134)
    sim[GAP] – 从可选GAP的缓冲区模拟低频标签(以微秒为单位)
    simbidir模拟低频标签(在读卡器和标签之间双向传输数据)
    simman<时钟> <比特率> [GAP] 模拟任意曼彻斯特低频标签
    tiTI卡类相关命令…
    hitagHitag标签与应答相关…
    vchdemod[‘clone’] - 解调VeriChip公司样本
    t55xxT55xx卡类相关命令…
    PCF7931PCF7931卡类相关命令…

    3.1.4 hf高频相关命令

    命令介绍
    14aISO14443A卡的相关命令…
    14bISO14443B卡的相关命令…
    15ISO15693卡的相关命令…
    epa德国身份证的相关命令…
    legicLEGIC卡的相关命令…
    iclassICLASS卡的相关命令…
    mfMIFARE卡的相关命令…
    tune连续测量高频天线的调谐

    支持的高频卡很多,最常用的是MIFARE卡,因此暂只详细介绍下MIFARE卡的命令。

    • hf mf(MIFARE卡的相关命令…)
    命令介绍
    dbg设置默认调试模式
    rdbl读取MIFARE classic卡的区块数据
    rdsc读取MIFARE classic卡的扇区数据
    dump导出MIFARE classic卡的数据到二进制文件
    restore从二进制文件恢复数据到空白的MIFARE classic卡
    wrbl改写MIFARE classic卡的区块数据
    chk测试MIFARE classic卡的各个区块KEY A/B
    darkside基于PRNG漏洞,执行mifare “DarkSide”攻击操作
    nested测试嵌套认证漏洞,基于一个已知Key,获取都有扇区Keys
    sniff嗅卡片与读写器之间的通讯(等同于hf 14a snoop)
    sim模拟一个MIFARE卡片
    eclr清除仿真内存的各区块数据
    eget获取仿真内存的各区块数据
    eset设置仿真内存的各区块数据
    eload从导出的文件加载仿真数据
    esave导出保存仿真数据到文件
    ecfill利用仿真器的keys来填补仿真内存
    ekeyprn打印输出仿真内存中的keys
    csetuid直接设置可改UID卡的UID
    csetblk把对应区块数据写入UID卡
    cgetblk读取UID卡对应区块数据
    cgetsc读取UID卡对应扇区数据
    cload写入dump数据到UID卡
    csave保存UID卡数据到文件或者仿真内存

    参考资料:
    PM3常用命令

    3.2 破解加密门禁卡

    3.2.1 破解思路

    • 1.获得任意扇区的密钥(使用以下任一方法成功即可):
       a.PRNG漏洞攻击得0扇区密匙,对应命令:hf mf darkside
       b.默认密码扫描获得密匙,对应命令:hf mf chk *1 ? t d
       c.探读卡机和卡片交互数据获得密匙;
       d.模拟成M1卡刷卡后捕获密匙(挑读卡机,兼容性不好);

    举例:

    pm3 --> hf mf chk           
    Usage:  hf mf chk [h] <block number>|<*card memory> <key type (A/B/?)> [t|d] [<key (12 hex symbols)>] [<dic (*.dic)>]          
    Options:          
          h    this help          
          *    all sectors based on card memory, other values then below defaults to 1k          
          			0 - MINI(320 bytes)          
          			1 - 1K          
          			2 - 2K          
          			4 - 4K          
          d    write keys to binary file          
          t    write keys to emulator memory
              
              
    Examples:          
          hf mf chk 0 A 1234567890ab keys.dic     -- target block 0, Key A          
          hf mf chk *1 ? t                        -- target all blocks, all keys, 1K, write to emul          
          hf mf chk *1 ? d                        -- target all blocks, all keys, 1K, write to file 
    
    pm3 --> hf mf chk *1 ? t d          
    No key specified, trying default keys          
    [ 0] ffffffffffff          
    [ 1] 000000000000          
    [ 2] a0a1a2a3a4a5          
    [ 3] b0b1b2b3b4b5          
    [ 4] c0c1c2c3c4c5          
    [ 5] d0d1d2d3d4d5          
    [ 6] aabbccddeeff          
    [ 7] 1a2b3c4d5e6f          
    [ 8] 123456789abc          
    [ 9] 010203040506          
    [10] 123456abcdef          
    [11] abcdef123456          
    [12] 4d3a99c351dd          
    [13] 1a982c7e459a          
    [14] d3f7d3f7d3f7          
    [15] 714c5c886e97          
    [16] 587ee5f9350f          
    [17] a0478cc39091          
    [18] 533cb6c723f6          
    [19] 8fd0a4f256e9          
    
    Time in checkkeys: 0 seconds
              
    testing to read key B...          
    |---|----------------|---|----------------|---|          
    |sec|key A           |res|key B           |res|          
    |---|----------------|---|----------------|---|          
    |000|  ------------  | 0 |  ------------  | 0 |          
    |001|  ------------  | 0 |  ------------  | 0 |          
    |002|  ------------  | 0 |  ------------  | 0 |          
    |003|  ------------  | 0 |  ------------  | 0 |          
    |004|  ------------  | 0 |  ------------  | 0 |          
    |005|  ------------  | 0 |  ------------  | 0 |          
    |006|  ------------  | 0 |  ------------  | 0 |          
    |007|  ------------  | 0 |  ------------  | 0 |          
    |008|  ------------  | 0 |  ------------  | 0 |          
    |009|  ------------  | 0 |  ------------  | 0 |          
    |010|  ------------  | 0 |  ------------  | 0 |          
    |011|  ------------  | 0 |  ------------  | 0 |          
    |012|  ------------  | 0 |  ------------  | 0 |          
    |013|  ------------  | 0 |  ------------  | 0 |          
    |014|  ------------  | 0 |  ------------  | 0 |          
    |015|  ------------  | 0 |  ------------  | 0 |          
    |---|----------------|---|----------------|---|          
    Found keys have been transferred to the emulator memory          
    Printing keys to binary file hf-mf-4033B54A-key.bin...          
    Found keys have been dumped to file hf-mf-4033B54A-key.bin. 0xffffffffffff has been inserted for unknown keys.
    

    hf mf chk *1 ? t d命令会使用默认密码扫描,含义如下:

    *1: 第一个为检测块的编号,第二个为IC卡内存大小;
    ?: 检测秘钥是A还是B,或者两者;
    t: 保存检测秘钥到Proxmark3内存;
    d: 保存检测到秘钥到文件,默认文件名hf-mf-UID-key.bin
    
    • 2.利用MFOC漏洞,用已知扇区密匙求所有扇区密匙;

    举例:

    pm3 -->  hf mf nested          
    Usage:          
     all sectors:  hf mf nested  <card memory> <block number> <key A/B> <key (12 hex symbols)> [t,d]          
     one sector:   hf mf nested  o <block number> <key A/B> <key (12 hex symbols)>          
                   <target block number> <target key A/B> [t]          
    Options:          
          h    this help          
          card memory - 0 - MINI(320 bytes), 1 - 1K, 2 - 2K, 4 - 4K, <other> - 1K          
          t    transfer keys into emulator memory          
          d    write keys to binary file `hf-mf-<UID>-key.bin`          
              
    Examples:          
          hf mf nested 1 0 A FFFFFFFFFFFF           
          hf mf nested 1 0 A FFFFFFFFFFFF t           
          hf mf nested 1 0 A FFFFFFFFFFFF d           
          hf mf nested o 0 A FFFFFFFFFFFF 4 A  
            
    pm3 --> hf mf nested 1 0 A FFFFFFFFFFFF d t          
    [+] Testing known keys. Sector count=16          
    
    [-] Chunk: 0.7s | found 31/32 keys (21)          
    [+] Time to check 20 known keys: 1 seconds
              
    [+] enter nested attack          
    [+] target block:  4 key type: A  -- found valid key [112233445566]          
    
    [-] Chunk: 0.7s | found 32/32 keys (1)          
    [+] time in nested: 2 seconds
              
    [+] trying to read key B...          
    |---|----------------|---|----------------|---|          
    |sec|key A           |res|key B           |res|          
    |---|----------------|---|----------------|---|          
    |000|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |001|  112233445566  | 1 |  ffffffffffff  | 1 |          
    |002|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |003|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |004|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |005|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |006|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |007|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |008|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |009|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |010|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |011|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |012|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |013|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |014|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |015|  ffffffffffff  | 1 |  ffffffffffff  | 1 |          
    |---|----------------|---|----------------|---|          
    [+] saving keys to binary file hf-mf-4033B54A-key.bin...
    

    hf mf nested 1 0 A FFFFFFFFFFFF d t命令用已知扇区密匙求所有扇区密匙,含义如下:

    1: IC卡内存大小;
    0: 块编号;
    A: 秘钥类型;
    d: 保存检测到秘钥到文件,默认文件名hf-mf-UID-key.bin
    t: 保存检测秘钥到Proxmark3内存;
    
    • 3.用破解出的密匙把卡片数据读出导出电脑;

    举例:

    pm3 --> hf mf dump          
    |-----------------------------------------|          
    |------ Reading sector access bits...-----|          
    |-----------------------------------------|          
    |-----------------------------------------|          
    |----- Dumping all blocks to file... -----|          
    |-----------------------------------------|          
    [+] successfully read block  0 of sector  0.          
    [+] successfully read block  1 of sector  0.          
    [+] successfully read block  2 of sector  0.          
    [+] successfully read block  3 of sector  0.          
    [+] successfully read block  0 of sector  1.          
    [+] successfully read block  1 of sector  1.          
    [+] successfully read block  2 of sector  1.          
    [+] successfully read block  3 of sector  1.          
    [+] successfully read block  0 of sector  2.          
    [+] successfully read block  1 of sector  2.          
    [+] successfully read block  2 of sector  2.          
    [+] successfully read block  3 of sector  2.          
    [+] successfully read block  0 of sector  3.          
    [+] successfully read block  1 of sector  3.          
    [+] successfully read block  2 of sector  3.          
    [+] successfully read block  3 of sector  3.          
    [+] successfully read block  0 of sector  4.          
    [+] successfully read block  1 of sector  4.          
    [+] successfully read block  2 of sector  4.          
    [+] successfully read block  3 of sector  4.          
    [+] successfully read block  0 of sector  5.          
    [+] successfully read block  1 of sector  5.          
    [+] successfully read block  2 of sector  5.          
    [+] successfully read block  3 of sector  5.          
    [+] successfully read block  0 of sector  6.          
    [+] successfully read block  1 of sector  6.          
    [+] successfully read block  2 of sector  6.          
    [+] successfully read block  3 of sector  6.          
    [+] successfully read block  0 of sector  7.          
    [+] successfully read block  1 of sector  7.          
    [+] successfully read block  2 of sector  7.          
    [+] successfully read block  3 of sector  7.          
    [+] successfully read block  0 of sector  8.          
    [+] successfully read block  1 of sector  8.          
    [+] successfully read block  2 of sector  8.          
    [+] successfully read block  3 of sector  8.          
    [+] successfully read block  0 of sector  9.          
    [+] successfully read block  1 of sector  9.          
    [+] successfully read block  2 of sector  9.          
    [+] successfully read block  3 of sector  9.          
    [+] successfully read block  0 of sector 10.          
    [+] successfully read block  1 of sector 10.          
    [+] successfully read block  2 of sector 10.          
    [+] successfully read block  3 of sector 10.          
    [+] successfully read block  0 of sector 11.          
    [+] successfully read block  1 of sector 11.          
    [+] successfully read block  2 of sector 11.          
    [+] successfully read block  3 of sector 11.          
    [+] successfully read block  0 of sector 12.          
    [+] successfully read block  1 of sector 12.          
    [+] successfully read block  2 of sector 12.          
    [+] successfully read block  3 of sector 12.          
    [+] successfully read block  0 of sector 13.          
    [+] successfully read block  1 of sector 13.          
    [+] successfully read block  2 of sector 13.          
    [+] successfully read block  3 of sector 13.          
    [+] successfully read block  0 of sector 14.          
    [+] successfully read block  1 of sector 14.          
    [+] successfully read block  2 of sector 14.          
    [+] successfully read block  3 of sector 14.          
    [+] successfully read block  0 of sector 15.          
    [+] successfully read block  1 of sector 15.          
    [+] successfully read block  2 of sector 15.          
    [+] successfully read block  3 of sector 15.          
    [+] dumped 64 blocks (1024 bytes) to file hf-mf-4033B54A-data.bin
    

    因为前面把秘钥保存到Proxmark3内存,这里就不需要指定秘钥文件,最后将生成hf-mf-UID-data.bin文件,里面就是IC卡的所有数据。

    • 4.放上UID/CUID空卡,把电脑中的数据写入卡中;
      Proxmark3不能识别、使用bin文件,需要转换成eml格式,可以使用PM3 Universal GUI提供的脚本转换。
      举例:
    pm3 --> script run dumptoemul.lua -i hf-mf-4033B54A-data.bin -o 4033B54A.eml                    
    [+] Executing: dumptoemul.lua, args '-i hf-mf-4033B54A-data.bin -o 4033B54A.eml  '
              
    Wrote an emulator-dump to the file 4033B54A.eml
              
    [+] Finished
    

    script run命令将运行scripts目录下对应脚本,后面接的参数由脚本决定,可以打开脚本看说明,dumptoemul.lua脚本参数含义如下:

    i: 指定待转换的bin文件;
    o: 指定生成的eml文件名;
    

    之后便会得到一个eml文件。

    注意,UID卡和CUID卡读写数据的流程存在差异,这里分开举例。
    UID卡存在后门指令,无需知道秘钥即可实现读写。
    CUID卡没有后门指令,验证对密码后才可修改内容,因此每次写CUID卡前,都需要按前面的方式先破解密码,才能利用密码写数据。
    另外,如果不小心写错UID号的校验位,导致无法读卡,此时就无法修复,只能做废卡处理。
    因此,如果是使用IC卡作为中介写到手环/手机,那么UID卡是最好的选择,无论怎么写,就算写错也能利用后门指令修复。如果是复制卡,卡作为最终目标,那么CUID不响应后门指令,可以通过UID防火墙,是不错的选择。

    写UID卡:
    前面得到了卡数据文件4033B54A.eml,现在将其写到UID卡里。
    举例:

    pm3 --> hf mf cload 4033B54A          
    ................................................................
              
    [+] Loaded 64 blocks from file: 4033B54A.eml
    

    注命令里传入的待写uml文件,不需要文件扩展名。
    写完之后没有任何回显提示,可以使用hf mf cgetsc 0读出分区数据,再进行对比。

    写CUID卡:
    举例:

    pm3 --> hf mf wrbl          
    Usage:  hf mf wrbl    <block number> <key A/B> <key (12 hex symbols)> <block data (32 hex symbols)>          
    Examples:          
            hf mf wrbl 0 A FFFFFFFFFFFF 000102030405060708090A0B0C0D0E0F
    
    pm3 --> hf mf wrbl 0 A FFFFFFFFFFFF 01020304040804006263646566676869          
    --block no:0, key type:A, key:FF FF FF FF FF FF           
    --data: 01 02 03 04 04 08 04 00 62 63 64 65 66 67 68 69           
    isOk:01 
    

    hf mf wrbl命令会根据传入的秘钥,修改数据:

    0: 指定修改第0分区;
    A: 指定秘钥为A类型;
    FFFFFFFFFFFF: 指定该秘钥;
    000102030405060708090A0B0C0D0E0F: 指定修改的数据;
    

    使用PM3 Universal GUI这样一个一个修改数据,感觉很麻烦,应该有其它方法暂未发现。
    也可以使用其它客户端软件,有些针对国情修改的傻瓜式操作,使用起来也很方便。
    这样写完一个分区后,isOk显示为01表示修改成功,全部修改完后,可以重新读取出来,对比数据。

    3.2.1 写手机/手环思路

    前面,利用CUID卡和手机应用MifareClassicTool,实现了手机未root情况下,模拟出加密卡UID号,通过了门禁。
    有些门禁,不仅检测UID卡号,还检测某分区的加密数据,这就需要往手机NFC里写入加密数据。
    小米手机自带的门卡模拟功能有两种:一种是模拟实体门卡,只能模拟非加密卡,即就是复制非加密卡的UID;第二种是添加虚拟门卡,会生成一张UID随机的卡,需要去物业处写卡,即物业把该卡UID号加入系统,并写入加密数据。
    要想复制加密卡到手机,这两种方法都不行,首先排除第二种,系统生成的UID随机的卡,该卡的UID是无法修改的。第一种方法,虽然能复制得到UID,但没法复制加密数据,但至少成功了一半。
    使用第一种方法模拟出来的卡,虽然系统不能复制加密数据,但可以使用Proxmark3写入加密数据,也就实现了UID号和加密数据的复制。

    因此,模拟加密卡的思路:
    1.使用Proxmark3获取加密卡数据;
    2.只写UID号到实体UID/CUID卡;
    3.手机模拟该UID/CUID卡;(实现UID号的复制)
    4.使用Proxmark3往手机模拟卡写入加密数据;(实现加密数据的复制)

    1.使用Proxmark3获取加密卡数据
    将加密门禁卡放在Proxmark3,参考前面3.2.1 破解思路,先用默认密码扫描,获得任意扇区的密钥,然后用已知扇区密匙求所有扇区密匙,利用所有秘钥得到所有数据并导出,最后转换成eml格式。
    依次数据以下命令,获取加密卡数据:

    hf mf chk *1 ? t d
    hf mf nested 1 0 A FFFFFFFFFFFF d t
    hf mf dump
    script run dumptoemul.lua -i hf-mf-4033B54A-data.bin -o 4033B54A.eml
    

    得到三个文件:
    hf-mf-4033B54A-key.bin:秘钥文件;
    hf-mf-4033B54A-data.bin:数据文件;
    4033B54A.eml:数据文件eml格式(非必须);

    2.只写UID号到实体UID卡
    将UID卡放在Proxmark3上,建议使用UID卡,写错了也能使用后门指令恢复。
    用文本查看软件,如Notepad++打开hf-mf-4033B54A-data.bin4033B54A.eml,复制第一行数据,我这里为4033b54a8c0804000164efbc1488f31d
    输入以下命令,设置UID号到UID卡:

    hf mf csetblk 0 4033b54a8c0804000164efbc1488f31d                
    

    输入以下命令,查看是否设置成功:

    hf 14a info          
    

    显示出UID : 40 33 B5 4A,和前面的4033b54a8c0804000164efbc1488f31d对应上了,说明成功。

    3.手机模拟该UID卡
    使用小米手机自带的模拟实体门卡功能,模拟该UID卡。

    4.使用Proxmark3往手机模拟卡写入加密数据
    手机模拟前面复制的卡,然后放到放在Proxmark3上。
    输入以下命令,将加密数据写到手机模拟卡里:

    hf mf restore u 4033B54A        
    

    显示如下:

    Restoring hf-mf-4033B54A-data.bin to card          
    Writing to block   0: 40 33 B5 4A 8C 08 04 00 01 64 EF BC 14 88 F3 1D           
    #db# Cmd Error: 04          
    #db# Write block error          
    isOk:00          
    Writing to block   1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00           
    isOk:01          
    Writing to block   2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00           
    isOk:01          
    Writing to block   3: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF           
    isOk:01          
    Writing to block   4: B5 33 40 50 12 31 23 00 00 01 00 00 23 59 00 00           
    isOk:01          
    Writing to block   5: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00           
    isOk:01          
    Writing to block   6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    ……
    

    可看到第0分区写入失败,其它分区写入成功,既没破坏0分区的UID号,又写入了加密数据,达到了目的。

    展开全文
  • 原标题:小米手机NFC功能复制门禁卡功能升级手册,l加密卡也能添加!目前市面上的智能手机NFC功能开发最彻底的应该是小米手机 ,没有之一。 它不仅支持最为主流的模拟公交卡 、、 银行卡功能 ,也只有小米手机支持...
  • 模拟加密卡想法由来已久,但由于网络上方法步骤参差不齐,看了很多很多资料最近才终于弄清楚了,现进行一个整理,并试图写一个教程。 注意! 本教程仅教学模拟相关知识与如何使用手环模拟全加密校园,仅供个人...
  • 有些小区的门禁卡加密的IC卡,用nfc手机和手环无法直接模拟门禁卡,网上提供的方案大多都需要买PM3或者PN532等专业设备。研究了下发现完全没必要搞这麻烦,本文提供了一个更便宜的曲线救国的办法,只需要买几张...
  • 第0步:工具准备一台支持NFC的Android手机,一般较新的国产手机均支持,可以用下面的工具验证下载安装 mifare classic ... rq46MCT APP 图标可用于NFC手机读写的CUID(某宝上可以购买,1~2元一个),记住是CUID,不...
  • 虽然小米说它的手机可以复制门禁卡,但是加密卡它不让复制,就连完全没有加密门禁卡也无法复制, 因为它不让你写入0扇区,你就没有对应的id号,那门怎么会开呢?必须要吐槽一下 当然网上也有改它模拟的ID号方法...
  • 使用NFC读卡器模拟加密门禁卡方法

    千次阅读 2021-06-25 12:25:45
    手机NFC复制加密门禁卡 格式化手机刚才复制的卡 读卡器读取加密门禁卡 将读取的门禁卡数据写入手机刚才格式化的卡片 第二,和上一条比较相似 读卡器读取加密门禁卡,并将加密卡数据保存到电脑 将保存的数据写入到...
  • 教你用手机NFC模拟加密门禁卡-不用电脑,无需ROOT

    万次阅读 多人点赞 2020-03-19 18:20:30
    目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1、前言   目前,IC卡已被广泛应用于身份识别、金融消费、安全认证等领域。...
  • 在小区门禁被物业公司强制...当拿到物业公司给重新授权后的门禁卡后,再次使用小米手环4复制卡时提示加密卡片不能复制,而小米手机cc9虽然可以复制成功但是不能正常刷开门禁。为了便于使用,特意研究了一番。网购...
  • 华为mate 20用NFC模拟小区加密门禁卡成功 按照我的流程,小区加密门卡模拟成功了,说明华为mate20系列的nfc部分与以前版本不一样。同样的方法,mate9 、p10pro 、P20pro和荣耀10就不行,最后一步数据写不进去。
  • 随着科技的发展,现在的手机功能越来越多了,手机nfc就是最近几年新出现的功能,虽然手机nfc推出了,但是很多人不知道手机nfc怎么是使用,今天小编就来告诉你手机nfc的使用方法。nfc也就是近场通信,近场通信是一种...
  • 小米NFC手机 手环 复制加密IC门禁卡

    万次阅读 2019-07-05 11:26:24
    第一步通过破解加密门禁卡得到dump文件,获取卡号。修改dump文件只保留0扇区0块的内容也就是卡号,通过读卡器写入一张卡空白卡。这时就得到了一张未加密的白卡了。手机NFC可以模拟这张未加密的白卡,之后通过读卡...
  • 前言随着几年前NFC在手机上的逐渐普及,厂商针对NFC短距离即时通讯的特性发明了许多应用。...使用方法下面我就以小米手机为例,教教大家怎么把自己的门禁卡复制到手机上。首先点击小米钱包APP中的...
  • 现在很多小区都用上了门禁卡,我们小区也不例外。之前我的Mix2s成功复制了门卡,后来APP的策略是默认不让复制加密卡了,这就让我很烦,新买的redmi K30 PRO 还不让复制了,老的mix2s上有了卡,居然也没办法复制出来...
  • 华为手机NFC模拟加密门禁卡详细教程

    万次阅读 多人点赞 2020-03-27 15:03:23
    目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1、前言   目前,IC卡已被广泛应用于身份识别、金融消费、安全认证等领域。...
  • 目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种通行用的卡模拟复制进手机里,省得随身带着一堆卡分不清或者哪天丢了可以救急,模拟成功后可以用手机直接刷卡,手机在手随意通行。无需root!不用电脑!背景...
  • NFC手机手环脱机模拟加密门禁卡

    千次阅读 2020-05-19 10:03:40
    目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1、前言   目前,IC卡已被广泛应用于身份识别、金融消费、安全认证等领域。...
  • 手机上的IC卡读写编辑软件,搭配蓝牙读卡器或者OTG读卡器,可实现在手机上破解、复制门禁卡,是本文的主角。(下载传送门 https://nfctool.cn/download) 软件已上架各大应用商店,包括华为、魅族、小米、360、百度...
  • 官网小姐姐回答: 门禁卡使用要求: ... 2、签订模拟门禁卡/数字门禁卡的用户协议;...3、模拟步骤:卡片贴近手机背面NFC感应区(可缓慢上下滑动寻找)识别,识别可得知该卡片是否可以模拟成手机门禁卡; 4、步...
  • 门禁卡这个东西,就跟公交卡一样,总会莫名其妙的就掉了,补办一张费用在20到30左右,在经历了几次补卡后,我果断入手了这台NFC读写器,除了可以支持读写外,最大的优势是可以通过手机蓝牙连接设备,然后用蓝牙...
  • 门禁卡分为IC卡和ID卡两种,其中,ID卡没有加密措施,IC卡可以加密也可以不加密 市面上的门禁卡大约八成都是加密的IC卡,最好购买cuid类卡片 如何分辨自己门禁卡的种类呢 只有IC卡才可以写入穿戴装置内,如果你有...
  • 我们说一说目前的门禁卡到底有哪些类型呢?门禁卡一般分为:ID卡和IC卡。而EM卡、M1卡、CPU卡等等,都是这两种卡的细分。它们能够开门,都是基于RFID感应的原理来实现开门的。我们看一张图,在这张图中,能够看到一...
  • NFC模拟门卡 目标:将门禁卡、考勤卡、会员卡、停车卡、电梯卡等等各种卡模拟进手机里,模拟后可用手机代替刷卡,无需root,不用电脑 背景介绍: 1、前言   目前,IC卡已被广泛应用于身份识别、金融消费、安全...
  • 只要你的手机有NFC功能,就能当做门禁卡哦,下面笔者就分享苹果手机变成门禁卡的方法,一起去看看吧!前提准备:支持NFC功能的苹果手机。示例机型:iPhone 11。一、准备工作第一步:我们打开iPhone手机中的钱包APP,...
  • 小米手环3 NFC 自定义 门禁卡数据

    千次阅读 2019-09-27 18:56:25
    【最终测试,可以突破2张限制,最多添加5张门禁卡】 思路: 因为门卡模拟的通道必须要读取一张未加密的卡才能触发向服务器发送添加卡片及卡片信息的请求, 所以我不在门禁卡模拟那里添加,太麻烦了。 我选择添加...
  • NFC - PN532复制RFID门禁卡

    千次阅读 2020-08-31 20:07:34
    楼下小区门禁卡50一张?就这? 使用 PN532 对 M1卡、UID卡进行复制、转录。 适用绝大多数未加密的小区、公司、物业门禁。 读取 UID卡内容,保存为.dump文件 准备材料: PN532模块一个(最便宜的能用就行) ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 483
精华内容 193
关键字:

nfc加密门禁卡复制