首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何劫持大疆Spark无人机

如何劫持大疆Spark无人机

作者头像
C4rpeDime
发布2018-08-29 11:10:01
1.8K0
发布2018-08-29 11:10:01
举报
文章被收录于专栏:黑白安全黑白安全
如何劫持大疆Spark无人机 渗透测试 第1张
如何劫持大疆Spark无人机 渗透测试 第1张

写在前面的话

对于我们每个人来说,被犯罪分子骗走血汗钱那肯定是件很悲伤的事。随着物联网(IoT)的快速发展,可远程控制的设备已成为我们日常生活中不可或缺的一部分。但在享受方便的同时有一个明显的缺点暴露出来———它们也可以被犯罪分子利用。有没有想过攻击者可能只是坐在家中上,就可以控制您的设备飞到他们手里。是不是觉得不可能?但是我们已经成功劫持了大疆Spark无人机,将上面的假想照进现实。看看我们是怎么做到的吧!

介绍

一直以来,大疆无人机深受黑客的关注。他们主要对破解无人机的某些功能,比如设置更高的控制通道频率,消除飞行高度限制或禁飞区等限制感兴趣。此外,还有一些关于越狱无人机的信息。公开的知识你可以在这个Github,还有这个wiki中找到。

大疆Spark是大疆无人机非专业系列中的一款设备。于2017年发布,作为业余航空摄影的无人机销售。在一些方面上,它比其他型号差一些:例如,电池满电的情况下只能持续16分钟的飞行时间。但他与(Phantom 4和Mavic)相比,Spark便宜了499美元。

Spark采用Android 4.4为核心的Leadcore LC1860C ARMv7-A CPU。更新文件带有.sig扩展名,使用RSA-SHA256进行签名,其中一些文件使用AES算法进行加密。其他网络安全爱好者已经公开了这种AES密钥,因此可以使用该工具从文件中提取加密的字段数据。在无人机固件中,发现有大量来确保设备正常运行的原生应用程序。

如何劫持大疆Spark无人机 渗透测试 第2张
如何劫持大疆Spark无人机 渗透测试 第2张

大疆Spark配备了一组外部接口:

  1. 用于PC连接的USB接口;
  2. 用于闪存连接器的扩展;
  3. 通过Wi-Fi来控制设备的手机应用;
  4. 通过2.412-2.462 GHz的遥控器来管理设备。
如何劫持大疆Spark无人机 渗透测试 第3张
如何劫持大疆Spark无人机 渗透测试 第3张

大疆还设计了大疆 Assistant 2应用程序。该应用程序可以通过USB操作连接到台式电脑的设备,可以为其更新固件,更改Wi-Fi网络设置等。

在浏览社区资料时,我们发现了改变无人机达到最大高度的脚本websocket_tool.py。每次请求会在web-socket server写入新的值。这个web-socket server是由大疆 Assistant 2应用程序启动的。换句话说,该应用程序有2个接口:

  1. 图形用户界面
  2. web-socket接口。

从一台你认为安全的计算机上感染系统比使用传统方法更容易。正因为这样导致了连接到PC的手机被各种恶意软件感染。所以,我们决定复现这个场景并仔细研究web-socket接口。

二.Web-socket服务器

我们推出了最新的大疆 Assistant 2 1.1.6版本,并将带有V01.00.0600固件版本的大疆 Spark连接到电脑。让我们尝试访问Web-socket服务器。为了使用web sockets,我们使用了websocket-client包中的wsdump.py工具。

如何劫持大疆Spark无人机 渗透测试 第4张
如何劫持大疆Spark无人机 渗透测试 第4张

服务器响应表示在URL ws:// victim:19870 /上没有服务。在运行web_socket_tool.py脚本后,我们找到了一个有效的URL - / general。

如何劫持大疆Spark无人机 渗透测试 第5张
如何劫持大疆Spark无人机 渗透测试 第5张

