利用HackRF替代车钥匙解锁电动车

0 攻击背景
本篇文章通过对电动车锁车信号进行分析,实现在没有钥匙的情况下,轻松开锁电动车,本文章中用的是公司小伙伴的电动车

系统:Ubuntu、OS
hardware:HackRF、同事的电动车
software:Gqrx、URH、GNU Radio

一般遥控模块的发射功率较小,信号频率大体为433MHz或315MHz,我通过两种方式获取了这辆电动车钥匙的频率,并利用URH实现信号重放

1 获取电动车频率

我们需要知道电动车钥匙的信号频率,使用到的硬件工具是HackRF,HackRF是一款软件定义的无线电外围设备,能够发送或接收1MHz至6GHz的无线电信号,是一种开源硬件平台,可用作USB外设或编程用于独立操作
93652-kmd6oyekcm.png

这里有两种获取信号频率的方法,第一种方法是通过Gqrx扫描获取,第二种是通过查看这款电动车钥匙的晶振获取

1.1利用Gqrx扫描获取频率

Gqrx是一个开源软件定义的无线电接收器(SDR),由GNU和Qt图形工具包提供,在这里使用gqrx获取电动车钥匙信号频率,距离不能太远
下载:https://gqrx.dk/download
使用教程:https://gqrx.dk/doc/practical-tricks-and-tips#more-229

启动:在Terminal中输入gqrx
79113-capg203kdln.png

选择合适的设备,设置适合的Bandwidth(带宽)
05165-9jwp8d60yum.png

长按电动车钥匙按键,可以看到信号的频率在315.056000Mhz左右

01880-rqra1vbr9sm.png

1.2查看晶振获取频率

90425-krhkca7fid.png

可以通过判断晶振的参数来确定钥匙的频率,通过对该牌子的电动车钥匙进行研究得到频率为315M

22539-bbkqt9x2rg.png

2 信号重放

因为电动车钥匙对电动车每次发射的解锁关锁操作的信号都是一样的,所以我们要进行信号重放首先要对遥控信号进行采集
安装Hack RF驱动brew install hackrf,输入hackrf_info查看是否安装成功
71830-p1at9335lbl.png

hackrf_transfer Usage:
    -r <filename> # Receive data into file.
    -t <filename> # Transmit data from file.
    -w # Receive data into file with WAV header and automatic name.
       # This is for SDR# compatibility and may not work with other software.
    [-f freq_hz] # Frequency in Hz [0MHz to 7250MHz].
    [-i if_freq_hz] # Intermediate Frequency (IF) in Hz [2150MHz to 2750MHz].
    [-o lo_freq_hz] # Front-end Local Oscillator (LO) frequency in Hz [84MHz to 5400MHz].
    [-m image_reject] # Image rejection filter selection, 0=bypass, 1=low pass, 2=high pass.
    [-a amp_enable] # RX/TX RF amplifier 1=Enable, 0=Disable.
    [-p antenna_enable] # Antenna port power, 1=Enable, 0=Disable.
    [-l gain_db] # RX LNA (IF) gain, 0-40dB, 8dB steps
    [-g gain_db] # RX VGA (baseband) gain, 0-62dB, 2dB steps
    [-x gain_db] # TX VGA (IF) gain, 0-47dB, 1dB steps
    [-s sample_rate_hz] # Sample rate in Hz (8/10/12.5/16/20MHz, default 10MHz).
    [-n num_samples] # Number of samples to transfer (default is unlimited).
    [-c amplitude] # CW signal source mode, amplitude 0-127 (DC value to DAC).
    [-b baseband_filter_bw_hz] # Set baseband filter bandwidth in MHz.
    Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default < sample_rate_hz.

长按电动车车钥匙进行信号收集

hackrf_transfer -r signal.raw -f 315920000 -g 16 -l 32 -a 1 -s 8000000 -b 4000000
12673-7m45dghk3gi.png

进行信号重放,在Terminal输入以下命令

hackrf_transfer -t signal.raw -f 315920000 -x 47 -a 1 -s 8000000 -b 4000000
27765-59o31hs5yqh.png

也可以借助URH进行信号的录制与重放,这种方法适用于很多设备
下载:https://github.com/jopohl/urh
首先选择Record signal(录制一个信号)
37294-y5wzcw98fb.png
选择合适的设备、带宽、采样率等
52414-hzhesty9oz4.png

点击进行信号录制,我们可以看出信号已经成功录制

69375-avzo1e36ur.png

进行信号重放
73822-n62mc1ojwej.png

电动车解锁成功

3 信号分析

通过信号重放技术进行电动车开锁是需要提前录制好解锁信号进行的,我们可以分析一下如何在只有锁车信号的前提下进行解锁

首先使用URH分析一下信号内容,Modulation选择ASK,并获取数字信号
37943-vlqdjv1e0re.png

Modulation的几种选项:

ASK:幅度键控,按载波的幅度受到数字数据的调制而取不同的值

FSK:频移键控,按数字数据的值(0或1)调制载波的频率
PSK:相移键控,按照数字数据的值调制载波相位
81940-4a4m7c0sy4n.png

载波的幅度有两种变化状态,分别对应二进制的‘0’和‘1’

我们获取其中一段数字信号为:

1110111011101110100010001000100010001000100011101000100011101000111011101000100011101000100010001
补齐syn位在后面添加0得倒:

11101110111011101000100010001000100010001000111010001000111010001110111010001000111010001000100010000000000000000000000000000000
1527码对应时序图
29359-xpz6ciylkmh.png

码型分为两种,‘1’与‘0’,‘0’码是一个高低电平宽度比为t∶3t的脉冲,而“1”码是一个高低电平宽度 比为3t∶t的脉冲,syn同步位为t∶31t

随便写一个py把数字信号通过1527解码得到除去SYN之前的24位是
111100000001001011001000
01752-l3cz8ka9i9.png

前20位每个钥匙都不相同,后4位是控制码对应于不同的功能
66399-s7jkdrrbr7d.png

我们知道‘1000’为开锁,通过修改数据尝试进行重放发现‘0100’为锁车

用GNU Radio做个重放信号流图
GNU Radio是一个结合硬件用软件来定义无线电波发射和接收的方式,提供一个信号处理模块库,并通过建立一个流图把单个处理模块连接在一起形成一个无线电系统

在Ubuntu系统中下载:Terminal输入sudo apt-get install gnuradio=3.7.9.1-2ubuntu1
运行:Terminal输入gnuradio-companion
73254-zkzlkqa5oz.png

文章来源于Tide安全团队 ,作者lmn

本文来自投稿,不代表本站立场,如若转载,请注明出处:http://www.csxxaq.com/iot/1406.html
IBM 研究发现:使用超过 50种安全工具会降低安全响应效率
« 上一篇 07-09
如何破解“仅三天可见”的朋友圈?
下一篇 » 07-14

相关推荐

Joomla漏洞总结

以下文章来源于黑白天 ,作者kevinJoomla 3.0.0 -3.4.6远程代码执行(RCE)漏洞复现漏洞描述Joomla是一套内容管理系统,是使用P...

红队防猝死手册

文章来源:https://github.com/zhutougg/RedteamStandard一切为了不丢分工作环境工作时全部操作均在虚拟机中完成虚拟机...

渗透某勒索服务器

这是 酒仙桥六号部队 的第 74 篇文章。全文共计1300个字,预计阅读时长5分钟。文章来源:六号刃部 - 酒仙桥六号部队 事情经过和我一起合租的室友喜欢...

Android渗透工具集合

Android安全测试更多地被安全行业用来测试Android应用程序中的漏洞。下面将列举全面的Android渗透测试工具和资源列表,其涵盖了在Andro...