Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Dji_ble_vuln — DJI Drone DUML Command Injection over Bluetooth — Proof of Concept для CVE-2026-78306 | Kitploit
Инструменты/GitHubGitHub/feedbeef/dji_ble_vuln
Безопасность встроенных системБезопасность BluetoothБезопасность IoTГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияБезопасность беспроводных сетейКомандование и УправлениеБезопасность оборудования и IoT
GitHubfeedbeef/dji_ble_vuln

Dji_ble_vuln

121 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DJI Drone DUML Command Injection over Bluetooth — Proof of Concept для CVE-2026-78306

Репозиторий

CVE-2026-78306 — POC внедрения команд DUML через Bluetooth в дронах DJI

CVE-2026-78306

Запись CVE: https://www.cve.org/CVERecord?id=CVE-2026-78306

NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-78306

image image

Описание

Дроны DJI предоставляют Bluetooth-интерфейс, используемый для установления соединения с Wi-Fi-интерфейсом дрона и обмена учётными данными Wi-Fi.

Bluetooth-интерфейс проверяет доверенный UUID устройства для трёх команд:

  • Get SSID
  • Get PSK
  • Get MAC address

Для остальных команд такая же проверка аутентификации не требуется. В результате удалённый атакующий в пределах радиуса действия Bluetooth может отправлять дрону несанкционированные команды DUML.

В зависимости от команды атакующий может изменить конфигурацию дрона, включая смену пароля Wi-Fi и потенциальное получение доступа к внутренней сети дрона; включение или отключение радиинтерфейсов; перезагрузку или выключение аппарата; сброс конфигурации, что приводит к удалению всех видео и фотографий, снятых дроном; а также выполнение других действий.

POC предоставляет реестр команд, позволяющий тестировать доступные команды без изменения исходного кода Python. Реестр команд, включая команду, получателя, требования аутентификации и описание каждой команды, определён в commands.json.

Затронутые продукты


ДЕМО

https://github.com/user-attachments/assets/57f51df2-5160-404c-9fd3-2a3a8b700008

Установка

1. Установите POC

root@kitploit:~
# Clone the repository
git clone https://github.com/Wh02m1/CVE-2026-78306.git
cd CVE-2026-78306-POC

# Create and activate a Python virtual environment
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install -r requirements.txt

2. Включите дрон

3. Запустите POC

root@kitploit:~
python3 ble_console.py

4. После сканирования выберите SSID дрона

Справочник команд

Следующие команды зарегистрированы в commands.json. POC разделяет команды на операции чтения, конфигурации, управления радиоинтерфейсами, сброса, системные и параметрические.

Команды чтения

Команды записи конфигурации

Эти операции классифицируются в POC как danger и поэтому требуют явного подтверждения перед отправкой.

Команды управления радиоинтерфейсами

Команды сброса

КомандаЧто делает
Factory Reset WIFIВосстанавливает конфигурацию Wi-Fi до состояния по умолчанию.
Factory Restore ParamsВосстанавливает таблицу параметров сетевой конфигурации до заводских значений.

POC помечает обе операции как опасные, поскольку они изменяют постоянную конфигурацию.

Системные команды

Параметрические команды

КомандаЧто делает
Change a parameterИзменяет параметр конфигурации дрона, используя 32-битный хеш его имени.
Reset a parameterСбрасывает параметр конфигурации до значения по умолчанию в прошивке.

POC получает имена параметров из flyc_parameters.txt и предоставляет интерактивный выбор параметров. Чтобы добавить известный параметр, который вы хотите изменить или сбросить, добавьте его имя в flyc_parameters.txt. После этого параметр станет доступен для выбора при запуске POC.

Экран подтверждения

Команды, классифицированные как danger, требуют явного подтверждения перед отправкой.

Экран подтверждения отображает такую информацию, как:

root@kitploit:~
──────────────────────────────────────────────────────────────────────
  !!!  DANGEROUS COMMAND  !!!
──────────────────────────────────────────────────────────────────────
 COMMAND    device_reset L1 config
 ROUTE      00/de -> ve_air:1
 PAYLOAD    11 01 00 00 00 00
 DOES       system / FC / gimbal / camera / wifi / sdr config reset
 WARNING    The FC configuration reset can restart the motors.
──────────────────────────────────────────────────────────────────────
 Type YES to send:

Параметры

Функция Change a parameter предоставляет доступ к известным параметрам конфигурации, перечисленным в flyc_parameters.txt.

Reset a parameter использует reset_cfg_item для восстановления выбранного параметра до значения по умолчанию в прошивке.

Полный список извлечённых параметров и дополнительные сведения см. на странице вики FLYC Parameters.


Макросы

POC также предоставляет несколько предопределённых макросов:

МакросОписание
Restart WifiОстанавливает и запускает Wi-Fi (0x42, затем 0x41).
SET NEW PSK + Restart wifiИзменяет PSK, а затем перезапускает Wi-Fi.
Probe read commandsОтправляет зарегистрированные команды чтения и сообщает, какие команды отвечают.

Макросы определены отдельно от отдельных записей команд.


Файлы


⚠️ Отказ от ответственности

⚠️ ВНИМАНИЕ: Данное proof of concept предназначено строго для образовательных целей, целей исследования безопасности и авторизованного тестирования на проникновение.

