文档章节

我是如何使用树莓派击落&劫持无人机

微博士
 微博士
发布于 2016/05/18 23:34
字数 2305
阅读 46
收藏 2


本教程的目的是帮助大家理解如何研究未受保护的无线通信的安全风险所在,同时我们希望大家不要对技术进行滥用。我们这里采用的例子是一个流行的无人机模型:Parrot AR.Drone 2.0。
四轴无人机能够以独特视角记录下高质量的视频,但是联邦航空管理局(FAA)称,这些无人驾驶系统在安全和隐私方面的可靠性有待商榷,许多安全专家都在暗示无人机使用量增加后可能带来的风险。除了持续监控以外,有心人可能通过无人机收集移动设备的信息。
更多关于无人机介绍
因此研究攻击无人机的产业正在成型,hack设备的尺寸从大到小都有。在这里,我将向您展示如何构建自己的平台,从而对特定类型的四轴无人机进行网络攻击。
我这里不会去进行信号干扰和定向波,这会产生严重的安全风险而且是非法的。我们这里的实验仅限于自己的网络和设备,或得到了其他许可。
为什么是802.11
Wifi是控制当前主流四轴飞行器的关键接口,一些用它作为控制器和平板设备之间的接口,用它显示无人机映射情况和测到的数据。而如Parrot’s Bebop和AR.Drone 2.0等无人机,则完全是通过wifi来控制。这些类型的设备降低了无人机的门槛,因为飞行员可以用自己的设备进行控制。但是在一定的情况下,现有的基于网络的攻击可以用来对付这些设备。AR.Drone 2.0有许多有意思的特性和传感器,用户都可以访问到。这款低成本的设备,能够成为大家实验和学习的理想平台。
它是如何工作的?
AR.Drone 2.0会创建一个用户智能手机能访问的热点,名字叫ardrone2_*,*号代表随机数。这个默认的热点是开放的,并没有提供身份验证和加密。一旦用户将设备连接到热点,就可以启动相应的应用获取无人机的控制权。这个认证过程虽然方便了用户,却让黑客可以更加容易地控制无人机。
测试开始
实验将用到一台笔记本、USB无线网卡以及天线,我们将模拟一个简单的攻击过程。启动AR.Drone 2.0,使用相应的应用控制它。几秒钟后,你就可以在wifi网络中看见它发出的热点了。连接到该网络,启动你最习惯的终端应用,默认的网关地址是192.168.1.1。在此时,你就可以远程登陆到这个开放的系统上了。
telnet是一个老旧的远程访问计算机的协议,你可以通过它浏览系统内容,甚至借助它在无人知晓的情况下突然关掉计算机。使用一套免费工具打组合拳,你可以很容易地在你电脑做到这些。
现在我们来看看如何进行自动化攻击,下面要用到的工具有:树莓派、触屏,以及一些Bash脚本。
我使用的是一个由Adafruit提供的教程,用触屏设置我的树莓派,从而在点击之间完成我的攻击。这里我假设你有一个配置好的树莓派,下面告诉你如何自动化实现。
首先你需要SSH连进你的树莓派: 

改变目录,进入树莓派的桌面(或者你习惯的操作目录),对你的脚本进行访问操作。

使用你最喜欢的文本编辑器(我这里是nano),建立一个新文件。我将其命名为join_network.sh,因为我需要用它自动化连入AR.Drone 2.0开放的热点。 

将下面8行加入你的脚本,在第7行,键入AR.Drone 2.0的全名,做完后这些后请进行保存:
 

你会自动连上你此前测试的连接,并且发送一个命令来关闭无人机。现在我们来创建另一个脚本,我称之为poweroff.sh:

把这些加入你的脚本,这将向无人机发起一个连接请求,IP为192.168.1.1,然后发送关机命令(这同普通计算机的模式其实是差不多的):

现在我们需要确定脚本是可执行的,输入sudo chmod u+x filename,这个命令对以上两个文件都要来一遍。我们想要检查脚本是否可执行,可以输入ls –la,看看它们的读写执行(rwx)权限情况:

现在两个脚本已经可用,当你确认没有啥东西在你无人机的攻击范围之内时,就请尽情狂欢吧!

创建一个Cantenna(罐子天线)
你可以使用一个由罐子制造的定向天线,来增强你的无线信号。
无线世界里,连接稳定性为王。你的无线设备上有一个好的天线能够大大提高你的信号质量,延展你的影响范围。你只需要花费不到一个小时,就可以制作自己的定向cantenna,连接远处的无线热点,或者与某些无人机或者类似的无线设备进行交互。

1.计算
这个玩意儿的最难点在于需要计算安装无线连接器的最佳位置,以及有线部分发挥理想效果的正确长度。幸运的是,有很多网上的资料能帮助你解决这个问题,比如这里。下面的插图将给你讲述如何进行测量计算:
 

