第一部分:破解对象是谁
IC卡定义:
1974年,法国人罗兰德实现将可编程的IC(Integrated Circuit / 集成电路)芯片置于卡片中,称为IC卡。随后,IC卡凭借其优势,逐渐取代磁条卡,在世界范围内得到广泛应用。
国际上对IC卡有多种叫法,英文名称有Smart Card、IC Card等;在亚洲,特别是港澳台地区,多称为聪明卡、智慧卡、智能卡等;在我国大陆,则一般简称为IC卡,或者是智能卡。
IC卡分类:
①根据卡内芯片的不同可以分为存储器卡和CPU卡
存储器卡采用存储器芯片作为卡芯,只有硬件组成,包括数据存储器和安全逻辑控制等,后面提到的M1卡就是典型的存储器卡。
CPU卡采用微处理器芯片作为卡芯,由硬件和软件共同组成,属于卡上单片机系统,是真正的智能卡,加密程度高,银行卡、身份证、部分校园卡及公交卡等多采用CPU卡。
②根据卡片的的读写方法分为接触型和非接触型IC卡
接触型IC卡,表面可看到金属芯片,刷卡相对慢,但可靠性高,多用于信息量大,读写操作复杂的场合,例如银行卡、社保卡等。
非接触型IC卡,可以和接触型IC卡具有同样的技术和特性,区别在于它可以与读写器隔空收发信号,这种IC卡常用于身份验证、电子门禁等。
存储器卡:
菲利浦下属子公司恩智浦推出的NXP Mifare Classic 系列卡片,简称MF1卡或M1卡,M1卡又分为M1 S50、M1 S70等型号。
S50与S70的主要区别在于容量,S50容量为1K字节,有16个扇区;S70容量为4K字节,有32个扇区,两者加密机制一样,破解原理相同。
国内的复旦F08卡(FM11RF08)、达华TK S50卡等皆是仿照飞利浦M1 S50的兼容卡,兼容卡与原版卡技术相同,在应用上几乎没有区别。
由于M1 S50及其兼容仿卡在全世界范围内广受欢迎,因此我们常把存储器卡称作M1卡。也有人根据卡片容量,把S50或其兼容卡叫做1K卡,把S70或其兼容卡叫做4K卡。
所谓的破解IC卡,多指破解M1 S50及其兼容卡,M1 S70卡也能破解,原理相同。但当下破解软件大多针对S50卡制作,破解S70需要找到相应软件,PM3的配套软件倒是可以。
我们手上的卡,未必全是IC卡,即便都是IC卡,也未必全是M1 S50或其兼容卡,但为了方便,我们统称为破解IC卡或M1卡(并不是说IC卡都能破解)。
扩展阅读:如何区分M1国产芯片卡和进口芯片的卡https://wenku.baidu.com/view/58af8b166edb6f1aff001fa4?qq-pf-to=pcqq.c2c
CPU卡:
CPU卡目前分为标准CPU卡(俗称纯CPU卡或CPU卡)和CPU模拟卡(俗称模拟卡),两者在硬件上是一样的,也可以统称为CPU卡或智能卡。
模拟卡有些是完全模拟了M1卡的结构,有些是既有M1卡结构,又有其他结构,所以也叫复合卡。所谓结构,简单说就是数据组织方式。
目前,刷了新版冰人固件的PM3,可以破解模拟卡的模拟部分的数据,但是大部分做完也不好用,因为往往还有其他数据(非模拟部分)解决不掉。
如果设备只读0扇区0区块,不读取扇区数据、卡类型、读卡模式,且寻卡指令也未修改,则破解的可能性大一些。另外,某些模拟卡完完全全采用了了M1卡的指令体系,则较容易破解。
不要妄想破解标准CPU卡(简称CPU卡),或者说是CPU模拟卡的非模拟部分(简称CPU部分),CPU卡属于金融卡级别的加密程度,目前没有公开的技术,即便有可能破解,也不要去自找麻烦。
至于模拟卡,有人宣称能破所有模拟部分,不知真假 。当然,某些情景只用到了IC卡的物理UID号,不管是纯CPU卡还是模拟卡,UID号都是可以被读出来并复制的,例如我们学校的门禁卡。
要注意,PM3软件可以读出标准卡或模拟卡的UID号,如果是其他设备如ACR122,需要用特定软件才能读出。安卓软件MCT不能读任何CPU卡的UID号。
不同的IC卡,其SAK值不同,但依靠SAK值不能100%确定是纯CPU卡还是模拟卡,SAK=20的卡多是纯CPU卡,SAK=28的卡多是模拟卡。
要获取CPU卡的UID号,可以借助NFC-GUI或RFID RadioEye,能读SAK为20或28的卡;借助Mifare Card Read、卡匠等软件能读SAK为20的卡,但读不了SAK为28的卡。
实际上,标准卡和模拟卡区分起来比较模糊,总而言之,非PM3的设备,用NFC-GUI这个软件去读或者去写UID号最方便,若是PM3,自带的软件就可以完成各类卡的UID读写。
ID卡定义:
ID卡全称为身份识别卡(Identification Card),与磁卡一样,ID内的数据也只是一串固定的编号,称为ID号码,也有人不标准的称其为UID号。当然,现在的ID卡,可以存储更多的数据,但核心还是ID号。
可以把ID卡的ID号或IC卡的UID号理解为一张卡的身份证号,拿门禁举例,刷卡时,读卡器读到这条身份证号,再和后台数据库匹配,若数据库里有该号码,就开门,否则,就不开门。
如果学校的饭卡是ID卡,刷卡消费时,实际操作更改的是该ID号在数据库中的数据。ID卡本身不存储任何金额数据。所以,对于ID卡,只能复制卡,刷别人的钱(数据库中的钱),不要妄想给自己充值,其他金额ID卡都是类似。
国内常用的ID卡,内部的芯片是EM公司生产的EM4100,美国常用的ID卡,内部芯片是HID公司生产的,也叫HID卡。普通的ID卡只能写入一次,我们用可重复写入的T5577 卡或其他卡做普通ID卡的复制卡。
另外一提,T5577的更特别之处在于,写入ID 号可以变身成为ID 卡,写入HID 号可以变身HID 卡。T5577 一共有8 个块,每个块只能存8 位数。
第0 块是用来设置卡片类型和调制方式的,决定了卡片是ID 卡还是HID卡。如果随意修改会导致读不到卡。第7 块最后两个数,在没有加密时是数据区,加密后,其数据就变成了密码。
注意,有时候写入ID 后的T5577 卡刷卡后没反应,再用设备如PM3 读取,发现读不到ID号。说明读卡机有防火墙,专门设计过,来屏蔽ID 复制卡。
这种情况需要换能过防火墙的ID复制卡,或对T5577进行加密(部分情况下能用)。另外,ID卡加密不让复制的,可以用PM3穷举试试。
所谓穷举,就是不断的去试密码,一般是从00000000到FFFFFFFF(从IC和ID卡读出的数据一般用十六进制表示),穷举的方法,运气好了快,运气不好那就穷举到电脑爆炸。
现在很少用加密的ID卡了,IC卡应用的更多,但也有一些酒店门禁,用的是加密的ID卡,除了穷举外,如果能接触到读卡机的话,可以嗅探密码,直接破解。
RFID:
射频识别,RFID(Radio Frequency Identification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据。
RFID是一个大类,其下包括我们常说的IC卡和ID卡等技术,还包括超市里的商品标签技术、高速公路上的ETC收费技术等。
从通信频率上看,RFID支持:
低频:主要是125KHz(例如常见的ID卡)
高频:主要是13.56MHz(例如常见的IC卡)
超高频:主要是960MHz(例如物流和停车管理)
微波:主要是2.45GHz(例如高速收费ETC)
低频不止125KHz这一个频率,仅因125KHz是应用最广泛的低频,所以拿125KHz举例代表,其他频段也是同样道理。基于频率高低,我们也把ID卡叫做低频卡,IC卡叫做高频卡。
低频主要用于短距离、低成本、少数据的应用中,如门禁。中高频用于需要传送额定数据的场景,如水卡;更高的频率则适合需要长读写距离和高读写速度的场景,如高速收费。
顺便一提,NFC是由RFID技术演变而来的技术体系,可以将其理解为RFID技术的一个子集,但NFC技术也有与RFID不同的地方。
NFC主要应用于近距离通信,工作频率是13.56MHz,和最常用的IC卡相同。支持NFC的手机可以通过相应软件读写IC卡,支持IC卡的机器也可以通过特定软件读写NFC标签。
做个不恰当的比喻,RFID好比是广东省,NFC就是深圳市,深圳(NFC)大多数时候要遵守广东(RFID)的规定,但是深圳(NFC)也可以干些广东省(RFID)规定以外的事,毕竟是个特区。
参考资料:
RFID破解三两事:http://www.freebuf.com/articles/wireless/8792.html
关于“RFID破解两三事”的一些事:http://www.freebuf.com/articles/wireless/8858.html
“RFID 破解三两事”讨论总结:http://www.freebuf.com/articles/wireless/8899.html
傻傻分不清的IC和ID卡:https://blog.csdn.net/chongzi865458/article/details/45048363
第二部分:IC卡的数据结构
之前讲IC卡和ID卡的基本概念时,提到过扇区、UID号等概念,初次接触可能会一头雾水,下面我们就这些概念,做一个不够详细,但应该够用的探究。
需要注意,以下所讲数据结构,特指M1 S50及其兼容卡的数据构成,当然,CPU模拟卡的模拟部分也是此类结构。为了方便起见,以后直接称M1卡。
M1卡容量为1Kbyte,共16个扇区(Sector 0-15),每个扇区有4个区块(Block 0-3),所以共有64块数据,按块号编址为0~63。
第0扇区的第0区块(即绝对地址0块)存放的内容叫做内码号,常称UID号,可以认为是一张卡的身份证号,如上所讲,很多IC卡门禁就是通过验证IC卡的UID号是否在数据库中,决定是否开门。
每张卡的UID号理论上已经固化,一旦写入卡内,便无法更改,但是中国人做出了UID卡(特殊的M1卡),实现了对UID号的重复改写,震撼海外,被赞誉为来自中国的魔术卡。
第一扇区的块1、块2为数据块,其他各扇区的块0、块1、块2为数据块(扇区的前三个区块),数据块用于存储数据;每个扇区的块3都是控制块(扇区的第四个区块)。
控制块内存放密码A、存取控制码、密码B。也就是说,每个扇区都有独立的一组密码及访问控制码。如果没有密码,就不可以读取、修改其中的数据。(说法不严谨)
实际上有了密码也未必可以读写各个扇区,控制码决定了你拥有密码后能做什么,是只能读,还是能读又能写。庆幸的是,一般都用默认的控制码,允许读和写,因此我们也常说有了密码就可以读写数据。
[图片上传中...(20180729221618.png-4a1f00-1532879516640-0)]
另外,上面提到过的UID卡是个特例,它不仅可以重复写入UID号,而且可以无视各个扇区的密码和控制码,直接读出卡内数据或者写入新的数据。
M1卡的每个扇区都是加密的,但我们认为用了默认密码加密的扇区不算加密,这种卡叫做非全加密卡,或者部分加密卡。所有扇区都用非默认密码加密的,称为全加密卡。
对于部分加密卡,手机NFC无法破解,但是其他硬件设备大多可破解。有人说一卡一密的M1卡能防止破解,其实不然,这样的卡只是说每张卡的密码不同,每次只能破解一张卡。
全加密卡用ACR122或PN532破解起来比较麻烦,只能通过MFCUK用欺骗诈取的方法试试,耗时长,成功率低。用PM3或变色龙或其他侦测卡可破大部分全加密卡。
至于全加密的CPU模拟卡(SAK=20),目前无解,非全加密的模拟卡倒是可以用PM3解决,当然,也有所谓的改版ACR122号称绝对可解,真相不明。
上面/下面那张图,是通过安卓软件MCT读取的空白IC卡的数据。我们发现,所有的数据块内容都是0,说明还没有写入相关数据,密码A和密码B都是12个F,这是M1白卡出厂常用的默认密码。
MCT软件里有存储的默认密码,所以能读出数据,如果不是默认密码,则MCT无法读出数据,只能先通过其他设备破解密码,把得到的密码给MCT,MCT才能读写数据。
想单纯通过手机NFC破解IC卡的,目前不可以,至于想通过手机跑字典,穷举破解密码的,理论上可行,实际上很难做到,毕竟现在都不用简单密码了。
当然,有人为ACR122、PN532、PM3等破解设备开发了安卓端,通过手机加设备的形式倒是可以破解密码,但是并不好用,操作起来麻烦,易报错。
第三部分:M1卡的破解原理:
1)暴力穷举:(Exhaustive Attack method)
暴力穷举是最简单粗暴、最不需要技术含量的方法,但是密码一旦过于复杂,就很难穷举出来,实在破不了的时候可以试试此法,不管是ACR122还是PM3,都有相应的暴力穷举软件。
2)验证漏洞(Nested authentication):
如果知道一个扇区的密码,那么可以通过验证漏洞知道其他扇区的密码,所谓知道密码,指某扇区用的是默认密码。此法对所有扇区都加密的卡无效,因为至少要知道一个密码才能用此法。
3)欺诈骗取(Darkside):
如果手里只有ACR122或PN532之类的硬件,不支持全加密卡的侦测监听,则可以尝试通过欺诈骗取的方式来获得某个扇区的密码,然后再通过验证漏洞破解所有密码。但是,用此法的成功率非常低。
4)侦测监听(Detection):
通过变色龙去侦测嗅探,即把变色龙当成IC卡去刷,变色龙可以捕捉通信,获得某个扇区的密码。PM3或者是国产的超级卡也可以做侦测,但是效果不如变色龙。此法破解全加密卡的成功率最高。
验证漏洞原理:
这种攻击是在已知16个扇区任意一个扇区的密码之后,获得其他扇区密码的方法。前面说过16个扇区是独立的,那为什么通过某个扇区还能获取到其他扇区的密码?这与IC卡和读卡器之间的通讯机制有关。
第一次验证时,读卡器首先验证0扇区的密码,最初,卡片给读卡器发送一个明文随机数n1。读卡器内部用加密算法加密n1,产生一个密文随机数n2发送给卡片,卡片用自己的密码解密n2,如果解密出来的数和之前发送给读卡器的随机数n1相同,则通过验证,之后的通讯都会加密传输。
第一次的传输为明文,之后的都为加密传输。并且在验证的过程中,是卡片先主动发送随机数给读卡器。如果读卡器用错误的密码加密发送给卡片,卡片解密错误,则验证中断,也就没有之后的加密传输。
所以,我们至少需要知道一个扇区的密码,利用这个扇区去和读卡器验证。之后其他扇区的通讯密文包含了这个扇区的密码信息,再通过验证漏洞解出密文中的密码,进而得到所有扇区的密码。
欺诈骗取原理:
如果卡片不存在默认密码,则验证漏洞攻击行不通。前面说过,破解的关键是让卡片发送加密数据,再通过算法解出里面所带的其他扇区的密码。
经过研究人员大量的测试后,发现卡片算法存在漏洞,当读卡器发出的密文中某8bit数据正确时,卡片就会回复一个4bit的密文,而这个密文就可能包含密码的信息,再通过解密算法即可解出密码。
Mfcuk就是基于欺骗诈取Darkside原理攻击全加密卡的程序。Mfcuk是在linux平台下的程序,Windows平台下没有原生支持,有的都是个人编译的bat或者exe程序,在windows系统上使用兼容性较差。
侦测监听原理:
验证漏洞或欺骗诈取都是通过读卡器,把IC卡中的密码破解出来,原理上都是要让IC卡发送出来一段密文才可以,侦测监听则不然。
那如果读卡器本身就保存有密码,卡也是授权的卡,也就是说卡和读卡器都是正确授权的,那么他们之间的加密数据交换就可以直接监听获得。
我也不清楚原理是什么,但有一点确定,侦测和监听其实是两回事,侦测是直接拿变色龙或PM3去刷机器,不需要原卡,嗅探需要拿原卡和PM3一起刷,让PM3监听数据并分析出密码。
第四部分:相关硬件推荐
ACR122U-A9:
大部分人接触的第一台破解设备,能读能写,速度不错,一代经典。淘宝上假货很多,仿品也不少,之前价格180,现在140以内,俗称122、龙杰、A9。
122可以用Mfcuk软件尝试破解全加密卡,但成功率低。122可以对付大多数部分加密卡,但是对某些国产加密卡无力。有人卖122专用软件说可支持SAK=28的模拟卡,也有人说改动了其硬件,可以让原先的软件支持模拟卡,真相不明。
虽然我有ACR122,用起来也不错,但是不推荐,因为后来出的PN532在功能上完全取代了122,兼容性更好,成品或者DIY的价格在40以内,价格漂亮。也有人说,ACR122用的芯片就是阉割版的PN532。
PN523:
PN532是一个开发板,可以认为是没有外壳,没有USB接口的ACR122,两者功能几乎相同。532是串口,但是可以购买TTL串口转USB线,或者直接购买PN532成品。
有些商家给PN532定做了个外壳卖99,非常不值,请务必擦亮眼睛,40以内,完全可以购入整套的PN532。PN532和ACR122能通用很多软件,甚至有人为其开发了专用软件,不用担心没有软件支持。
PM3:
全称Proxmark 3,是由 Jonathan Westhues(JW) 在其硕士毕业论文中设计的开源硬件,其主要用于对IC、ID的嗅探、破密、读取、复制操作,可根据需要刷对应版本的固件。
JW本人并不开发硬件,国内外均有按其技术生产PM3的厂家,不存在真正的官方版。淘宝所谓的官方版,其实是中国大神菜鸟不撸与人合伙做的,质量最佳。除此之外,国内还有非常多的抄板,质量参差不齐,还有些商家挂羊头卖狗肉。
菜鸟不撸最开始做的是PM3 RDV1.0,然后是PM3 RDV2.0,这两个版本太贵,在中国卖不动,只对国外销售。然后菜鸟不撸针对中国市场,开发了PM3 RDV3.0 Easy版本,删减了部分内容,也称阉割版。
现在菜鸟不撸又开发了PM3 RDV 4.0,当前正在国外众筹出售(1860元),不打算往中国销售,RDV4.0是将变色龙和PM3结合的版本,让PM3的嗅探功能更加完善。
除此之外,菜鸟不撸还出了一款Easy 3.0改版,可称作2018版PM3(领美店),也可称作PM3 Easy Second Edition(晓天店),应该算当前质量和功能最好的PM3 Easy版,但是价格偏贵,更适合情怀党。
国内抄版大多是仿的菜鸟不撸的Easy 3.0,抄板有自己改过电路,FPGA都不一样,往往还搞出来两个USB口,并且加大内存为512KB。虽然抄板用料不好,但是价格和操作都更胜一筹。
官版(指菜鸟版)PM3的重要元器件 都用激光把标识打掉了,抄板的往往还有标识,且多用二手零件或是劣质型号,好多抄板信号不好,解卡偶尔死机,以前刷冰人固件有概率成砖头。
买官版PM3 Easy可以去淘宝店:沈阳智能卡科技,店主晓天,专卖各种蓝牙、IC破解相关,是菜鸟不撸最大的代理。不过最推荐的淘宝店还是:西北领美网络科技,正版抄板标明了卖,价格最便宜,还可讲价,店主很好,耐心解答问题。
题外话:Easy版毕竟是针对中国市场的阉割版,淘宝店:飞思电子科技厂家批发,自产自销RDV2.0版本,功能更多。当然,这实际上是菜鸟不撸RDV2.0的抄板。如果有钱玩,还是直接海外代购最新的RDV 4.0吧。
总结一下,PM3是开源硬件,不存在正版,国内外都是抄板,只不过菜鸟不撸的抄板最好,畅销国内外,又因菜鸟和国外开源卖家有亲密接触(似乎PM3开源作者授权过某个国外厂家生产),所以认为菜鸟版就是官方版/正版。
晓天是菜鸟最大的代理,所以官方版=正版=晓天版。紧随其后的是野马版(上面有一个没腿的马),但我们习惯性叫做野驴版,野马版曾经非常流行,但如今很难找到了,故不再介绍。
淘宝店:苏州龙达科技出售所谓的PM3 V4.0硬件,其实是基于EASY3.0做的抄版,但是仿照了正版RDV 4.0的做法,将变色龙和PM3结合到了一起,这家店很恶心的一点是4.0硬件捆绑4.0软件一起出售。
常见产品简介:
①PM3 Easy原版,350元。256KB内存,属于国内做工最好的,单USB口,也可以配合双口USB线插充电宝进行离线嗅探,可以任意刷最新固件,兼容性好,不会轻易变砖,来源于菜鸟不撸。
②PM3 Easy改版,450元。256KB内存,自带锂电池和PVC外壳,做工完美,用料上乘,固化了厂家的独特固件,支持Hardnested命令,可以破解新中新等难破解的国产卡,来源于菜鸟不撸。
③512KB内存双USB口抄板(有手持卡图案),250元。存储空间大,速度快,多了个USB口,方便插充电宝进行离线嗅探,而且集成了最新版固件,配合其免费软件也可以读取部分cpu模拟卡,来源未知。
建议走闲鱼买Easy 3.0官版,便宜的220左右就能入手。如果打算买512内存的抄板,可以关注一下组团活动,188元即可入手,不过真假不知,详情参见:https://item.taobao.com/item.htm?spm=a230r.1.14.13.8bb927a0831Ok5&id=572957055457&ns=1&abbucket=12#detail
额外介绍一下Easy3改版:
1.独家定制冰人固件(支持hardnested命令解决没有相套认证漏洞的卡),支持官方2.0(最稳定)+848离线固件(离线嗅探强)+最新版冰人固件。
2.定制冰人固件支持Win7 X64以及Win10 X64,解密速度优于官方新版固件,稳定性优于新版冰人固件。
3.机器内置440毫安锂电,在脱机嗅探过程中提供机器所需用电,免去充电宝与双头线,有外壳,附带开关以及电量指示灯,方便观察和携带。
关于软件方面:
官方Easy版本自带2.0固件(官方版),最稳定,有很多对应的GUI软件,但是不支持CPU模拟卡。可以自行刷3.0固件(冰人版),固件是免费的,通过命令行的方式能支持CPU模拟卡:jcop31卡或 jcop41卡,以及用Hardnested方式爆破密码。
如果不想用命令行,可以买那所谓的收费的4.0软件,最新版本是4.1.2,这软件本质上就是为3.0固件做了个操作界面GUI,大部分功能用命令行也能实现。当然,4.0软件也并非一家在卖,很多公司或个人开发者都在搞,界面和功能差异不大。
付费版4.0软件,领美店卖的最低,讲价可150元。支持一键自动解析CPU模拟卡jcop31 or jcop41。支持Hardnested命令,爆破国产卡密码迅速,支持自定义添加字典爆破,提高爆破效率。增加5577卡暴力破解功能。新增一键全加密、初始化卡片等功能。
现在不管是什么硬件版本,基本可以实现固件通刷,操作软件也都基本通用,仔细找找说不定能找到破解的4.0软件。当然,也有厂家为自己的抄板特意定制了固件,刷前必须确定好,负责容易刷成砖。
另外一提,冰人固件并非只有命令行工具和付费的4.0 GUI软件,也有免费的4.0试用版,而且不止一种,虽然无法使用4.0特有的一些功能,但至少可以实现2.0版GUI所具有的功能。
一些PM3硬件:
西北领美网络科技:https://item.taobao.com/item.htm?sPM=a1z0d.6639537.1997196601.36.58bb7484RGeNmk&id=567586892788
晓天的店:https://item.taobao.com/item.htm?sPM=a1z0d.6639537.1997196601.4.58bb7484RGeNmk&id=523165920091
飞思电子科技厂家:https://item.taobao.com/item.htm?sPM=a1z0d.6639537.1997196601.47.58bb7484RGeNmk&id=572970780261
龙达:https://item.taobao.com/item.htm?sPM=a230r.1.14.1.63c61b11XMg48b&id=560978908550&ns=1&abbucket=12#detail
一些4.0软件:
西北领美网络科技:https://shop59055672.taobao.com
沈阳智能卡科技:
https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-15529248507.17.2ead3755gNRzi3&id=568887620581
一些硬件截图:
一些软件截图:
变色龙侦测卡:
国外有REV E版和REV G版,国内卖的都是抄板,抄板有两种,淘宝领美网络科技店里都有出售,一个贵点,250左右(菜鸟不撸做的版本),一个便宜,200拿下。两者在功能上没有区别,用料上分优劣。
便宜的抄板:非磨砂,没蜥蜴图片(其实是变色龙,习惯叫蜥蜴了),与贵的比按钮形状不同但是布局和功能相同。另外,变色龙本来就没外壳跟贴膜,都是国内厂家做的。
变色龙的主要作用是破解全加密卡,拿它去刷机器,可以嗅探出某个扇区的密码,然后利用这个已知密码,让ACR122等硬件通过卡匠M1密码分析软件或Mfoc-Mfcuk-GUI破解出所有密码,或者配合PM3的知一求全功能使用。
特别说明下, 用变色龙去侦探,大部分需要先设置好其UID号,例如要去破全加密的水卡,则需要先把变色龙的UID号改成自己水卡的UID号,否则侦测不出来,有的还要侦测多遍才能出结果。
另外一个作用是模拟IC卡,变色龙支持同时保存8张卡的信息,相当于一张变色龙卡当八张卡用,放在钱包里更方便。不过变色龙加壳子有点厚,不加壳子又容易折坏,不如多携带几张卡。
官方称变色龙没有使用UID那种无视密码读写数据的后台漏洞指令,所以可以模拟CUID卡,过读头的防火墙,就像一张真的普通M1卡。但个人测试,变色龙大多是情况下和UID一样,遇到防UID复制卡的机器,前几次可能成功,后面很可能被改写数据。
个别淘宝卖家和UP主无序墒增,还宣称变色龙可以侦测(不需要原卡,效果好),可以嗅探(需要原卡,效果差),但我并没发现怎么配合原卡去嗅探,用原卡加变色龙去侦测的话,根本得不到密码。
变色龙的功能PM3也有,但是PM3在破全加密上不如变色龙强,而且PM3体积太大,有些刷卡机插不进去,变色龙就是一张比IC卡还小的卡。PM3破解全加密的优势在于可以只针对卡操作,不用去刷机器侦测,这是变色龙难以企及的。
PM3虽然也能嗅探,但是要连接笔记本去刷卡,不是很方便。当然,也可以刷支持离线嗅探的固件,并用一分二的USB口,通过充电宝进行供电去嗅探(官方有卖配套电池,50左右,神坑,不如充电宝省事)
另外,菜鸟不撸已经宣布放弃变色龙,将其开源并放弃更新了,最新的固件版本停留在20160729。变色龙模拟卡功能不稳定,可能无法过防火墙,但这并不妨碍其成为一代经典产品。
使用说明:
通过按钮可以切换模拟的卡片,刷卡时不需要按电源按钮开机,会自动感应。要切换卡片时,需要按住电源按钮不松手,切换完可以松开。
所谓模拟,需要加载卡片数据,另外也要改一下UID号(有时候不改也可以,最好是改了),也不要忘了更改该TAG的模式,有模拟1K模式、模拟4K模式、侦测模式等。
变色龙不是万能的,并非能侦测出所有全加密卡的密码,模拟的时候也不是万能的,遇到防UID的读头,同样失效,店家声称可以当CUID用,实际测试不行。
注意事项:
1.电池安装:安装电池正极(有字一面)向上,安装电池时不要触碰到按钮。
2.不要快速切卡:正常使用方法,按住电源键点按切换按钮灯熄灭再按切换。
3.若不能切卡:拿下电池,断电五分钟后再通电尝试,实在不行就去刷固件。
4.死机解决:设备连接电脑,点击固件升级模式,点刷入目录固件,应该可救。
设备对比:
选择建议:
PS:不管是什么设备、什么卡片、什么软件,在完成一次操作后(例如读卡、解密、写入),必须重新放入或者用软件的重新连接功能,才可以继续操作,否则会报错。
第五部分:相关卡片介绍
M1 S50 :
是国内最常用的卡,也就是我们俗称的IC卡/M1卡。由飞利浦公司旗下恩智浦(NXP)开发,国产也有兼容卡,例如复旦卡,无法通过卡片信息判断是不是国产卡。SAK=8的时候,基本就是这种卡。
想要复制或者修改M1卡,需要知道每个扇区的密码,也就是说,要对M1写入数据,需要先加载密码,然后格式化卡,恢复初始密码,否则无法修改扇区,这点必须注意。当然,也可以针对个别扇区改写,只需知道该扇区密码即可。
M1 UID :
M1 UID 卡是国人针对M1 S50 卡特制的变种卡,用起来和M1 S50 一样,特殊之处在于0扇区0区块的数据(也就是UID号)可以随意修改,UID 卡因此得名。UID卡是最常用的复制卡,可以完全克隆M1 S50 卡,UID 号也一样。
UID 卡是靠特殊指令进入工厂模式修改数据,因此可以直接对全卡任何数据进行编辑,即不需要密码就可读写卡,同时不怕写坏卡,即使写错0 扇区,写坏控制位,也可以随时修复回来。俗称走后门的办法。
UID卡的缺点是,现在新的读卡系统,通过检测卡片对特殊指令的回应,可以检测出UID 卡,因此可以拒绝UID 卡的访问,或者向UID卡里写入错误的数据,来达到屏蔽UID复制卡的功能。
M1 FUID:
FUID 卡是国人针对UID 卡做的优化,如上提到的,有些读卡机器能检测出UID 卡并屏蔽之。FUID 卡是没有后门的、UID号可修改的卡,但它的UID号一生只能修改一次,除此之外,和普通M1卡完全一样,所以难以被检测,实现防屏蔽。
想要修改FUID卡,需要专用的软件IC Reader,同时也需要知道每个扇区的密码,就是说,要对FUID写入数据,需要用专业软件加载密码(卡内全部数据即可)再写入新的数据,否则无法修改扇区,这和普通M1卡是一样的。
M1 CUID:
CUID 卡则是针对FUID 卡做的优化,如上提到,FUID卡只能写入一次UID号,成本太高,CUID则可以重复写入,成本低。CUID也不走后门,使用常规密码验证的方式来写各区块。但要注意,如果不小心写错了UID 号的校验位(在第一扇区),导致无法读卡,则无法修复,只能报废。
在几种对付防复制的卡片中,CUID卡最便宜,同时可以重复读写,故此深受欢迎,但其过防火墙的能力没有FUID强。同样,CUID也需要专用的软件UIDCard进行写入,也需要加载密码。
M1 其他特殊卡:
淘宝上还有SUID、KUID,甚至还出现了GUID等等,似乎是CUID的进化版,也似乎就只是CUID换个名字,真相不明,总之,复制卡载体首选IC,看看不复制UID号的前提下能否使用,不行的话用UID卡,再不行的话用CUID卡,还不行的话试试FUID卡。
关于ID卡分类:
EM4100:简称ID 卡,出厂时固化ID号,只能读不能写,低成本门禁卡,用的都是这个东西。国产的TK4100是其兼容卡,功能相同。
T5577:简称可修改ID 卡, 可用来克隆ID 卡,出厂为空卡,内有扇区也可存数据,个别扇区可设置密码。可理解为ID空白卡,最常用的ID卡复制体。
HID Prox II:简称HID卡,美国常用的低频卡,可擦写,不与其他卡通用,厚卡,常见于签到卡,不常见,所以不再讨论。
ID空白卡知识:
型号:T5577 E4305 E8265可重复写,可设置密码,可穿一部分防火墙,用于复制ID(125k,250k,375k,500k)SID/GID/HID/CID/BID
型号:C5200 C6200 可重复写,可设置密码,可穿一部分防火墙,用于复制ID(125k,250k,375k,500k)SID/GID/HID/CID/BID
型号:F8268可重复写,可设置密码,可穿全部防火墙,用于复制ID(125k,250k,375k,500k)
以上为主要ID空白卡型号,另外有些人用上面型号命名其它型号,功能均差不多,但是当前可以穿全部ID防火墙的只有F8268一种,推荐使用。因为我没有破解ID卡的设备,ID卡现在用的也不多,这里就不再赘述。
IC卡或ID卡的外观:
卡片(印刷 定制卡贴 不干胶加透明该果冻贴)
异形卡(打孔)
手机贴 可定制 氧化铁屏蔽手机干扰
钥匙扣 可刻字 不同颜色 性能差
裸线圈和芯片 线圈一般叫做天线
滴胶卡
滴胶模型 如指环
极控者卖的美甲
Nfc手环
洗澡带的开锁的手表
线圈大小的频率要和原机器吻合,自己DIY卡需要注意线圈匝数,一个经验是,线圈长度要相同。
第六部分:一些问题解答
判断是哪种IC卡:
①安卓MCT或者电脑PM3软件或者支持其他设备的Mfoc-Mfcuk-GUI等软件都可以读取卡片信息,会返回SAK的值。MCT显示红色字,表示不支持,那就不是IC卡,再通过SAK值,可大致判断是纯CPU卡还是模拟卡。
②CPU卡:M1卡服务程序或其他破解密码的程序会显示是不支持的卡类型。
③CPU模拟卡:ACR122很快破出密码,但是除了密码外,其他数据(包括0区块和部分控制位)都是0。
注意:有些制卡厂家乱写SAK的值,而且读卡设备还判断SAK的,你直接复制的卡还不能用,必须要那种可以改SAK的卡才行
判断IC卡是全加密还是部分加密:
①破解密码的程序会有类似提示:没有找到用默认密码加密的扇区(如M1服务程序)
②部分不完善的破解程序不会提示,但是会一直循环破解,最终无法分析密码。
无法破解出密码的几种情况:
①目标卡是UID卡,UID是所有扇区全开卡,所谓密码,纯粹摆设,可以直接写入,无需密码。
②目标卡是全加密卡,设备不支持,如ACR122/PN532等,需要用PM3或者侦测卡来破解。
③PM3只能破解大部分全加密卡,变色龙侦测卡支持绝大部分全加密,但都不是100%能搞定。
④可能是这个解密软件暂时抽风了,换个软件试试,再不行重启,这种情况还是挺常见的。
复制卡失败的可能原因:
①安卓MCT读出的扇区显示红字,提示无密码发现(或死扇区)?
解答:MCT不支持破解密码,可先用电脑获取密码,把密码给MCT后再写入复制。
②显示不支持的卡类型,无法进行下一步操作?
解答:ID卡需要用对应设备,CPU卡不能破,模拟卡只能破解一小部分。
③用UID卡复制成功,但刷卡没反应?
解答:读卡机有防火墙,先用CUID复制刷卡试试,不行的话再试UFUID或者FUID。
④各种卡也用了,结果还是失败?
解答:可能是IC和ID在一起的双频卡,既需要复制IC,也需要复制ID,CUID不能用的时候,就要先排除这种情况,再换其他对付防复制的卡。
⑤复制卡之后,原卡不能用了?
解答:应该存在动态滚码/滚动码机制,需要分析数据,大部分可以搞,但是很难分析。
⑥假设A卡和B卡是同一个系统发出的普通卡,用A卡的密码却不能改写B卡?
解答:可能遇到了一卡一密,即不同的卡,扇区密码不同,需要每张卡都读取密码才行。
滚动码的解决原理:
滚动码机制多出现在电梯控制系统,理论上都是可以解决的,分析出卡内数据滚动的规律后,可以猜想出下一次刷卡时候的数据,把这个数据写到复制卡里即可。
假设复制卡是子卡,原卡是母卡,如果子母卡是同样的数据,肯定过不了滚码机制,原卡肯定不能用。但是我们可以换一个思路:通过研究已有的卡,造出来另一张系统认可的卡。
子卡里改掉一些数据,梯控就认为是两张不同的卡。电梯卡的UID号一般不能伪造,因为新的卡号没有授权是不能被识别的。滚动数据基本只和日期或刷卡次数相连,与楼层相连的不多。
另外,关于滚动码的梯控卡,QQ909019892有很多通卡,号称只要钱到位,梯控能干稀碎。同时还有破解电梯卡的神器:锤子解密器,辅助分析。
DUMP文件大小问题:
DUMP是卡内数据文件的格式,因此把卡片数据称为DUMP文件。可以看到生成的DUMP文件为1KB大小(在windows里可能显示大小是1KB,而占用空间是4KB),但是具体写入M1卡的时候是需要写入4KB大小的dump文件的。
因为这些软件本来是基于linux开发的,移植到win平台上只能生成1KB的dump文件,我们可以使用修复工具:fixdump将1KB文件修复为4KB,也可以使用NFCGUI-PRO,这个软件自带的修复功能将修复其为4KB文件。
这个问题一般可以忽略,因为写入软件一般都会自动转换大小。
关于CPU卡的一些破解资料:
简单来说就是用PRMXARM3,八位物理号使用八位异或和得出九、十效验位,卡号+效验共十位,结尾填上0804(M1S50卡特征)。可以参考一下M1卡MIFARE Classic S50技术详解
http://www.freebuf.com/articles/wireless/157267.htm
http://www.freebuf.com/articles/wireless/8792.html
https://www.cnblogs.com/k1two2/p/5751589.html
http://www.freebuf.com/geek/8545.html
关于控制位简单介绍:
实际上并不是keyA和keyB负责控制对扇区的读写。密码就是Acess的条件,这个ACESS的权限由控制字节限制,控制字节会限制密码的权限,没有控制字节,密码就没用,不过大部分卡的控制字节都是默认的允许读写。
关于破解的思路
几种破解情景:
1)读卡器把IC卡当成ID卡一样只识别UID正确即可,不管IC卡内其他数据,这时候,只需要把卡的UID读出来,并使用一个UID可写的空白卡,把UID写入即可,这是最简单的一种情景,不管是普通M1卡还是CPU卡,UID号都可以轻松复制。
2)读卡器首先识别UID是否正确,然后再识别其他扇区的数据,通过keyA或者keyB对数据进行读写操作。这样需要把整张卡的数据都复制出来到支持UID改写的卡中,或者不做复制卡,直接修改原卡的数据。
3)读卡器不识别UID,只管对扇区的密码进行验证,如果验证成功则允许对卡内数据操作等。(如某“XX快捷酒店”的门卡,就不管UID,只要扇区密码正确即可),那我们可以通过扇区密码更改门卡中的数据,如房号,住宿的时间等,也可以通过一个普通的IC卡(UID不能更改)复制一张门卡(跟原卡UID不同),也可以通过一个UID可写的卡,复制一张跟原卡完全相同的卡(跟原卡UID也相同)。
4) 读卡器只识别有数据的分区,不管其他没数据的分区。这种情景下,容易做多合一卡,即把多张卡的数据放到一张卡里,互不冲突,大前提是,这些卡的数据都不能在相同的扇区里。
一些社工的方法:
如果原卡怎么都破解不了,那可以拿一张UID卡(最好做成滴胶卡或手机贴形式) ,要求发卡方把数据写到这张卡上(理由是滴胶卡或手机贴便携),写入后,用相关设备即读出来卡中的数据。
此法利用了UID卡无需密码即可读取写入的特性,在某些情景下,可以操作试试,另外注意,发卡方写入数据后,最好先不要去刷卡,要先读取数据,因为可能存在滚码机制或防火墙。
暂时写到这里,然后忘掉这些事情,好好投入考研中。
2018.07.28 20:33