准备事情:
hackrf 一台
一台已经装好Kali Linux的电脑

遥控无人机和配套的遥控器
hackrf环境配置见之前微信的文章,这里不再赘述。
拆解:
在对设备进行反复的操作之后,创造所得到资料实在太少,乃至连无人机事情的详细频段都无法获知,仅仅只是知道事情在2.4G频段附近。
为得到更多更详细资料,我们对遥控器和无人机进行了拆解。
对遥控器的拆解
可以创造遥控器的掌握板上仅仅只有一颗芯片,以是这颗芯片该当便是全体遥控器的掌握核心。这颗芯片的型号是XNS104芯片。查询得知,这是一颗AD型2.4G 高速无线收发单片机芯片,可以进行编程和无线收发通信。
对无人机的拆解
1为XN297L芯片。但是芯片2被厂家抹去了芯片型号。(啧啧啧,一定是个主要的芯片)
现在得到的芯片有无人机上的XN297L芯片和遥控器的XNS104芯片。
XN297L芯片只有无线收发的功能,无法作为无人机的MCU(主控芯片)。以是可推断获知无人机上面被抹去旗子暗记的芯片该当是一颗MCU芯片。
无人机和遥控器之间的通信通过XN297L芯片和XNS104芯片进行。XNS104芯片集成了XN297芯片的功能,以是两者的通信机制该当是基于XN297芯片的。
接下来,我们须要剖析XN297L芯片的详细通信状况。通过技能手册,我们创造这样的内容,如下所示。
如此看来,重放攻击彷佛是不大可行的,但是柳暗花明又一村落,翻到最底部的时候溘然看到了XN297L的数据报格式,详细如下图所示:
从数据报文里面可以创造PID码仅仅只有两个比特位,因此这里利用的PID并不是为了防止重放攻击的,而是用来去除重复数据报文的。仅仅两个比特位的PID码可以在短韶光内遍历,以是重放攻击该当是可行的,确认了这一点之后,就可以展开下面的挟制操作了。
挟制:
挟制这个类型的无人机,我们须要去获取遥控器发射的旗子暗记。首先来看看无人机的事情机制。
事情机制:
首次对码,确认无人机处于可以利用的状态
二次对码,成功建立遥控器和无人机的通信线路
末了,遥控器成功操控无人机
前两者在开启遥控器和无人机的时候会自动完成,但是对付挟制而言,我们须要去仿照这两个步骤,从而获取到无人机的掌握权。
获取无人机和遥控器的一次对码信息:
利用kali Linux下的gqrx来确定配对信息的所在频率,单独打开无人机,信道表现如下图所示,信道中没有任何信息
开启遥控器之后,信道中开始涌现大量内容,如下图
由上可知,首次对码信息仅仅由遥控器发出,无人机仅仅来吸收这个信息。以是,我们可以录制相应的频段信息来得到仿照遥控器和无人机之间的对码过程。
录制信息的hackrf操作
hackrf_transfer –r fly.raw –f 2479000000 –g 16 –l 8 –s 8000000 –b 4000000
在Kali Linux上面实行上述操作后,如下图所示:
获取无人机的二次对码信息:
得到了无人机的一次对码信息之后,接下来就须要去获取无人机的二次对码信息。
无人机的二次对码信息比一次对码信息更加的繁芜,这是由于一次对码完成之后,二次对码中就引入了ACK机制,来确保无人机收到二次对码的信息。
以是在这一步中,虽然同样可以利用重放攻击,但是须要对针对ACK机制,多次重放二次对码的数据报文段。详细的录制操作和和一次对码的类似。
得到了上述报文之后,就可以去获取飞机的操作信息了,操作信息的处理方法和二次对码的相同。不同的是,须要确保操作信息录制的韶光长度,来防止PID机制将重放出去的旗子暗记当作重复的报文进行丢弃。
happy的重放过程:
在之前那篇门铃重放中,我们利用了GNU radio工具来重放旗子暗记,不得不说可视化的软件减少了很多的操作步骤。
但是这一次,我们直策应用hackrf来进行录制旗子暗记的重放,我们将这个操作写成了shell脚本,接下来只须要实行shell脚本就可以了。详细的shell脚本如下所示:
#!/bin/bash hackrf_transfer -t flystart.raw -f 2479000000 -a 1 -s 8000000 -b 4000000 -x 47 hackrf_transfer -t flying.raw -f 2479000000 -a 1 -s 8000000 -b 400000 -x 47
这样,我们就完成了无人机的挟制
Duang~
大家可以看到,期初飞机在正常飞
用hackrf播放事先录制好的低落信息,飞机就低落了
脚本很大略哦,是不是已经迫不及待想动手考试测验一下啦!
特殊把稳:
由于ACK和PID机制的存在,录制旗子暗记的时候,请确保无人机和遥控器同时处于开启状态,否则,录制的旗子暗记很可能是无效的!
实验时,由于事情在2.4GHz频段的设备有很多,比如说WIFI蓝牙等,以是请找一个无线电环境比较好的地方,进行本次实验!
安全提示:
在对这架无人机研究过程中,可以创造这架无人机具有以下弱点:首先PID码的位数不足长,使得重放攻击能够通过一些修正和变通来实现;第二点,在ACK机制上面,没有充分利用ACK的安全机制,代码上也没有履行芯片拥有的双向认证功能。
也希望有关厂商能够对这两个问题进行修复,使这架无人机变得更加安全.
本文作者: 网络安全通,转载自 FreeBuf.COM