给定罐子的尺寸,直径约100毫米,N型连接器大概需要罐子底算起约44毫米的高度。我们通常感兴趣的的是2.4GHz频段,所以铜线需要的总长约为31毫米。
2.测量和标记

在你罐子底部测量起约44毫米的位置,为N型连接器标记一个永久性位置。
3.钻孔
在罐子上钻出4个孔,你可以用螺丝把它跟连接器固定。当然,你可以不要螺丝,直接把连接器跟罐子焊在一起。

4.把线焊到N型连接器上
你需要在安装前准备下连接器,准备4“的直铜线,越直越好,而且需要将上面的涂料全部弄掉。
然后你得把短铜线焊到连接器的顶部,因为有点麻烦我找人事先固定好了:

把线焊到连接器上后进行调整,将线修剪为第一步计算出的长度,我这儿是31毫米。
5.安上连接器

如果你不想把连接器焊到罐子上,你可以通过螺丝把它从罐子外面向里拧紧。如果需要的话,你可以切掉罐子的底部,在做完后盖上去,
6.连上无线网卡

连线你的卡和N连接器,就能使用cantenna了。
你可以加上一层涂层让它更有效,或者给他加一个支架以针对特定方向的目标。
其他相关无人机的思考
这仅仅是黑客能玩的冰山一角,包括改删系统文件、截取视频和传感,将无人机引导向另一个位置,以及各种手段的综合实施。安全项目RollJam和MagSpoof的缔造者Samy Kamkar,甚至发布了一个项目可以允许黑客在wifi所达的范围里自动化寻找Parrot无人机,夺取原主人的控制,最终结果就是把它们变成“僵尸”无人机。
我们还在Make: office用wifi环境测试了一些无人机,这些无人机都容易被夺取控制权,造成无人机连接的丢失。

我们diy的cantenna对于扩大信号范围是非常有用的,使用树莓派组装的平台,我们可以灵活编程进行一系列攻击。比如,我们可以用来攻击咖啡店的热点。黑客可以设计一个假的热点(Better Wi-Fi),用来收集大家的认证凭证。本来知道咖啡店原wifi热点的顾客是不会来连这个假热点的,但是黑客可以利用工具进行热点夺取,迫使所有用户都连入他的热点。
如何保护自己
第一步当然是培养自己操作无人机的能力,了解其局限性,拥有良好的实践力。使用wifi有优势,意味着你可以控制机器,但你需要从安全的角度,比如无线安全协议、加密和开放端口来考虑这些问题。对于更敏感的应用程序,进行命令操作时需要有更安全的选项以及权限控制。

© 著作权归作者所有

共有 人打赏支持
微博士
粉丝 2
博文 4
码字总数 3538
作品 0
杭州
CEO
极客教学:如何使用树莓派击落&劫持无人机

极客教学:如何使用树莓派击落&劫持无人机 本教程的目的是帮助大家理解如何研究未受保护的无线通信的安全风险所在,同时我们希望大家不要对技术进行滥用。我们这里采用的例子是一个流行的无人...

技术小牛人
2017/11/22
0
0
基于树莓派如何开发机器人(附PPT+视频) | 硬创公开课

导语:树莓派是为学习计算机编程教育而设计的一种微型电脑,其系统是基于Linux的, 虽然只有信用卡大小,但视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。因此自问世以来,受到了...

金红
2017/03/09
0
0
预告:基于树莓派如何开发机器人 | 硬创公开课

此前我们收到读者反馈,想听一节关于如何用树莓派开发机器人。树莓派为学习计算机编程教育设计的一种微型电脑,其系统基于Linux, 只有信用卡大小但视频、音频等功能通通皆有,可谓是“麻雀虽...

金红
2017/02/16
0
0
树莓派随身工具箱:中间人劫持获取控制权

  *本文原创作者:Rc4x,本文属FreeBuf原创奖励计划,未经许可禁止转载   导读   上文讲解了树莓派随身工具箱的环境搭建,这段时间又对其进行了一些优化,主要是从便携美观上面改进。同...

FreeBuf
04/26
0
0
树莓派pi3 串口问题的解决办法

转载: https://blog.csdn.net/aguangg6655la/article/details/54985423 其他参考1:https://blog.csdn.net/xukai871105/article/details/22713925 其他参考2:https://www.briandorey.com/......

zhenguo26
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
2
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
117
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
4
0
我为什么用GO语言来做区块链?

Go语言现在常常被用来做去中心化系统(decentralised system)。其他类型的公司也都把Go用在产品的核心模块中,并且它在网站开发中也占据了一席之地。 我们在决定做Karachain的时候,考量(b...

HiBlock
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部