Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Dji_ble_vuln — Inyección de comandos DUML en drones DJI a través de Bluetooth — Prueba de concepto para CVE-2026-78306 | Kitploit
Herramientas/GitHubGitHub/feedbeef/dji_ble_vuln
Seguridad de Sistemas EmbebidosSeguridad BluetoothSeguridad IoTGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónSeguridad InalámbricaComando y ControlSeguridad de Hardware e IoT
GitHubfeedbeef/dji_ble_vuln

Dji_ble_vuln

1hace 0 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Inyección de comandos DUML en drones DJI a través de Bluetooth — Prueba de concepto para CVE-2026-78306

Ver Repositorio

CVE-2026-78306 — Inyección de comandos DUML en drones DJI a través de Bluetooth POC

CVE-2026-78306

Registro CVE: https://www.cve.org/CVERecord?id=CVE-2026-78306

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

image image

Descripción

Los drones DJI exponen una interfaz Bluetooth utilizada para establecer una conexión con la interfaz Wi-Fi del dron e intercambiar credenciales Wi-Fi.

La interfaz Bluetooth verifica el UUID de confianza del dispositivo para tres comandos:

  • Obtener SSID
  • Obtener PSK
  • Obtener dirección MAC

El resto de comandos no requieren la misma verificación de autenticación. Como resultado, un atacante remoto dentro del alcance Bluetooth podría enviar comandos DUML no autorizados al dron.

Dependiendo del comando, un atacante podría modificar la configuración del dron, incluyendo cambiar la contraseña Wi-Fi y potencialmente obtener acceso a la red interna del dron; habilitar o deshabilitar interfaces de radio; reiniciar o apagar la aeronave; restablecer la configuración, lo que borra todos los vídeos e imágenes capturados por el dron; y realizar otras acciones.

El POC proporciona un registro de comandos que permite probar los comandos disponibles sin modificar el código fuente de Python. El registro de comandos, incluyendo el comando, el receptor, los requisitos de autenticación y la descripción de cada comando, se define en commands.json.

Productos afectados


DEMO

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

Instalación

1. Instalar el 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. Encender el dron

3. Ejecutar el POC

root@kitploit:~
python3 ble_console.py

4. Tras el escaneo, seleccionar el SSID del dron

Referencia de comandos

Los siguientes comandos están registrados en commands.json. El POC separa los comandos en operaciones de lectura, configuración, control de radio, restablecimiento, sistema y parámetros.

Comandos de lectura

Comandos de escritura de configuración

Estas operaciones se clasifican como danger en el POC y, por lo tanto, requieren confirmación explícita antes de ser enviadas.

Comandos de control de radio

Comandos de restablecimiento

ComandoQué hace
Factory Reset WIFIRestaura la configuración Wi-Fi a su estado predeterminado.
Factory Restore ParamsRestaura la tabla de parámetros de configuración de red a los valores de fábrica.

El POC marca ambas operaciones como peligrosas porque modifican la configuración persistente.

Comandos de sistema

Comandos de parámetros

ComandoQué hace
Change a parameterCambia un parámetro de configuración del dron usando el hash de 32 bits de su nombre.
Reset a parameterRestablece un parámetro de configuración a su valor predeterminado de firmware.

El POC obtiene los nombres de los parámetros de flyc_parameters.txt y proporciona una selección interactiva de parámetros. Para añadir un parámetro conocido que desee modificar o restablecer, añada su nombre a flyc_parameters.txt. El parámetro estará entonces disponible para su selección cuando se inicie el POC.

Pantalla de confirmación

Los comandos clasificados como danger requieren confirmación explícita antes de su transmisión.

La pantalla de confirmación muestra información como:

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:

Parámetros

La función Change a parameter proporciona acceso a los parámetros de configuración conocidos listados en flyc_parameters.txt.

Reset a parameter utiliza reset_cfg_item para restaurar el parámetro seleccionado a su valor predeterminado de firmware.

Para obtener una lista completa de los parámetros extraídos y más detalles, consulte la página wiki de parámetros FLYC.


Macros

El POC también proporciona varias macros predefinidas:

MacroDescripción
Restart WifiDetiene e inicia el Wi-Fi (0x42 seguido de 0x41).
SET NEW PSK + Restart wifiCambia la PSK y luego reinicia el Wi-Fi.
Probe read commandsEnvía los comandos de lectura registrados e informa qué comandos responden.

Las macros se definen por separado de las entradas de comandos individuales.


Archivos


⚠️ Descargo de responsabilidad

⚠️ ADVERTENCIA: Esta prueba de concepto está destinada estrictamente a fines educativos, de investigación de seguridad y de pruebas de penetración autorizadas.

