RFID Test(一)

序言:RFID在应用范围很广,最常见的就是NXP公司的Mifare系列。国内IC卡主要是M1(又名S50),M4(多为地铁卡)。却别仅为其中的EEPROM大小。

基础知识我就不介绍了,请自行查阅资料。之前接触过不少M1类卡跑key与其中加的密算法。最常用的工具是ACR122u与Proxmark3。本文目前只简介UID的模拟方法。

由于现在学校的新饭/水卡中只存放了UID,其中不存放数据,只需模拟UID即可用手机/UID卡模拟。(后来遇到了一些问题)

先介绍手机使用的场景,手机中的NFC分为博通和NXP两种芯片。芯片的不同不影响读UID的结果但影响读取卡的扇区。

第一步,读取UID

先读取UID


卡的id为:D2:69:76:5B

PS:这个Nexus的测试结果,而米3与此不同,先要改成下一步中的原配置项的默认数值方可进行如下操作。

第二部,修改UID(原理是切UICC)

到手机的 /etc/ 目录找一个文件名为libnfc-brcm-20791b05.conf,默认情况下,文件中NFA_DM_START_UP_CFG 的配置项是这样的值:

{45:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8}

2、通过修改这个值就可以改变id。把该文件下载到电脑上,先在最后面增加一个0×33作为标志位,接着接上要指定的id长度,在当前的情况下就是0×04,最后在后面接上要制定的id:“0xD2,0×69,0×76,0x5B”,接着改变最首的数字,加上我们总共增加的字符串长度,这里我们需要加上6,所以最后配置项变成:

{4B:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8:33:04:D2:69:76:5B}

3、采用adb的方式覆盖系统中原来的文件,然后重启

adb root
adb remount
adb push libnfc-brcm-20791b05.conf /etc/
adb reboot

重启之后我们发现,UID已经被改成了我们想要的。

 

http://www.freebuf.com/articles/wireless/8858.html

引用自Freebuf,操作简单我就不重复截图了。修改了一些文中的纰漏(比如必须亮屏使用)

PS:小米3使用时必须先把NFA_DM_START_UP_CFG的值改为第二步中的初始值再进行上述操作,小米加了自己的私货。

去试了一下

img_20161002_115042 img_20161002_123118_hdr

结果洗澡与POS的所有操作都行(POS机和门禁一样只验证UID),食堂刷卡读不出。当时以为卡机还要额外校验厂商数据。
然后我便上了ACR122u与UID卡
tb2byslaf95v1bjy0fexxxyfpxa_2963866796
照片懒得拍了,淘宝找的图
img_20161003_201910_hht img_20161002_234101
附上两张拆解图,用的是PN5321芯片,这东西只能跑跑嵌套漏洞,对全加密的卡一筹莫展。而且acr122在pn532芯片前端还有其他逻辑器件,经常性的会产生通信错误,尤其是在使用mfcuk对付全加密卡的时候100%会报错。当然这里读写UID/数据是没有问题的。
2014-10-10_223119
网上找的图,操作一样。我懒得截了。
前四位字节是UID,跟一位校验,后面都是厂商数据
搞了张UID卡改了控制字节(最后一个扇区的控制字节不一致,不知为何)并全部dump进去,本以为结束了。没想到情况依旧。全数据都一致,真的好奇怪啊。
2016年10月3日20:56:31
突然发现这张卡ASK应答字节是28而非08,和之前见过的CPU卡模拟M1的ASK一致,这就非常有趣了。毕竟ID卡的复制本来就太容易,厂商也不是傻逼。
还有一种可能是国产兼容卡兼容但和14443A协议并不一致,掺杂了自己的私货。不过可能性不大。
这个问题有时间再研究,很久不碰RFID了,想不到我最后竟栽在一张不存数据的国产模拟卡上,逆水行舟,不进则退,古人诚不我欺。
(未完待续)
 2016年10月8日17:39:08
确认使用CPU卡,JOCP41模拟的M1。

“RFID Test(一)”的2个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注