一次对路边饮用水RFID供应机的跑路玩法

摘要: "如何成为一个合格的硬件白帽子? 答案: 一个有聪明大脑的你 要有归纳类比和善于用GOOGLE的能力(百度?放弃吧) 善于翻阅和查询相关开发文档和强大的跑路能力。"

WARNING!!! 本文具有相当的攻击性以及复现性,仅供技术参考与教学用途研究,切勿用于非法用途,参考此文进行犯罪的相关人员与本人无关。

——免责声明。参考刑法修正案:构成非法提供控制算机信息系的程序、工具罪,两罪量刑都是三年以下有期徒刑或者拘役,并或者单处罚金,情节严重的,三年以上七年以下有期徒刑,并处罚金。非法算机信息系数据

这次我们要用到的工具:ProxMark3        

镇楼宝图在此:

 图片1.png

图片2.png


No.2开始搞事。
为了打发漫长而炎热的假期,回到了祖父家避暑,结果发现原本破败荒芜的家属大院内多了一台纯净水供应设备,而祖父也刚好办了一张卡,华山这几天温度热的要死,我竟然神奇的把黑色连到从北京坑到了华山美其名曰避暑然而,连续五天温度过了42度,无形装逼最为致命。现在家里面无聊到爆,于是总是再找点事情做,048  049玩烂了。于是拿出了随身携带的战术包中的Proxmark3  hackrf   等工具  玩烂了RTL8187   HACKRF出问题 于是在一个炎热的午后去打水,发现了那张水卡。踏破铁鞋无觅处得来全不费工夫,不要怂,就是干。征得物业同意之后开始测试这个水机的认证系统。


过程· 首先拿出手电筒对着M1卡片照射看其中线圈结构。结果发现是正方形线圈,按照经验是13.56MHZ的高频卡,于是话不多说直接上工具,是经proxmark3的检测,结果印证了是Mifare Classic 1k的卡


图片3.png



上手过程
按照国际惯例先扫了扫默认密码区,结果发现密码区防护做的相当的好,每个M1卡都有一个唯一的序列号,我们称为“UID”,是32位的,也就是4个字节。


注:其中每个data 数据区一个”。这样可以算一下:16b* 4(*16(扇区)=1024B 就是1K。
第0扇区的0(即绝对地址0),它用于存放厂商代,已固化锁死,不可更改。原来在实验室见过一个厂商代码没有锁死的M1  被我玩了好久。。。。。
在全扇区加密,通常用前三个”(0,1,2号)存放数据,用最后一个”“(3号)存放密
其中密A密B密:前6个字存放A密,中4字节为控制字段,后6字放B密


图片4.png

· M1卡是典型的高频卡,工作频率为13.56MHz,一般调频(FM)收音机接收的广播频率在87MHz到108MHz之间。而我们常说的路由器工作在2.4GHZ中。这个时候注意一个小科普,很多人分不清5G路由和5GLTE。导致很多人认为5G路由就是5G通讯技术的路由,这里进行一个更正 .一般路由是工作在2.4GHZ 频段下面的通讯信号,而所谓的5G路由是工作频率在5.8GHZ下的路由器。而5GLTE指的是第五代通讯技术,而逆向工程最好的方法就是了解他的基础结构,我们来看一下M1卡的工作通讯机制


言归正传,来看看M1卡的通讯通信速率:106KBPS,也就是说可以在10毫秒的时间内完成读写内容。
工作半径:100mm。大约在100mm以内的距离,可以使用读卡器对m1卡进行操作(一般写距离小于读距离)。
在使用proxmark3对M1卡进行破解时 ,我先用了默认密码扫描,结果发现卡的安全是很好的,没有默认密码


于是使用了有卡嗅探,网上很多人都在用proxmark3去暴力破解或者RPNG漏洞利用,对于proxmark3来说真的是大材小用。Proxmark3可以通过抓取卡与读卡器之间的通讯来解开相应的密码

准备1个充电宝 和1跟 双头usb供电线数据线淘宝一大把

和原来一样正常连接电脑。打开窗口(下图)


图片5.png

一切正常之后  你输入  hf 14a snoop这时主板会亮一个灯


图片6.png

再拨了主机上的USB口

到电梯那里去刷卡.( PM3天线 放  卡片  和 卡机 之间)

让天线 夹到卡与读卡器之间

不同角度的刷卡  多刷几次

刷到主板上的灯全灭了

拿 回来直接连接上电脑

打开软件

再输入 hf list 14a 
查看监听数据

如果监听到完整数据后

通过软件直接算出来就可以了


图片7.png

这就是完整的数据

图片8.png

这是激卡 04 00

9320 是要卡返回卡号

93 70 是选择卡号

图片9.png

这三个就是 密码了 (当然是加密的) 通过软件可以算出密码

图片10.png

图片11.png


破解中间我们可以看下M1卡的通讯工作流程图以更加好的了解工作原理:

图片12.png



破解
M1卡的破解算法已经烂大街了,我们可以利用M1卡已知的PRNG 漏洞来爆破出其他几个扇区的密码最后读出数据。保存数据后后我又过去进行了一次消费,用来进行数据对比(卡中金额有变动

图片13.png

· 的话数据也有变动。)对比数据:然后发现数据存储在14块、15块。16块有数据但是没有变动,初步猜测是用户识别信息。其他区块都是空的。也是够了。


上手逆向在上手逆向之前我们要认识一下CRC冗余校验和奇偶校验以及异或校验,累加校验等


举个例子:循环冗余码CRC(Cyclic Redundancy Code)又称多项式码.
任何一个由二进制数位串组成的代码,都可以惟一地与一个只含有0和1两个系数的多项式建立一一对应的关系.例如,代码1010111对应的多项式为X6+X4+X2+X+1,多项式X5+X3+X2+X+1对应的代码为10111.

CRC码在发送端编码和接收端检验时,都可以利用事先约定的生成多项式G(X)来得到.设G(X)中最高位X的次方为Xr,信息位为K(X);则CRC码=Xr乘以K(X)再除以G(X).

比如:信息位K(X)=X6+X4+X3+1既1011001,生成多项式G(X)=11001既X4+X3+1(可得Xr=X4)
则CRC码=X4* (X6+X4+X3+1)/(X4+X3+1)=X10+X8+X7+X4/(X4+X3+1)=10110010000/11001
得到的余数就是CRC码

注:以上除法用的是模2除法,是一种不考虑减法借位的运算.既0-0=0,0-1=1,1-0=1,1-1=0


图片14.png

每个块的前八组HEX和后八组HEX中,数据基本相同 ,而变动数据是红框部位,后面的因为相同忽略不计。然后经过详细的观察和运算发现:

当方框中划出的数据用FF做异或运算后,得出的数值刚好与箭头所指数据相同

A4异或FF  等于5B

答案很明显了  使用的是异或校验运算。我刷掉了1.5元而校验值是箭头指向的数据减去金额,而M1卡数据写入机制是倒序的。也就是说金额数据是14 A4/14 08 我们用校验位减去相应金额再转化为十六进制即我们想要的数据:

e31400001cebff ffe314000014eb14eb


爆破原理深源揭秘不法分子爆破M1卡的方式。

使用技术手段完成M1卡破解的方式有4种:

1.暴力破解

即便是暴力破解,也需要先得到确切的明文和对应的码流。这大约要进行1536次认证过程,用时在一秒钟之内。不过还要进行离线暴力破解,估计在36分钟可完成。但是需要专用的硬件设备。


2.以读卡器的挑战值做变量

这里说的读卡器实际上指的是用来模拟读卡器的攻击工具,下个攻击亦如此。这种攻击又可称选择密文攻击,想法用工具控制被攻击的卡每次在认证时产生同一挑战值,而读卡端则回应不同值。这种攻击需要大约28500次的认证过程,用时约15分钟,然后计算密钥,用时约一分钟。

3.卡的挑战值做变量

第三种攻击与攻击2类似,但需要使自己的工具的挑战值为常数,而令卡的挑战值数不断变化。需要预制一个384 GB的状态表。要进行4096次认证。大约用时2分钟。


4.嵌套认证攻击

第四种攻击假设攻击者已知了至少一个扇区的密钥,他可以根据漏洞得到其它密钥的32位,然后对其它16位进行穷举攻击。只需3次认证(时间可以忽略不计)。离线攻击计算时间约为一秒。


M1卡的存储器组织 M1卡存储详细解说。1024 x 8 bit EEPROM存储器分为16区,每区4块,每块16字节。

在擦处后的状态下,EEPROM的单元读为逻辑“0”,写后的状态下读为“1”。

image.png

3.6.1 厂商代码块

这是第1区的第1块(块0)。它含有集成电路制造商数据。出于安全和系统需求,此块是制造商在生产过程中编程后写保护的。

图片17.png

image.pngimage.pngimage.pngimage.pngimage.pngimage.png

上一篇:低功耗蓝牙(BLE)攻击分析
下一篇:在云环境下Tomcat7存在...