一次蜿蜒曲折的RFID破解之路

前言

早一段时间看到一篇看雪论坛关于逻辑嗅探破解接触式IC卡口令的文章,激起鄙人对rfid的兴趣。遂准备拿学校的卡一展身手。

0×00 前期准备

经过初步了解,学校的rfid卡片分为两种。校园卡采用MIFARE Classic 1K,澡卡采用Atmel T5557。之前看过无数M卡的破解文章,于是决定跳过此卡(后通过proxmark3成功破解)转向更为小众更具挑战的T5557卡。

通过阅读T5557的文档,淘宝了如下工具:

·T5557读卡模块(加USB转TTL)
·T5557白卡
·USB 逻辑分析仪
·杜邦线若干

0×01 制作T5557卡读写器

本来准备淘宝一个现成的读卡器的,发现价格参差不齐。知网看了几篇T5557读写器设计,大概了解到读写器原理。

读写器 = 读卡模块 + usb转TTL(与电脑通讯模块)

0×02 T5557科普

特征:

·非接触方式的读/写数据传输
·从100 KHz到150KHz的无线电载波频率
·与e5550产品兼容并扩展的应用模式
·小容量, 其结构与国际标准 ISO/IEC11784/785相容
·在芯片上掩模有75pF的谐振电容
·包括32bit密码区在内的7x32bit的E2PROM存储空间
·单独开设有64 bit存储空间作为厂商可追溯的数据区
·32-bit配置寄存器在E2PROM中可作如下设置:
·数据速率:RF/2 到RF/128或e5550的固定值(通常使用在RF/32或RF/64)
·调制/编译码:FSK、PSK、曼彻斯特、双相、NRZ(典型为:曼彻斯特)
·其他的选项:密码模式、最大区块特性、按请求回答(AOR)模式(默认值:PASS=0、MAXB=7、AOR=0);反向数据输出、直接访问模式、序列终结符、写保护(每一块完全锁位)、OTP功能等。
·存储体结构:存储体是330bit的E2PROM,安排在0和1页的10个块中,每个块(包含被同时规划的bit锁块位)有33 bit。第0页有8个存储块,其中的块0包含配置/控制数据,在正常读操作期间是不被传输的。块7可以被用户当作写保护密码使用,与最大区块的显示值配合,可设置某些块值或第7块密码值不可见,只有知道密码的合法用户才能访问卡片中的数据块。每块存储体的位首,即第0bit,是该块不可查看但可一次性改写的锁块控制位(即OTP特性。为安全起见,一应提供改写各块第0位的OTP功能)。第1页的块1和块2包含可追溯数据,并且被Atmel在制造测试期间进行其数据规划并且锁定。

还有些特征在此不再赘述,具体的在参考给出的链接文档中。

0×03 首战告捷

安装好USB转TTL的驱动,用卖家给的技术文档通过串口助手发送相关指令。后来懒得看指令直接问卖家要了个他写软件(存在卡片与读卡器匹配问题,建议在充分阅读T5557技术文档的情况下操作!)。

撒花O(∩_∩)O哈哈~

通过上图可以初步断定:

1.卡片存在密码,只能进行块读。
2.块二和块四前面2个字节为卡片金额,即为¥8.01。

然后拿张卖家送的白卡把数据一套,抱着试一试的心态拿去澡堂洗澡去了,居然能够使用。这一点我思考了好久,可能是白卡块0区设置的是不需要密码读写,然后澡卡机器采用的是密码写 70 bit (PWD=1),从而忽略了与密码匹配的过程。

0×04 再次深入!

其实到0×03已经达到目的了,但鄙人不是搞黑产的鄙人是Geek啊,本着Geek精神决定再次深入,试着破解相关数据关联。

冷静的分析了下,想出了三个方案:

·猜!脑洞大开的猜!
·通过充值软件,分析出数据联系。(希望不大)
·逻辑分析澡卡机器,得到数据关系。

0×05 脑洞大开的猜!

开始几天死了好多脑细胞,一直在想金额后面2个字节是干啥的。可能是校验码但一直想不到是什么校验。

后来浏览官网发现这样一句话:

数据传输过程中CRC校验

刷卡记录

1st       2nd
00024xxx  00024xxx   可能为学号
1111F16C  0810FB30   金额及校验码
01440000  01440000   卡的类型(用户卡、管理卡巴拉巴拉)
1111F16C  0810FB30   同上
00003D3O  00003D3O   校验数据
00003D3O  00003D3O   同上

块1-6通过CRC校验得到相同的校验码,所以 CRC(块二/快四) == CRC(块五/六)

本来准备通过crc校验码逆向的,后来看看又是移位、异或什么的麻烦的要死,遂正向暴力破解简单粗暴(^__^) 嘻嘻…… 。

