当前位置: 首页 > news >正文

Damn-Vulnerable-Drone:一款针对无人机安全研究与分析的靶机工具

关于Damn-Vulnerable-Drone

Damn-Vulnerable-Drone是一款针对无人机安全研究与分析的靶机工具,广大研究人员可以利用该环境工具轻松学习、研究和分析针对无人机安全态势。

Damn Vulnerable Drone 基于流行的 ArduPilot/MAVLink 架构,其中故意留下了各种安全缺陷以供网络安全研究人员分析和研究,并以此来提升无人机领域的网络安全态势。

与飞行员利用飞行模拟器进行训练类似,我们可以使用 Damn Vulnerable Drone 模拟器深入了解现实世界的无人机系统,了解它们的弱点,并学习有效的方法来更好地提升无人机安全。

功能介绍

1、基于Docker 的环境:在完全虚拟化的基于 docker 的设置中运行,使其可访问且安全地进行无人机安全实验。

2、模拟无线网络:模拟 Wifi(802.11)接口,用于练习无线无人机安全测试。

3、机载摄像机流媒体和万向节:通过万向节和配套计算机集成,模拟 RTSP 无人机机载摄像机流媒体。

4、配套计算机 Web 界面:通过 Web 界面和模拟串行连接与飞行控制器进行配套计算机配置管理。

5、QGroundControl/MAVProxy 集成:一键启动 QGroundControl UI(仅支持 x86 架构)并集成 MAVProxy GCS。

6、MAVLink 路由器集成:通过配套计算机 Web 界面上的 MAVLink 路由器进行遥测转发。

7、动态飞行记录:完全动态的 Ardupilot 飞行箱日志存储在模拟 SD 卡上。

8、管理 Web 控制台:易于使用的模拟器管理 Web 控制台,用于触发场景和无人机飞行状态。

9、全面的安全测试场景:非常适合练习各种无人机安全测试技术,从基本的侦察到高级测试。

工具架构

工具安装

步骤 1.添加 docker apt 源:

printf '%s\n' "deb https://download.docker.com/linux/debian bullseye stable" | sudo tee /etc/apt/sources.list.d/docker-ce.list

步骤 2.导入 GPG 密钥:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-ce-archive-keyring.gpg

步骤 3.更新 apt 存储库:

sudo apt update -y

步骤 4.安装 Docker 和 Docker Compose

sudo apt install docker-ce docker-ce-cli containerd.io -y

步骤 5.启动 Docker 服务:

sudo systemctl enable docker --now

步骤 6.为用户添加 docker 权限:

sudo usermod -aG docker $USER

克隆存储库:

git clone https://github.com/nicholasaleks/Damn-Vulnerable-Drone.git && cd Damn-Vulnerable-Drone

工具使用

sudo ./start.sh -hUsage: sudo ./start.sh [OPTION]Start the Damn Vulnerable Drone simulator.Options:--wifi      使用虚拟无人机Wi-Fi网络开始模拟--no-wifi   启动模拟,立即访问无人机网络(默认)-h, --help  现实工具帮助信息和退出Example:sudo ./start.sh --wifi      # 使用虚拟Wi-Fi启动sudo ./start.sh --no-wifi   # 不使用虚拟Wi-Fi启动

工具使用演示

工具演示视频

演示视频:【点我观看】

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

Damn-Vulnerable-Drone:【GitHub传送门】

参考资料

ArduPilot - Versatile, Trusted, Open

Introduction · MAVLink Developer Guide

相关文章:

Damn-Vulnerable-Drone:一款针对无人机安全研究与分析的靶机工具

关于Damn-Vulnerable-Drone Damn-Vulnerable-Drone是一款针对无人机安全研究与分析的靶机工具,广大研究人员可以利用该环境工具轻松学习、研究和分析针对无人机安全态势。 Damn Vulnerable Drone 基于流行的 ArduPilot/MAVLink 架构,其中故意留下了各种…...

项目模块三:Socket模块

一、模块设计 1、套接字编程常用头文件展示 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <fcntl.h> 2、成员函数设计 &#xff08;1&#xf…...

Unity-Shader-语义

1、从程序传给顶点函数&#xff1a; POSITION&#xff1a;顶点坐标&#xff08;模型空间下&#xff09; NORMAL&#xff1a;法线向量&#xff08;模型空间下&#xff09; TANGENT&#xff1a;切线向量&#xff08;模型空间下&#xff09; TEXCOORD0~n&#xff1a;纹理坐标 …...

MFC工控项目实例二十四模拟量校正值输入

承接专栏《MFC工控项目实例二十三模拟量输入设置界面》 对模拟量输入的零点校正值及满量程对应的电压值进行输入。 1、在SenSet.h文件中添加代码 #include "BtnST.h" #include "ShadeButtonST.h"/ // SenSet dialogclass SenSet : public CDialog { // Co…...

analysis-ik分词器

analysis-ik分词器 1、安装离线在线 2、使用配置拓展词典 3、测试ik_smartik_max_word 1、安装 离线 使用离线安装下载地址https://release.infinilabs.com/analysis-ik/stable/找到对应es版本的ik分词器、下载zip后放到/elasticsearch/plugins/ik文件夹下。重启es即可生效 …...

开源的、基于内存的键值存储数据库redis详细介绍

目录 一、Redis的概述 1、概述 2、特点 &#xff08;1&#xff09;基本特性 &#xff08;2&#xff09;数据结构 &#xff08;3&#xff09;运行环境 二、Redis的重要作用 1、缓存 2、会话存储 3、消息队列 4、计数器 5、分布式锁 6、排行榜 7、实时数据处理 三、…...

三种容器 std::vector、std::map、std::unordered_set 的对比分析

目录 1.添加元素 1.1 std::vector 1.2 std::map 1.3 std::unordered_set 2. 查找元素 2.1 std::vector 2.2 std::map 2.3 std::unordered_set 3. 遍历容器 3.1 std::vector 使用范围基for循环(range-based for loop) 使用迭代器: 3.2 std::map 3.3 std::unord…...

Nuxt3 SSR 服务端渲染部署 PM2 全流程(Nest.js 同理)

项目打包 我们以 Nuxt3 项目为例子&#xff1a; 项目打包 执行 npm run build &#xff0c; 生成的 .output 文件夹就是部署产物&#xff08;目前不支持中文路径&#xff09;执行 npm run preview 可以本地预览效果 方式一&#xff1a;使用 Node 部署 需要服务器安装 Nod…...

如何轻松使用pip安装Git仓库中的私有Python模块(使用pip和Git仓库发布和安装私有Python模块)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Git模块 📒📝 Git仓库要求🔖 项目目录结构🔖 文件说明📝 编写setup.py📝 配置MANIFEST.in📝 推送代码到Git仓库📝 使用pip安装模块🔖 使用用户名和密码🔖 使用Personal Access Token (PAT)🔖 示例📝 更…...

写 R 包教程

R R 包开发 | 保姆级教程-CSDN博客 https://www.prestevez.com/post/r-package-tutorial/ 1、加载开发所需 R 包 library(usethis) library(devtools) library(roxygen2) 2、在当前工作路径创建 R 包 usethis::create_package("myRpkg") # 在当前路径创建 my…...

【java】数组(超详细总结)

目录 一.一维数组的定义 1.创建数组 2.初始化数组 二.数组的使用 1.访问数组 2.遍历数组 3.修改数据内容 三.有关数组方法的使用 1.toString 2. copyOf 四.查找数组中的元素 1.顺序查找 2.二分查找binarySearch 五.数组排序 1.冒泡排序 2.排序方法sort 六.数组逆置…...

@KafkaListener注解

KafkaListener(topics "${xxxx}", containerFactory "xxx") public void consume(String message) {service.save(xx); }在 Spring Boot 中&#xff0c;使用 KafkaListener 注解消费 Kafka 消息时&#xff0c;如果 service.save(cleanWikiSource) 抛出异…...

2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)

2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025) 2025 International Conference on Advances in Computer Vision Research and Applications 重要信息 2025年3月28-30日 南京 一轮截稿日期&#xff1a;2024年11月30日 EI检索稳定 早投稿&#xff0c;早审稿&a…...

第二代GPT-SoVITS V2:让声音克隆变得简单

随着人工智能技术的飞速发展&#xff0c;AI声音克隆已经成为一种趋势&#xff0c;广泛应用于各个领域。为了满足更多用户的需求&#xff0c;第二代GPT-SoVITS V2应运而生&#xff0c;它由RVC变声器创始人“花儿不哭”与AI音色转换技术Sovits开发者Rcell联合开发&#xff0c;是一…...

基于x86_64汇编语言简单教程6: 变量,常量,与运算

目录 变量 为未初始化的数据分配存储空间 多重初始化 常量 equ指令 &#xff05;assign 指令 &#xff05;define指令 算数指令 inc 自增指令 dec指令 ADD和SUB指令 imul/mul和idiv/div 实践&#xff1a;我们来写一个简单的一位数加法器 NASM逻辑指令 AND 指令 …...

Vue-router 路由守卫执行流程图

vue-router 路由守卫执行的流程图&#xff08;个人理解&#xff09; 图1 - 图2...

ES6 中函数参数的默认值

概述&#xff1a; ES 允许给函数的参数赋初始值&#xff1b; 代码示例及相关说明&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>函数参数默认值</title> </head> <body> <script&g…...

Redis知识应用索引指南

Redis&#xff0c;全称为Remote Dictionary Server&#xff0c;是一个开源的高性能键值对数据库。它以其卓越的性能、丰富的数据结构和灵活的持久化机制&#xff0c;在现代应用中扮演着至关重要的角色 1 什么是redis Redis是一个使用ANSI C语言编写的开源、跨平台的键值存储系…...

ES6扩展运算符

1.介绍&#xff1a; ... 扩展运算符能将数组转换为逗号分隔的参数序列&#xff1b; 扩展运算符&#xff08;spread&#xff09;也是三个点&#xff08;...&#xff09;。它好比 rest 参数的逆运算&#xff0c;将一个数组转为用逗号分隔的 参数序列&#xff0c;对数组进…...

【树莓派 5B】Python 版本切换

【树莓派 5B】Python 版本切换 前言整体思路具体步骤常见问题Python 无法建立与 Python3 的软连接 前言 本文基于树莓派5B 32-bit 树莓派OS&#xff0c;以 Python-3.11.2 降级到 3.9.2 为例&#xff0c;总结了在树莓派上切换 Python 版本的步骤&#xff0c;帮助大家轻松完成 P…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘&#xff1a;1块 (1T) U盘1&#xff1a;Ubuntu系统引导盘&#xff08;用于“U盘2”复制到“电脑自带硬盘”&#xff09; U盘2&#xff1a;Ubuntu系统盘&#xff08;1T&#xff0c;用于被复制&#xff09; &#xff01;&#xff01;&#xff01;建议“电脑…...