7

侠盗猎车 -- 玩转固定码 (下)

 2 years ago
source link: https://paper.seebug.org/1747/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

侠盗猎车 -- 玩转固定码 (下)

22小时之前2021年11月03日
经验心得

作者:Kevin2600@星舆实验室
本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:[email protected]

相关阅读:《侠盗猎车 -- 玩转固定码 (上)》

0x00 前言

大家好, 我是星舆车联网实验室Kevin2600。星舆取 “星辰大海, 舆载万物”之意, 是专注于车联网技术研究, 漏洞挖掘和工具研发的安全团队。团队成员在漏洞挖掘, 硬件逆向与AI大数据方面有着丰富经验, 连续在GeekPwn等破解赛事中斩获奖项, 并获众厂商致谢。团队研究成果多次发表于DEFCON等国内外顶级安全会议。

让我们继续上篇侠盗猎车的旅程, 学习更多固定码信号逆向分析的姿势。为了方便读者理解, 笔者将用以下无线门锁进行针对性讲解。

f91c97a2-23c5-4eab-8144-59312cea9f9a.jpg-w331s

首先拆开无线门锁及遥控器进行信息收集, 通过PCB板上的关键字”HFY535F”, 得知此款无线门锁采用了深圳华方圆的解决方案。再利用频谱分析软件确定其工作频率为常见的315Mhz。

7360ae3c-cf40-4eee-8c2e-ce9ccc9dff2b.png-w331s

594ef203-150c-424b-8370-f6457711ccb8.jpg-w331s

在锁的接收端与遥控器部分都带有一个8 bits的DIP开关。只有当两边的bits位相匹配时, 遥控器才能将门锁打开。相对传统不可更改的固定码而言, 使用这类拨码设计, 用户可随时更改编码, 安全性有所提升, 不过这仍属固定码的范畴。通过专业的无线钥匙设备可以了解到, 此款无线门锁采用了PT2262 芯片, 最终显示的地址码1FF01F10 和键码1000与DIP开关位相吻合。

1a1d6e08-a467-4d1a-8ea3-4cf806648fd5.png-w331s

1a800220-e5f1-4036-a150-4118ace07321.png-w331s

0x01 采样

在确定无线门锁的工作频率后, 第一步便是获取信号样本,这里列举几个笔者常用的方式。其中最简便的是osmocom_fft, 根据个人喜好可选择不同的界面, 如下图的示波器和频谱FFT模式。只要设置好目标频率, 点击REC便可自动记录下信号样本, 需要注意的是此时保存下的是信号原始IQ格式, 文件容量分分钟过百兆。

1272a917-b7a4-4162-b6a3-56ba78abdfe3.jpg-w331s

de1640be-aecb-42ee-b4b0-ff3c2e05d45a.jpg-w331s 如果想有更多的灵活性, 则GnuRadio-Companion是必选之一。在用示波器模式分析信号的同时, 还可捕获门锁信号并输出Wave格式的音频文件, 以及原始IQ文件。

f6933ee2-7a81-4fca-b250-f8516ca45e38.png-w331s

通过示波器模式显示门锁信号, 使我们有更直观的感受。如下图分别是遥控器上锁和解锁2个按钮所输出的波形。

88e1847c-4b03-494f-ab56-bad4b36455d0.png-w331s

8b836d09-cde6-4862-a272-d110d6a48c8b.png-w331s

将捕获到的音频信号倒入Audacity后, 显示的结果与示波器波形完全吻合。

79d240db-6d08-49bd-a4e2-2748a2904e43.jpg-w331s

711ecd62-cc63-440a-8de1-60d606845600.png-w331s

我们还可以用上篇提到RTL-433进行采样, 以下是解锁指令的信号解析, 可以看到与上面音频, 示波器结果相同, 且以二进制等方式显示, 使其更加一目了然。

0c05b792-a048-4d37-ae3f-95e0073f0d54.png-w331s

0x02 分析

在对信号采样后, 接下来就需要对其近一步分析。比如我们想要获取信号的波特率, 通常的方法是套用已知公式 (1/ (最短波形长度/采样率))。如下图音频信号中 1/(542/2000000) 波特率大概是3690左右。

63432a75-e197-4ebc-9981-0eefa67ca792.png-w331s 笔者这里推荐一款名为Inspectrum的开源软件。其界面友好, 操作简单。如下图可以看出门锁遥控器的信号是典型的OOK模式

83caeeaf-d328-42e5-9f74-05e1a0422b34.png-w331s

通过自动化解析得到我们所需的波特率, 跟之前音频分析得到的结果一致。

6853c66c-caf7-4e28-a8a1-8e21614c5906.jpg-w331s

还可以将脉冲信号自动转换成相对应的二进制。这大大提高了分析工作效率。

e62be965-44de-4474-be55-db5a35bb6d36.jpg-w331s

0x03 发送

在分析完信号样本后, 可以尝试回放信号攻击. 之前提到的GnuRadio-Companion可以帮助我们将捕捉到的门锁信号, 原封不动的发送出去.

3a8ed677-c601-42a4-9e47-6ae6256e2f80.png-w331s

需要注意这里发送的是门锁遥控信号原始数据, 如果有任何噪音也同样一并发送出去。以下是信号发送演示视频 (https://www.youtube.com/watch?v=2Uszj0Wc8Zs)

d1c49ad2-59f4-4730-ad9a-8f6f9f5fb61b.png-w331s 这里再跟大家推荐这款名为 Yardstick1 的无线神器。 加上Python框架RFCat, 我们可用脚本的方式来达到门锁信号回放的目的。

78270c50-c52f-44c1-8822-de0697486c04.png-w331s

下图为攻击脚本, 需要注意的是波特率以及数据包之间的间隔等参数一定要设置正确。

a9df7bf5-baae-4fae-8eb9-4f79ecc0dc25.png-w331s

以下是使用 Yardstick1发送解锁指令信号演示视频 (https://www.youtube.com/watch?v=bDQ3YtoY8GA)

94a328ab-c0a5-40df-af95-91b72b6773cd.png-w331s

0x04 总结

针对固定码的分析与破解就此告一段落。也许有同学会觉得这太基础。但对汽车钥匙安全研究来说只是热了个身, 接下来有更多烧脑的挑战在等着我们。(视频: https://www.youtube.com/shorts/m71ZGKYPKlo)

df44b535-a8d6-48e5-bc50-8b9fa1091292.png-w331s

0x05 文献

http://samy.pl/opensesame/

https://www.audacityteam.org/

https://github.com/miek/inspectrum

https://github.com/atlas0fd00m/rfcat


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1747/

← 某 mpv 播放器因格式化字符串导致远程代码执行漏洞深...

无干货不KCon|KCon 2021 部分 PPT 发布 → r

星舆实验室

星舆取 “星辰大海, 舆载万物”之意, 是专注于车联网技术研究, 漏洞挖掘和工具研发的安全团队。团队成员在漏洞挖掘, 硬件逆向与AI大数据方面有着丰富经验, 连续在GeekPwn等破解赛事中斩获奖项, 并获众厂商致谢。团队研究成果多次发表于DEFCON等国内外顶级安全会议。

阅读更多有关该作者的文章



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK