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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-78306 — Эксплойт proof-of-concept, использующий инъекцию команд DUML через Bluetooth дронов DJI, отправляющий неаутентифицированные команды для чтения учётных данных, изменения конфигурации Wi-Fi и управления системами летательного аппарата. | Kitploit
Инструменты/GitHubGitHub/wh02m1/cve-2026-78306
Безопасность встроенных системБезопасность BluetoothБезопасность IoTГенерация полезной нагрузкиАнализ уязвимостейЭксплуатацияБезопасность беспроводных сетейТестирование на ПроникновениеБезопасность оборудования и IoT
GitHubwh02m1/cve-2026-78306

CVE-2026-78306

Эксплойт proof-of-concept, использующий инъекцию команд DUML через Bluetooth дронов DJI, отправляющий неаутентифицированные команды для чтения учётных данных, изменения конфигурации Wi-Fi и управления системами летательного аппарата.

4 ч 33 мин назадЕщё не проверено

Популярное

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

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

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

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

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

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

Описание

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

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

  • Get SSID
  • Get PSK
  • Get MAC address

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

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

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

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

ПродуктЗатронутая версия
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

ДЕМО

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-POC.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 дрона

image

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

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

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

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

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

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

Команды управления радиоинтерфейсами реализованы через соответствующие обработчики dji_network.

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

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

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

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

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

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

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

Добавление команды: редактируйте commands.json, а не код

Меню генерируется из commands.json при запуске. Чтобы добавить команду, добавьте новый объект в список commands раздела. Команда появится при следующем запуске POC.

Пример:

root@kitploit:~
{
  "label": "GET Channel",
  "cmd_set": "0x07",
  "cmd_id": "0x2c",
  "receiver": "0x07",
  "payload": "",
  "tier": "read",
  "bt_reply": true,
  "note": "wms_evt_get_chan -> wifi_mgmt_get_chan."
}

Поля команды

Получатель по умолчанию — 0x07 (network:0), отправитель по умолчанию — 0x02 (mobile:0).


Конструкторы полезной нагрузки

Интерактивные конструкторы полезной нагрузки определены в payload_builders.py.

Доступные конструкторы включают:

  • ssid
  • psk
  • country
  • mac
  • channel
  • bss_type
  • power_level
  • raw

Чтобы добавить новый конструктор, реализуйте функцию, зарегистрируйте её в BUILDERS и укажите её имя в commands.json.


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

Команды, классифицированные как 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:

Информация DOES берётся из поля note команды, а дополнительные предупреждения — из поля warn в commands.json.


Параметры

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

Параметр можно выбрать по имени, указать его значение, преобразовать в выбранную ширину с прямым порядком байтов и отправить с помощью set_cfg_item (0x03/0xf9).

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


Макросы

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

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

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


Файлы


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

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

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

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

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

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

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

Скачать инструмент
КомандаЧто делает
GET SSIDПолучает настроенный SSID Wi-Fi.
GET PSKПолучает предварительный общий ключ WPA2 Wi-Fi.
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Изменяет настроенный SSID Wi-Fi.
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 и дополнительно очищает системный журнал.
ПолеОбязательноЗначение
labelДаТекст, отображаемый в меню.
cmd_setДаИдентификатор набора команд DUML.
cmd_idДаИдентификатор команды DUML.
receiverДаБайт получателя на линии, (index << 5) | type.
payloadНетПолезная нагрузка в hex.
tierНетread, write или danger.
builderНетИнтерактивный конструктор полезной нагрузки.
authНетУказывает, что требуется доверенный UUID.
bt_replyНетУправляет тем, ожидает ли POC ответа Bluetooth.
senderНетБайт отправителя; по умолчанию 0x02.
afterНетНеобязательное последующее действие.
noteНетОписание обратной разработки, отображаемое POC.
warnНетДополнительный текст предупреждения, отображаемый для опасных команд.
ФайлРоль
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.