导语:玩无人机的兄弟都知道,摔一架是钱,摔数据更是钱。加拿大 DEF CON 多伦多联合创始人尼古拉斯·亚历克斯直接把整架无人机塞进了 Docker 容器——飞控、协同计算机、地面站、无线链路一应俱全,跑起来就能对 40 多种真实攻击场景挨个开刀。零硬件、零风险、零门槛,这正是我们红队梦寐以求的靶场。
一、为什么要造这个靶场
我们之前带大家从零焊过一台黑客无人机,那种项目讲究动手能力,飞控炸了、电子调速器烧了、GPS 模块虚焊,都是白花花的银子。问题在于:硬件昂贵、试错成本高、协议栈封闭、复现困难。一个真正想练无人机渗透的红队,往往在第一步就被劝退。
易受攻击无人机(Damn Vulnerable Drone,下文简称 DVD)项目就是为了解决这个痛点而生的。它把整套无人机系统搬进软件里——飞行控制器、协同计算机、地面控制站、连接它们的无线链路,每一块都在 Docker 容器中独立运行,全部部署在一台普通笔记本上。
这套靶场的设计者尼古拉斯·亚历克斯,是 DEF CON 多伦多分会的联合创始人兼安全研究员,目标用户就是中级水平的红队成员和黑客爱好者。他深知真实的飞控和无线电模块有多贵,也知道在真飞控上一个误操作意味着什么。所以 DVD 让你在软件里把同样的错误犯一百遍,犯到真正搞懂为止。
最硬核的一点:DVD 跑的是真正的 ArduPilot 开源飞控固件,只不过把硬件部分替换成了 SITL(Software In The Loop,即”软件在环仿真”)。ArduPilot SITL 再对接 Gazebo——一套三维机器人仿真器,提供真实的物理引擎。电机转起来、GPS 信号按真实规律漂移,无人机真的在一个渲染出来的三维世界里飞。

二、底层架构拆解
DVD 的每个 Docker 容器都在内部网络上分配了独立 IP,这个设计是有意为之的——它忠实还原了真实无人机各组件之间的真实通信关系。
飞行控制器(Flight Controller):跑 ArduPilot 固件本身,直接对接 Gazebo 仿真器,处理虚拟传感器数据。它就是无人机的大脑。
协同计算机(Companion Computer):负责 Wi-Fi 连接、相机视频流、遥测日志、自主导航,并且自带 Web 界面供我们交互。它相当于无人机的”副驾驶”。
地面控制站(Ground Control Station):飞行员一侧的整套操作——任务规划、地图、视频显示、摇杆控制,全部通过一条仿真的 MAVLink 无线链路通信。MAVLink 是无人机领域最常用的轻量级通信协议,绝大部分开源飞控和地面站都靠它说话。
仿真器本体(Simulator):Gazebo 容器,背后默默模拟物理引擎。文档明确警告:别攻击这第四个容器,它一炸整个靶场都得陪葬。其余三个,爱怎么搞怎么搞。
这四个组件一起,构成了完整的”飞控 ↔ 协同计算机 ↔ 地面站 ↔ 物理世界”四层闭环。
三、上手安装
DVD 提供两种模式,根据你有没有独立显卡来选。
3.1 精简模式(无独显)
用二维简化飞行动力学模型,无需 GPU。配置要求:4 到 8 GB 内存、2 个 CPU 核心、约 100 GB 硬盘空间。Kali Linux 或大部分 Linux 发行版都能跑,可以装实体机也可以装虚拟机。
3.2 完整模式(有独显)
跑完整的 Gazebo 三维环境,但吃配置也狠。需要 8 到 16 GB 内存、2 到 4 个 CPU 核心、100 GB 硬盘空间,至少 2 GB 显存的 GPU(要求支持 OpenGL 3.0 及以上)。完整模式只支持 Kali Linux,强烈建议装实体机,虚拟机也行但必须开启 GPU 直通。
不管哪种模式,官方只支持 Kali Linux,系统依赖只有一个:Docker 和 Docker Compose。装上 Docker 之后,整个靶场几条命令就能拉起来。
如果系统里还没装 Docker,先执行下面这一串:
kali > printf '%sn' "deb https://download.docker.com/linux/debian bullseye stable" | sudo tee /etc/apt/sources.list.d/docker-ce.list
kali > curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-ce-archive-keyring.gpg
kali > sudo apt update -y
kali > sudo apt install docker-ce docker-ce-cli containerd.io -y
kali > sudo systemctl enable docker --now
kali > sudo usermod -aG docker $USER && newgrp docker

然后克隆仓库、拉取容器镜像。以精简模式为例:
kali > git clone https://github.com/nicholasaleks/Damn-Vulnerable-Drone.git && cd Damn-Vulnerable-Drone
kali > docker compose -f docker-compose-lite.yaml pull

接下来三个脚本就能管整个靶场的生命周期:
kali > sudo ./start.sh --mode lite --Wi-Fi wpa2
kali > sudo ./status.sh
kali > sudo ./stop.sh

