从无线射频信号分析固定码
前言:
通常在车联网的渗透测试中,最被大家所接受的攻击路径之一,就是从钥匙入手,在车主不在场时打开车门,无论是偷走车内财产还是偷走整辆车,这一步都是前提。
目前国内的车钥匙基本都是电子钥匙,采用的是固定码/滚动码的方式,将数据搭载在信号上,通过调制方式,将信号传输出去。国内的车钥匙一般采用的ISM频段基本是315M与433M这两种。需要注意的是,因为车钥匙中芯片会根据电压与振荡电阻的问题导致检测频率中心会有点偏差,我自己测量出来的是433.92M左右,但是不会差别过大。且大部分软件会自动在你设定的采样跟带宽附近搜索,因此不用担心会搜索不到。
固定码
它的地址码是固定不变的,也许有人会问,如果是固定的,为什么开客厅的遥控器,却开不了房间里的灯呢?虽然地址码是固定不变的,但它是由8位不同的地址码组合而成的,我们可以通过不同的组合来进行配对,这样就不会出现上述情况了!遥控器固定码是相对滚动码说的,一般由PT2262/2272组成的系统为硬件编码、固定码遥控系统。
小米门铃发射器
介绍完基础知识之后,我们从实战出发,公司身边有一个小米门铃,经过测试,发现是滚动码,因此打算拿这个来做分析。首先需要知道的是采用的什么芯片,哪种编码方式。首先我去淘宝逛了一圈,只找到他的调制方式以及工作频率,如下图一所示
图1 解调方式及工作频率
没找到对应的编码方式,就问了淘宝的客服,不出所料他们不知道,那么没办法,就只有拆件了。
拆完之后,发现他居然不是PT2262/2272编码???正面与背面如下图2(a)、(b)所示
图2(a)
图2(b)
先看图2(a)里面所有的芯片丝印都已经被去除,查看芯片也可以发现不是PT224x/PT226X相关加密方式,暂时无从得知。PT224x/PT226X相关芯片如下图3所示
图3 PT226x
再看图2(b)上写XYD-T25,网上没有找到对应型号的数据,但是根据外形考虑应该是一个晶振,用来控制时间以及震荡相关,在这里我们可以先不考虑。
小米门铃接收器
发射器上没有任何的可用信息,那我们就拆开接收器看一下,接收器拆开后,如下图4所示
图4 小米门铃接收器
幸好,接收器中还有一些丝印没有被去除,从图中我们可以看到对应的接收芯片丝印为CMT2220LS,查看对应的datasheet,得到以下信息。
图5 CMT2220LS芯片手册
是一个OOK调制可以工作在315M以及433M频率下适用于红外无线场景的接收器。这样就先搞定了第一部分,得到了接收器的解码芯片。
失败的芯片反查
图6 CMT2220LS芯片手册描述
看到其中有这段描述,想到一个几十块的东西肯定要讲究性价比啊,于是很开心的去查了一下CMT211,结果发现,并不存在这种封装。
图7 CMT211X芯片手册
抱着试一试的态度查了一下CMT215x的芯片手册,柳暗花明了家人们。
图8 CMT215x 芯片手册
是我们最爱的SOP8,到这里我觉得应该已经是了,但是还是不能完全确定,所以根据芯片手册的引脚定义,拿万用表尝试一下。
图9 CMT2150引脚定义
使用万用表测试完成后,发现对应的GND引脚居然对不上。
图10 引脚定义实测
于是我又紧急看了一下芯片手册,其中典型应用描述了与LED的接触,经过测量,上图脚8与图2(a)中LED的负极相连接可以与下图对应,因此我怀疑是否是因为做过修改,将引脚调换?这一点是不清楚的,目前也没有更好的思路去确认,我们尝试从信号的角度去分析。
图11 CMT2150L典型应用
信号抓取&分析
上述遇到了问题,那么就换个角度,对信号抓取。我采用的是Hackrfone&universal Radio Hacker。这里软硬件的使用方式,我就不在叙述了,我们直接看结果。下图为采集到的小米门铃信号
图12 信号采集图
我们对信号进行ASK的解调,把他变为HEX的数据格式,对第二段信号做分析。将第二个信号放大,可以得到以下情况,对其进行分析,可以得到这三段,我按照自己的理解将其分为这三个部分,其中开始与结束码,按下一次按钮只会存在一次,而内容功能码,在按下的同时会一起发送。根据功能猜测,应该是按下的一瞬间,发送开始码同时不断循环发送内容功能码;当放开,即电平从高到低,则发送结束码。
图13 信号解析
对其继续放大得到下图,这样就可以知道了,信号真的是CMT2150发射出来的,而且采用的是默认的1527编码方式。
图14 信号解调
找到了EV1527的编码方式如下图15(a)15(b)所示
图15(a) 功能描述
图15(b) 时序图
那么对图14根据时序图分析
1000 1110 1000 1000 1000 1000 1000 1000 1000 1000 1110 1000 1000 1000 1000 1000 1110 1110 1111
0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 F
这样就可以知道该发射器发送的是这些数据了,接下来就可以重放了。重放的方式有很多种,最简单的自然是采用别人编辑好的上位机,一键重放,通俗易懂。我们使用URH发送即可解锁设备。
这篇文章就到此结束啦,下篇会对滚动码进行分析。
新人分析,如果遇到有问题的地方,希望各位大佬指出!
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-8-21 17:07
被mb_ccaadaoz编辑
,原因: