Damn Vulnerable Drone 是一个基于流行 ArduPilot/MAVLink 架构的故意存在漏洞的无人机破解模拟器,提供了逼真的环境,用于进行动手实践的无人机破解训练。
Damn Vulnerable Drone 是一个基于流行的 ArduPilot/MAVLink 架构、故意设计为存在漏洞的无人机黑客模拟器,为动手进行无人机黑客攻击提供了一个逼真的环境。
Damn Vulnerable Drone 是一个虚拟模拟环境,专为进攻性安全专业人员设计,让他们能够安全地学习和练习无人机黑客技术。它模拟了现实世界中的 ArduPilot 和 MAVLink 无人机架构及其漏洞,提供了利用无人机系统的动手实践经验。
Damn Vulnerable Drone 旨在受控环境中提升进攻性安全技能,使其成为中级安全专业人员、渗透测试人员以及黑客爱好者的宝贵工具。
类似于飞行员使用飞行模拟器进行训练,我们可以使用 Damn Vulnerable Drone 模拟器深入了解现实世界的无人机系统,理解其漏洞,并学习利用这些漏洞的有效方法。
Damn Vulnerable Drone 平台是开源的,可免费获取,专门设计用于解决通常与无人机硬件、黑客工具和维护相关的巨额费用。其免费性质让用户能够全身心投入无人机黑客攻击,而无需担心财务问题。这种可及性使 Damn Vulnerable Drone 成为信息安全和渗透测试领域人员的重要资源,在安全环境中促进进攻性网络安全技能的发展。
Damn Vulnerable Drone 平台基于软件在环(SITL)原理运行,这是一种模拟技术,允许用户像在实际无人机上执行一样运行无人机软件,从而复现真实的无人机行为和响应。
ArduPilot 的 SITL 允许在虚拟环境中执行无人机固件,模拟真实无人机的行为,而无需物理硬件。这种模拟通过 Gazebo(一个动态的 3D 机器人模拟器)进一步增强,为无人机提供逼真的环境和物理引擎进行交互。ArduPilot 的 SITL 和 Gazebo 共同为复杂而真实的无人机模拟体验奠定了基础。
虽然当前的 Damn Vulnerable Drone 设置并未镜像每一种无人机架构或配置,但集成的战术、技术和场景广泛适用于各种无人机系统、型号和通信协议。
请仔细阅读以下说明,以确保获得稳定且性能良好的 Damn Vulnerable Drone 实验环境。
[!NOTE]
根据你计算机的性能和互联网速度,完整的端到端安装过程(包括容器构建和镜像拉取)可能需要 30-60 分钟。请耐心等待,让每一步完成后再继续。
Damn Vulnerable Drone 可根据你可用的硬件以两种模式运行:
操作系统:
硬件(最低):
图形:
软件:
精简模式推荐给无法满足完整模式 GPU 要求或希望获得更快、更轻量设置的用户。
操作系统:
硬件(最低):
图形:
软件:
以下说明应在最新版本的 Kali Linux 上执行,另请遵循 Kali 官方关于如何安装 Docker 的指南此处
git clone https://github.com/nicholasaleks/Damn-Vulnerable-Drone.git && cd Damn-Vulnerable-Drone
你可以从 Docker Hub 拉取预构建镜像,也可以在本地构建它们。 根据你想要完整模式还是精简模式,选择相应的 docker-compose 文件。
完整模式(带 Gazebo 3D 模拟器):``` docker compose -f docker-compose.yaml pull
**Lite 模式**(无需 GPU,轻量级 2D 模拟器):```
docker compose -f docker-compose-lite.yaml pull
如果你更愿意自行构建镜像(比直接拉取慢):
完整模式(包含 Gazebo 3D 模拟器):``` docker compose -f docker-compose.yaml build
**Lite 模式**(无 GPU,轻量级 2D 模拟器):```
docker compose -f docker-compose-lite.yaml build
Damn Vulnerable Drone 包含三个实用的 bash 脚本,可帮助你管理模拟器的状态。
启动脚本用于启动 Damn Vulnerable Drone 模拟器。该脚本会自动在项目目录中创建一个 dvd.log 日志文件,你可以用它来查看模拟器日志。
[!TIP]
如果你尚未构建或拉取 Damn Vulnerable Drone 镜像,start.sh脚本会自动为你拉取并构建它们。``` sudo ./start.sh -h
Usage: sudo ./start.sh [OPTION] Start the Damn Vulnerable Drone simulator.
Options: --mode [full|lite] Choose simulator mode: - full: 3D environment (GPU + drivers required) - lite: no GPU, minimal requirements --wifi [wep|wpa2] Start the simulation with a virtual drone Wi-Fi network. --no-wifi Start the simulation with instant access to the drone network (default). -h, --help Display this help and exit.
Example: sudo ./start.sh --wifi wpa2 # Starts with virtual Wi-Fi in WPA2 mode sudo ./start.sh --no-wifi # Starts without virtual Wi-Fi
#### 停止
停止脚本用于对 Damn Vulnerable Drone 模拟器及其所有虚拟接口产物执行完整清理。停止日志也会追加到 `dvd.log` 日志文件中。
`sudo ./stop.sh`
#### 状态
如果你想随时检查模拟器的状态,可以运行如下所示的状态脚本。
`sudo ./status.sh`
### Wi-Fi 模式
“Wi-Fi 模式”(`--wifi`)可实现最逼真的虚拟无人机黑客模拟。它会部署一个你可以与之交互的虚拟模拟无线网络。这个虚拟 wifi 网络充当地面站与无人机伴飞计算机之间的数据链路连接,从而让你能够从攻击者机器上开展有趣的场景。当你使用 Wi-Fi 模式部署 Damn Vulnerable Drone 时,你将能够访问“Drone_Wifi”SSID 和 192.168.13.0/24 网络。支持两种 wifi 模式:WEP 和 WPA2。
> [!WARNING]
> 10.13.0.0/24 网络用于运行模拟器基础设施,如果你攻击此网络,尤其是攻击 `10.13.0.5` 上的模拟器容器,可能会导致你的 Damn Vulnerable Drone 实例崩溃,从而需要进行可能耗时较长的重建。
### 非 Wi-Fi 模式
“非 Wi-Fi 模式”(`--no-wifi`)本质上只运行 Damn Vulnerable Drone docker 容器。
与“Wi-Fi 模式”不同,你并不局限于只能在 Kali Linux VM 中运行“非 Wi-Fi 模式”。你将能够仅通过 `docker compose up --build` 启动的容器来练习攻击 Damn Vulnerable Drone。
> [!IMPORTANT]
> 注意,“非 Wi-Fi 模式”不支持 wifi 模拟,你需要假设自己已经在无人机数据链路连接上建立了初始访问立足点(通过 10.13.0.0/24 网络)
## 架构
Damn Vulnerable Drone 模拟及核心无人机架构组件集成在 Docker 容器中,为无人机系统的每个组件提供稳定、隔离的环境。Docker 便于轻松设置、在不同系统间保持一致性能,并简化了模拟复杂无人机架构和场景的过程。
以下是 Damn Vulnerable Drone 架构的高层概览:
<p align="center">
<img src="https://raw.githubusercontent.com/nicholasaleks/Damn-Vulnerable-Drone/master/simulator/mgmt/static/images/Damn-Vulnerable-Drone-Architecture.png?raw=true" alt="Damn Vulnerable Drone Architecture"/>
</p>