可以看见,服务器不需要授权就可以使用。但是它的响应是加密的,这说明接口只能用于大疆软件而不是用户。那么问题来了:它传递了什么?我们再看客户端和服务器之间的消息是如何加密的。在分析旧版大疆 Assistant 2版本时,我们发现它们以纯文本与服务器通信。之后,我们了解到加密机制已用于1.1.6版本,这就是为什么来自社区资料的脚本没有加密。

三.加密算法

首先,我们检查了加密的文本属性。每次应用程序重新运行时,加密文本保持相似。无人机重启也不会改变它。在Mac上运行也得到相同的结果。这些表明加密密钥不依赖于会话或使用的操作系统。因此,我们假设是硬编码的。

web-socket服务器的代码存储在大疆WebSocketServer.dll库中。借助工具(例如,用于PEiD的Krypto ANALyzer),我们确定了算法 – AES和本地化加密程序。

如何劫持大疆Spark无人机 渗透测试 第6张
如何劫持大疆Spark无人机 渗透测试 第6张
如何劫持大疆Spark无人机 渗透测试 第7张
如何劫持大疆Spark无人机 渗透测试 第7张

即使对AES知之甚少,也可以确定使用的加密方式。唯一需要的是将反编译的代码与Github的开放源代码进行比较。发现使用CBC模式。通过分析交叉引用,我们可以找到初始化的加密密钥。

如何劫持大疆Spark无人机 渗透测试 第8张
如何劫持大疆Spark无人机 渗透测试 第8张

四.破解用户界面

我们所需要做的就是将传输的数据加密/解密到wsdump.py脚本中,并且我们将获得应用程序发送给我们的解密数据。在我们的github修改了wsdump.py脚本。

如何劫持大疆Spark无人机 渗透测试 第9张
如何劫持大疆Spark无人机 渗透测试 第9张

除了关于应用程序版本,设备类型等的信息外,还有无人机管理服务的URL列表。

如何劫持大疆Spark无人机 渗透测试 第10张
如何劫持大疆Spark无人机 渗透测试 第10张

这些服务可以通过web-socket接口远程处理。

五.计划一次攻击

即使没有专门的控制器,大疆无人机还可以通过智能手机进行控制。控制器可以作为Spark Combo包的一部分销售,也可以单独销售。如果没有控制器,智能手机应用程序是控制大疆Spark的唯一选择。无人机会创建一个Wi-Fi热点,该热点通过WPA2协议进行保护,手机可以连接此热点来控制无人机,但该热点只允许一个用户连接。 我们进行了一系列实验,从Wi-Fi热点对驾驶员进行认证。如果无人机在低空飞行时丢失了驾驶员的信号,它最终会掉落到地面。但是,如果驾驶员在无人机达到高空后取消了身份验证,则该设备的行为会十分奇怪,它会提高RPM的速度并达到更高的高度。所以,需要一个线路不让无人机像鸽子一样飞走。我们在实验使用的线路不够长,无法检查无人机可以达到的最大高度,事实证明Spark只是一个无线网络的囚徒。

web-socket接口授予Wi-Fi网络的完全访问权限。通过与已启动 web-socket服务器的计算机建立网络连接,攻击者可以查看到Wi-Fi设置并连接到另一个人的无人机。但是如果设置发生了变化。无人机将失去与用户的连接,这样攻击者将成为无人机的唯一拥有者。

总而言之,典型的攻击场景可能如下所示(我们从GitHub脚本中复制了json-commands格式)。

为了使攻击成功,网络犯罪分子会感染受害者的系统并远程追踪无人机,通 过连接受害者计算机,启动大疆 Assistan 2。确切的时间可以通过19870端口来确定,连接到web-socket服务器ws://victim:19870 执行以下操作将密码更改为无人机wi-fi热点: 1.请求ws://victim:19870/generalurl从服务器响应中获取文件值。

如何劫持大疆Spark无人机 渗透测试 第11张
如何劫持大疆Spark无人机 渗透测试 第11张

"FILE":"1d9776fab950ec3f441909deafe56b1226ca5889"