Данный POC демонстрирует проблемы безопасности в интерфейсе обработки команд Bluetooth/DUML дронов DJI. Некоторые команды могут изменять конфигурацию устройства, отключать радиинтерфейсы, прерывать соединение, перезагружать или выключать аппарат, сбрасывать конфигурацию или удалять сохранённые данные.

⚠️ НЕ используйте данный POC против любого аппарата, устройства, сети или системы, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.

Некоторые команды могут вызвать потерю данных, изменение конфигурации, потерю соединения, нарушение работы устройства или другие непреднамеренные последствия. Тестирование следует проводить только в контролируемой среде, где аппарат, окружающие люди и имущество не подвергаются риску.

Авторы не несут ответственности за любой ущерб, потерю данных, прерывание обслуживания, работу аппарата или иные последствия, возникшие в результате использования или неправильного использования данного POC.

⚠️ Используя данный POC, вы принимаете на себя ответственность за обеспечение авторизованности вашего тестирования и его соответствия всем применимым законам, нормативным требованиям и требованиям ответственного раскрытия информации.

Скачать инструмент
ПродуктЗатронутая версия
DJI Neo0 – 01.00.0400
DJI Neo 20 – 01.00.0500
DJI Flip0 – 01.00.1200
DJI Air 30 – 01.00.1600
DJI Air 3S0 – 01.00.1400
DJI Avata 20 – 01.00.0400
DJI Avata 3600 – 01.00.0300
DJI Mavic 30 – 01.00.1400
DJI Mavic 3 Classic0 – 01.00.0800
DJI Mavic 3 Pro0 – 01.01.0700
DJI Mavic 4 Pro0 – 01.00.0500
DJI Mini 20 – 01.07.0200
DJI Mini 30 – 01.00.0500
DJI Mini 3 Pro0 – 01.00.0900
DJI Mini 4 Pro0 – 01.00.1100
DJI Mini 5 Pro0 – 01.00.0600
КомандаЧто делает
GET SSIDПолучает настроенный Wi-Fi SSID.
GET PSKПолучает предварительный ключ Wi-Fi WPA2.
GET MACПолучает MAC-адрес точки доступа Wi-Fi.
GET Country CodeПолучает двухбуквенный код страны регулирования.
GET ChannelПолучает текущий активный Wi-Fi-канал.
GET BandПолучает настроенный выбор диапазона 2,4/5 ГГц.
GET RSSIЗапрашивает обработчик RSSI; данная сборка прошивки содержит заглушку.
GET WiFi/BT statusПолучает состояние радиомодулей Wi-Fi и Bluetooth.
GET Device Info/ModelПолучает информацию об устройстве и модели.
GET VersionПолучает версию демона.
GET Bluetooth NameПолучает имя Bluetooth-устройства.
КомандаЧто делает
SET SSIDИзменяет настроенный Wi-Fi SSID.
SET PSKИзменяет настроенный пароль Wi-Fi.
SET MAC AddressИзменяет конфигурацию BSSID Wi-Fi во время выполнения.
SET Country CodeИзменяет настроенный код страны регулирования.
SET Country Code ExtОбрабатывает расширенную конфигурацию кода страны.
SET ChannelИзменяет Wi-Fi-канал и вызывает перезапуск точки доступа.
КомандаЧто делает
Start WIFIЗапускает Wi-Fi-интерфейс и связанные службы.
Stop WIFIОстанавливает Wi-Fi-интерфейс.
Restart WIFI + BTПерезапускает подсистемы Wi-Fi и Bluetooth.
Start BluetoothЗапускает подсистему Bluetooth.
Stop BluetoothОстанавливает подсистему Bluetooth и завершает текущий сеанс.
Sysmode power controlУправляет состоянием питания Wi-Fi/Bluetooth.
КомандаЧто делает
ftpd_startЗапускает службу dji_ftpd.
storage_export_enableВключает конфигурацию экспорта хранилища.
storage_export_disableОтключает конфигурацию экспорта хранилища.
play_soundВоспроизводит звук аппарата.
muteОтключает звук динамика аппарата.
unmuteВключает звук динамика аппарата.
reboot_plainПерезагружает аппарат.
reboot_poweroffВыключает аппарат.
reboot_powersaveПереводит аппарат в режим энергосбережения.
device_reset L1 configСбрасывает конфигурации системы, полётного контроллера, подвеса, камеры, Wi-Fi и SDR.
device_reset L2 +MEDIAВыполняет сброс L1 и стирает медиахранилище, включая фотографии и видео, снятые дроном.
device_reset L3 +logВыполняет сброс L2 и дополнительно очищает системные журналы.
ФайлРоль
ble_console.pyГлавная точка входа, меню и выполнение команд.
commands.jsonРеестр команд и описания команд.
ble_transport.pyСканирование Bluetooth GATT, установление соединения и обработка ответов.
duml_protocol.pyФормирование пакетов DUML v1 и обработка CRC.
duml_decoders.pyДекодирование ответов и обработка кодов возврата.
payload_builders.pyИнтерактивная генерация полезной нагрузки.
parameters.pyХеширование и операции с параметрами конфигурации.
terminal.pyТерминальный интерфейс, приглашения и обработка вывода.
flyc_parameters.txtИзвестные имена параметров конфигурации.
requirements.txtЗависимости Python.