start.sh 这个脚本有几个参数值得记一下。--mode full 或 --mode lite 选仿真模式,对应上面两种模式。--Wi-Fi wep 或 --Wi-Fi wpa2 这两个参数是可选的,但强烈建议打开——它会在其他所有容器之外再起一个虚拟无线网络。这样整个练习就能从”你还没有网络访问权”开始,把真实的 Wi-Fi 攻击作为整个渗透流程的第一步,而不是上来就给你一根网线。
四、管理控制台
靶场跑起来之后,整个 DVD 由一个浏览器控制台统一管理,地址是 localhost:8000。

这个控制台才是整个练习真正发生的地方。界面上有一排按钮,触发五种不同的飞行状态:初始启动(Initial Boot)、武装起飞(Arm & Takeoff)、自主飞行(Autopilot Flight)、紧急返航(Emergency/Return-to-Land)、飞行后数据处理(Post-Flight Data Processing)。每一种状态都模拟了无人机任务中的一个真实阶段,也对应着不同的攻击面。
举例说,点击”武装起飞”,仿真无人机真的就飞起来了,这时候 GPS 和导航相关的攻击就有了真实的目标可下手。

为什么要把攻击场景按飞行状态切分?因为无人机在不同状态下接受不同的指令、信任不同的数据源——停在地面、起飞爬升、定速巡航、紧急返航,每一种状态下系统暴露的攻击面都不一样。按飞行阶段来设计场景,相当于把整个系统按真实业务逻辑切片,逐一打靶。
五、40+ 攻击场景库
这才是整个项目的核心。DVD 内置了 40 多个具名攻击场景,按六类组织,每一类都有专门的文档页,文档后面跟着一个带剧透警告的完整复现步骤。覆盖范围刻意拉得相当宽——有的场景是悄无声息地搜集信息,有的场景是当着你面操纵或干脆破坏系统。

5.1 侦察类(Reconnaissance)
被动指纹识别无人机本体、协同计算机、地面站。只观察飞过的 Wi-Fi 流量和 MAVLink 流量,不主动触碰任何东西。
5.2 协议篡改类(Protocol Tampering)
伪造无人机上报的遥测值——GPS 位置、电量、系统状态——然后看系统有没有对输入做基本校验。
5.3 拒绝服务类(Denial of Service)
通过 Wi-Fi 解除认证(Deauthentication)或洪水般灌满通信链路,让无人机飞不起来。
5.4 注入类(Injection)
直接往 MAVLink 数据流里塞伪造指令。从最简单的航点变更,一路到完整的协同计算机接管。
5.5 数据外传类(Exfiltration)
把无人机上的数据全部抽出来——飞行日志、任务规划、相机视频流,一个不落。
5.6 固件攻击类(Firmware Attacks)
在代码层面修改或逆向 ArduPilot 固件本身。

因为每个场景都跑在完全仿真的组件上,你能看到攻击的完整效果真实地展开。伪造的 GPS 读数真的会把仿真飞行路径带偏;通信链路被洪水灌满之后,控制真的会在你眼前变得迟钝;而你只需要盯着屏幕看,全程没有任何法律风险,也不会有真机炸机的物理风险。
六、Wi-Fi 模式 vs 非 Wi-Fi 模式
DVD 部署方式有两种,选哪种取决于你想练攻击链的哪一段。
6.1 Wi-Fi 模式
起一个真实可用的虚拟无线网络,广播一个叫 Drone_Wi-Fi 的 SSID,地址段是 192.168.13.0/24,加密方式可选弱鸡的 WEP 或者相对靠谱的 WPA2。整个练习从最一开始起步——你扮演一个还没拿到网络访问权的攻击者,必须自己动手去挣。
6.2 非 Wi-Fi 模式
跳过无线网络这一步,容器之间直连。这种模式适合只想专心练协议层攻击的人,或者你压根没在带无线网卡的 Kali 虚拟机里跑。在这种模式下,文档建议你直接假设”对无人机数据链路的初始访问已经建立”,直接进入 MAVLink 层的工作。
七、总结
易受攻击无人机把一个已经在 Web 安全领域被验证成熟的想法搬到了无人机领域——在那里,用真机练手既烧钱又危险。通过在 Docker 里仿真完整的 ArduPilot + MAVLink 无人机栈,连 Wi-Fi、视频流、物理引擎都仿真到位,DVD 给渗透测试人员、学生、研究人员提供了一个现实的、可随便糟蹋的靶标——背后有 40 多个文档化的攻击场景以及内置的复现步骤做支撑。
它不会教你开真飞机,但它会教你真飞机怎么被黑——对任何做无人机安全的人来说,这反而是更值钱的技能。
想深入无人机黑客的朋友,可以看看我们的《打造你自己的黑客无人机》系列,里面覆盖了蓝牙和 Wi-Fi 两大类设备上的攻击场景。
我们还开设了无人机黑客培训课程,11 月 10 日至 12 日下午 4 点(UTC)开课,订阅会员和订阅会员 Pro学员可参加。

关于作者:Collateral 是前乌克兰武装部队网络安全专家,曾主导数字防御作战,现为企业提供网络安全咨询服务。
原文出处:本文翻译自 Hackers Arise 专栏文章《The Damn Vulnerable Drone — Drone Hacking Without a Drone》,原作者 Collateral。原文链接:https://hackers-arise.com/the-damn-vulnerable-drone-drone-hacking-without-a-drone/














暂无评论内容