Este POC demuestra problemas de seguridad en la interfaz de manejo de comandos Bluetooth/DUML de DJI. Algunos comandos pueden modificar la configuración del dispositivo, deshabilitar interfaces de radio, interrumpir la conectividad, reiniciar o apagar la aeronave, restablecer la configuración o eliminar datos almacenados.

⚠️ NO utilice este POC contra ninguna aeronave, dispositivo, red o sistema que no sea de su propiedad o para el que no tenga autorización explícita de prueba.

Algunos comandos pueden causar pérdida de datos, cambios de configuración, pérdida de conectividad, interrupción del dispositivo u otras consecuencias no deseadas. Las pruebas solo deben realizarse en un entorno controlado donde la aeronave y las personas y propiedades circundantes no estén en riesgo.

Los autores no son responsables de ningún daño, pérdida de datos, interrupción del servicio, operación de la aeronave u otras consecuencias derivadas del uso o mal uso de este POC.

⚠️ Al utilizar este POC, usted acepta la responsabilidad de asegurar que sus pruebas estén autorizadas y cumplan con todas las leyes, regulaciones y requisitos de divulgación responsable aplicables.

Descargar herramienta
ProductoVersión afectada
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
ComandoQué hace
GET SSIDRecupera el SSID Wi-Fi configurado.
GET PSKRecupera la clave precompartida WPA2 del Wi-Fi.
GET MACRecupera la dirección MAC del AP Wi-Fi.
GET Country CodeRecupera el código de país regulatorio de dos letras.
GET ChannelRecupera el canal Wi-Fi actualmente activo.
GET BandRecupera la selección de banda 2.4/5 GHz configurada.
GET RSSIConsulta el manejador RSSI; esta compilación de firmware contiene una implementación stub.
GET WiFi/BT statusRecupera el estado de las radios Wi-Fi y Bluetooth.
GET Device Info/ModelRecupera la información del dispositivo y del modelo.
GET VersionRecupera la versión del daemon.
GET Bluetooth NameRecupera el nombre del dispositivo Bluetooth.
ComandoQué hace
SET SSIDCambia el SSID Wi-Fi configurado.
SET PSKCambia la contraseña Wi-Fi configurada.
SET MAC AddressCambia la configuración del BSSID Wi-Fi en tiempo de ejecución.
SET Country CodeCambia el código de país regulatorio configurado.
SET Country Code ExtGestiona la configuración extendida del código de país.
SET ChannelCambia el canal Wi-Fi y provoca el reinicio del AP.
ComandoQué hace
Start WIFIInicia la interfaz Wi-Fi y los servicios asociados.
Stop WIFIDetiene la interfaz Wi-Fi.
Restart WIFI + BTReinicia los subsistemas Wi-Fi y Bluetooth.
Start BluetoothInicia el subsistema Bluetooth.
Stop BluetoothDetiene el subsistema Bluetooth y termina la sesión actual.
Sysmode power controlControla el estado de energía de Wi-Fi/Bluetooth.
ComandoQué hace
ftpd_startInicia el servicio dji_ftpd.
storage_export_enableHabilita la configuración de exportación de almacenamiento.
storage_export_disableDeshabilita la configuración de exportación de almacenamiento.
play_soundActiva un sonido de la aeronave.
muteSilencia el altavoz de la aeronave.
unmuteActiva el sonido del altavoz de la aeronave.
reboot_plainReinicia la aeronave.
reboot_poweroffApaga la aeronave.
reboot_powersaveColoca la aeronave en modo de ahorro de energía.
device_reset L1 configRestablece las configuraciones del sistema, controlador de vuelo, gimbal, cámara, Wi-Fi y SDR.
device_reset L2 +MEDIARealiza el restablecimiento L1 y borra el almacenamiento multimedia, incluyendo las imágenes y vídeos capturados por el dron.
device_reset L3 +logRealiza el restablecimiento L2 y además borra los registros del sistema.
ArchivoRol
ble_console.pyPunto de entrada principal, menú y ejecución de comandos.
commands.jsonRegistro de comandos y descripciones de comandos.
ble_transport.pyEscaneo, conexión y manejo de respuestas GATT de Bluetooth.
duml_protocol.pyConstrucción de paquetes DUML v1 y manejo de CRC.
duml_decoders.pyDecodificación de respuestas y manejo de códigos de retorno.
payload_builders.pyGeneración interactiva de payloads.
parameters.pyHashing y operaciones de parámetros de configuración.
terminal.pyInterfaz de terminal, prompts y manejo de salida.
flyc_parameters.txtNombres de parámetros de configuración conocidos.
requirements.txtDependencias de Python.