草草几行python代码

import crcmod
import string

#create CRC16 calculator
crc16 = crcmod.predefined.mkCrcFun('crc-16')

#wait for user input

hstr = '00 00 8D 7F'
blah = ''.join(chr(int(c, 16)) for c in hstr.split())
check = hex(crc16(blah))  

for i in range(0, 255 + 1):
    for j in range(0, 255+1):
        str_hex_i = hex(i)[2:].upper() #format string like 'EE'
        str_hex_j = hex(j)[2:].upper()
        data = '50 00 %s %s'%(str_hex_i, str_hex_j) #format string like '09 13 9F EE'
        blah = ''.join(chr(int(c, 16)) for c in data.split())
        data = hex(crc16(blah))
        if data == check:
            print str_hex_i, str_hex_j
            break

到此已得到金额以及后面2个字节校验码的关系了,但是还是不知道卡密是怎么组成的,到底是一卡一密还是多卡一密。还是本着Geek决定再次深入!!

0×06 Creak官网,拿到软件??

本来设想进官网拿到软件的,准备一展身手的。拿到shell之后发现啥都没有,一大堆客户资料貌似可以社工,算了也不喜欢弄那个遂放弃。邮箱系统可能存在蛛丝马迹,无奈才疏学浅。

此非本文的重点,故拿站过程跳过 。也不存在技术含量,惯用套路而已。

0×07 逻辑分析澡卡机器

是时候亮出下一个奇门遁甲了。

USB 逻辑分析仪

拿到澡卡机器后一番解剖,右下角的红圈的芯片就是我们要逻辑嗅探的对象。通过芯片的文档找到input、output和gnd的针脚。

连接好的效果图

安装好saleae软件后,参考T5557文档给出的数据编码方式以及命令格式

然后在浩如烟海的数据流中找到该序列(此过程需要极大的耐心,需充分了解数据调制方式,因篇幅简化了分析过程)

Protected write:

1p + Password 32 + L + Data 32 + Addr

1p :页面选择(10/11)
Password :32位密码
L :锁位, 是否锁定该块数据(0/1)
Data:32位数据
Addr:块地址位,例如块5(101)

通过保护写的格式再结合数据图得到密码为:92 10 92 40(hex)

0×08后记

破解基本上告一段落,但还是无法通过卡号直接推导出密码。哎!以后有空慢慢分析吧这个也急不来。

前后大约历时3周,说下经验总结吧。

·书本上的知识还是有用的!当时破解时计算机组成原理、数字逻辑基本上忘得一干二净,无奈又重读了一遍。要是还记得的话,估计进度可以提前几天。
·英语很重要啊!要不然文档都看不懂,中文翻译有时候很水。
·基础很重要,这一起都会变得游刃有余。

参考文档

T5557技术文档

U2270B文档

时间: 2024-07-31 06:16:45

一次蜿蜒曲折的RFID破解之路的相关文章

RFID破解之小区电动车充电卡

炎炎夏日,很快发现每天骑车出去电动车电卡的消费惊人呀( ▼-▼ )- 环境及工具 Win xp pro sp3 M1卡破解工具 NFCGUI-Pro.exe HexCmp.exe 先来看看我们的主角 起初刚办卡的时候,办卡阿姨说办一次卡充一次钱,不提供续充!果断不淡定了啊!用M1卡破解工具成功破解key,源数据dump下来一份. 之后就没管了,想着先用着,没有了再说!就在昨天充电的时候发现刷不上卡了,想着是没钱了,回来dump下数据发现真的是没钱了. 没办法,还要充电呢( ▼-▼ ).首先想到的

黑帽大会二十载:十大最佳破解案例

在过去20年里,黑帽大会曾捅出许多重大的漏洞,促成了一些重大的补丁.这些漏洞展现了现代医疗设备.ATM.汽车.路由器.手机等方面面临的安全挑战.第二十届黑帽大会今天下午在拉斯维加斯开幕.为了庆祝黑帽大会,笔者从大会历史里选编了二十年来黑帽大会展示的一些最佳.最恐怖的破解案例. 汽车破解 2015年,黑帽人士查理·米勒和克里斯·瓦拉塞克(Chris Valasek)(上图)成功黑进切诺基吉普(Jeep Cherokee)系统,厂方随之召回140万辆汽车打软件补丁.该破解用了切诺基吉普汽车里的Uco

RFID Hacking②:PM3入门指南