2.发送以下命令

ws://victim:19870/controller/wifi/<FILE> {"SEQ":"12345","CMD":"SetPasswordEx","VALUE":"12345678"

如何劫持大疆Spark无人机 渗透测试 第12张
如何劫持大疆Spark无人机 渗透测试 第12张

3.之后,Wi-Fi密码将在不知情的情况下更改为受害者。 改之前:

如何劫持大疆Spark无人机 渗透测试 第13张
如何劫持大疆Spark无人机 渗透测试 第13张

改之后:

如何劫持大疆Spark无人机 渗透测试 第14张
如何劫持大疆Spark无人机 渗透测试 第14张

4.要使更改生效,重新启动Wi-Fi模块

{"SEQ":"12345","CMD":"DoRebootWifi"}

如何劫持大疆Spark无人机 渗透测试 第15张
如何劫持大疆Spark无人机 渗透测试 第15张

5.然后用智能手机连接到无人机。

如何劫持大疆Spark无人机 渗透测试 第16张
如何劫持大疆Spark无人机 渗透测试 第16张

6.等待USB拔出并劫持无人机。

如何劫持大疆Spark无人机 渗透测试 第17张
如何劫持大疆Spark无人机 渗透测试 第17张

这个场景在大疆Spark无人机上进行了测试,但它应该与所有兼容大疆 Assistant 2的无人机都有关。发行说明中提供了无人机的列表。

如何劫持大疆Spark无人机 渗透测试 第18张
如何劫持大疆Spark无人机 渗透测试 第18张

这种类型的攻击适用于所有支持的操作系统和默认防火墙。它可以在有线和公共无线网络中进行。为了不手动执行所有程序,这里是我们的PoC

USB和物联网

到目前为止,几乎所有的智能设备都可以通过USB连接(如PC或笔记本电脑)上传一些文件,更新设备固件(大多数设备只能通过USB进行充电)等日常行为,这可能会造成很大程度的威胁,因为被感染的设备可能很容易感染其他设备。网络犯罪分子还可以根据自己的喜好更改设置,将恶意固件上传到设备。当设备连接到其他PC /笔记本电脑时,感染会蔓延。

在物联网时代,问题会变得更加严重,所以智能设备开发人员应集中注意力在设备连接场景上,并设计身份验证和授权机制以及签名固件的受信任引导。否则,当智能汽车通过接口受到感染,车主不得不向犯罪分子支付赎金。

时间线:

09/25/2017 – 关于发送漏洞的第一个通知; 09/28/2017 – 发送技术细节; 10/12/2017 – 接受的漏洞和赏金的数量; 12/20/2017 – 赏金支付。

结论

大疆公司被认为是消费和商业无人机市场的领导者。根据维基百科,它在消费无人机市场占有巨大的市场份额; 到2021年它将生产约400万架无人机。可见一旦无人机出现漏洞那将十分危险——它们影响到大量用户和组织。这种情况已经发生过,例如SSL密钥和XSS漏洞。还有自从一架无人驾驶飞机撞上白宫的南草坪,美国陆军禁止大疆无人机。

由于大疆软件存在以下安全问题,可能会出现以下攻击方法。

1.Web-socket服务器侦听所有网络接口。 2.使用硬编码加密密钥与Web-socket服务器通信。 3.使用Web-socket界面的授权。 4.数据可以很容易获得。

Wi-Fi攻击可以劫持无人驾驶飞机,可能的情况也不止这样,Web-socket接口具有许多功能,可能使攻击者可以更改无人机的设置访问机密数据。

github:https://github.com/embedi/dji-ws-tools/blob/master/dji_wsdump.py 工具:    https://github.com/fvantienen/dji_rev/blob/master/tools/image.py

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-084,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面的话
  • 介绍
  • 二.Web-socket服务器
  • 三.加密算法
  • 四.破解用户界面
  • 五.计划一次攻击
  • USB和物联网
  • 时间线:
  • 结论
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档