0×00 前言 Proxmark3是由Jonathan Westhues在做硕士论文中研究Mifare Classic时设计.开发的一款开源硬件,可以用于RFID中嗅探.读取以及克隆等相关操作,如:PM3可以在水卡.公交卡.门禁卡等一系列RFID\NFC卡片和与其相对应的机器读取.数据交换的时候进行嗅探攻击,并利用嗅探到的数据通过XOR校验工具把扇区的密钥计算出来,当然PM3也能用于破解门禁实施物理入侵. 0×01 环境搭建 1.1 windows环境 PM3的固件和软件通常是配套使用,也就是说

Ubuntu 15.10下的WebStorm-11.0.3完美破解

由于最新的JetBrains 发布了最新版本的IntelliJ IDEA的各个版本,而且更换了注册机的使用方式,这就导致了之前对WebStorm的破解方法不能在使用了.所以我们就必须另寻他法咯.如题,这篇博文就是为此而诞生的! 本片博文经过本人亲自实验,可以完美的破解11版本的WebStorm .具体如以下步骤: - 首先应该安装JDK(这是本文进行的前提,但不是本文的范围,不述) - 下载WebStorm - 使用命令行对WebStorm 进行相关的配置 - 添加破解码进行破解 首先是下载We

容易必将付出代价

摘要: 早期越轻易做成的模式,随后将迎来越大的自我挑战.容易必将付出代价,这就是互联网产品的等价交换法则. 在中国网络存储产品中以近乎压倒性优势排名整个市场第一的115网盘,忽 早期越轻易做成的模式,随后将迎来越大的自我挑战."容易"必将付出代价,这就是互联网产品的"等价交换法则". 在中国网络存储产品中以近乎压倒性优势排名整个市场第一的"115网盘",忽然遭遇很多人所认定的"忽然死亡"--作为一款面向大众的在线网络存储服务,

如何做到新站上线半个月谷歌收录3万

一个网站在做搜索引擎优化的时候,首先考虑的肯定是百度,这个是毋庸置疑的,毕竟百度占领者差不多七成的搜索市场份额.第二考虑的是360搜索,这个也是毋庸置疑的,因为360搜索占领者差不多两成的搜索市场份额.第三考虑的是搜狗搜索,这个依然是毋庸置疑的,因为搜狗搜索尤其是和搜搜合二为一的搜狗搜索大致拥有1成的搜索市场份额.这样来说,本文还写什么谷歌的搜索优化文章呢? 其实是这样的:首先,谷歌拥有一部分市场份额,虽然小,但是由于中国网民的体量大,每天用谷歌的人肯定也不在少数,这也就是说,在谷歌上优化好,依

【揭秘】阿里资深专家:支撑双十一千万级流量的阿里技术到底有多牛

与阿里技术共同成长的八年 --专访阿里巴巴资深技术专家沈询 在阿里巴巴,源于崇尚武侠文化的传统,员工入职时都会选择一个武侠小说人物名字作为自己的花名.王晶昱选择了沈询.沈洵,在沧月的小说<剑歌>里,是名三十而立的剑客,身着一袭白衣,从容不迫,风度翩翩.今年正好是王晶昱三十岁,也是他入职阿里的第八年. 5月26日晚,沈公子主讲的<零点之战,双十一背后的分布式技术>在华南理工大学开讲,仅有一百个座位的会议室挤满了慕名而来的近四百名学生.在台下,他笑容和煦,耐心地解答同学的提问,与邻家大

阿里黄轩?应届生是怎样将千万级流量玩弄于股掌之上的~(附视频干货)

今天要给大家介绍的这个人的身上具有以下关键词:应届生.程序员.Java语言\分布式数据库\中间件--技术大牛.神一样的存在--他身上还有一个标签是女生们都比较感兴趣的:长的像黄轩,不太会聊天-- -文末有独家视频绝对干货哦- 在沧月的小说<剑歌>里,有一个三十而立名叫沈洵的剑客,身着一袭白衣,从容不迫,风度翩翩.八年前,22岁的王晶昱以应届生的身份入职阿里,他选择了沈洵作为花名.转眼八年弹指而过,王晶昱也到了自己的而立之年,现在他的身份是阿里巴巴资深技术专家. 1七轮面试之后--2008年,北

支持一下中国芯 “致龙芯15周年 胡伟武披露龙芯3号开发历程”

最近看到了中国芯的发展过程,才发现中国芯已经走出了坚实的一步, 近日,龙芯中科宣布3A3000四核处理器芯片完成流片并通过系统 测试.根据现有的测试结果,龙芯3A3000达到了预定的设计性能目标.其中,综合计算性能方面,在1.5GHz主频下,GCC编译的SPEC CPU 2006定点和浮点单核分值分别超过11分和10分:访存性能方面,Steam分值超过13GBps. 龙芯3A3000的流片成功,标志着我国自主研发的高性能微处理器芯片,可以超越目前引进的同类芯片性能.龙芯CPU首席科学家胡伟武撰文