Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Dji_ble_vuln — Iniezione di comandi DUML su drone DJI via Bluetooth — Proof of Concept per CVE-2026-78306 | Kitploit
Strumenti/GitHubGitHub/feedbeef/dji_ble_vuln
Sicurezza Sistemi EmbeddedSicurezza BluetoothSicurezza IoTGenerazione di PayloadAnalisi delle VulnerabilitàExploitSicurezza WirelessCommand and ControlSicurezza Hardware e IoT
GitHubfeedbeef/dji_ble_vuln

Dji_ble_vuln

Iniezione di comandi DUML su drone DJI via Bluetooth — Proof of Concept per CVE-2026-78306

111 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

CVE-2026-78306 — POC di Command Injection DUML su drone DJI via Bluetooth

CVE-2026-78306

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

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

image image

Descrizione

I droni DJI espongono un'interfaccia Bluetooth utilizzata per stabilire una connessione all'interfaccia Wi-Fi del drone e scambiare le credenziali Wi-Fi.

L'interfaccia Bluetooth verifica l'UUID attendibile del dispositivo per tre comandi:

  • Get SSID
  • Get PSK
  • Get MAC address

I comandi rimanenti non richiedono lo stesso controllo di autenticazione. Di conseguenza, un attaccante remoto nel raggio d'azione del Bluetooth potrebbe essere in grado di inviare comandi DUML non autorizzati al drone.

A seconda del comando, un attaccante potrebbe essere in grado di modificare la configurazione del drone, incluso il cambio della password Wi-Fi e potenzialmente ottenere l'accesso alla rete interna del drone; abilitare o disabilitare le interfacce radio; riavviare o spegnere il velivolo; ripristinare la configurazione, che cancella tutti i video e le foto catturate dal drone; ed eseguire altre azioni.

Il POC fornisce un registro dei comandi che consente di testare i comandi disponibili senza modificare il codice sorgente Python. Il registro dei comandi, inclusi il comando, il ricevitore, i requisiti di autenticazione e la descrizione di ciascun comando, è definito in commands.json.

Prodotti interessati


DEMO

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

Installazione

1. Installare il 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. Accendere il drone

3. Eseguire il POC

root@kitploit:~
python3 ble_console.py

4. Dopo la scansione selezionare l'SSID del drone

Riferimento dei comandi

I seguenti comandi sono registrati in commands.json. Il POC separa i comandi in operazioni di lettura, configurazione, controllo radio, reset, sistema e parametri.

Comandi di lettura

Comandi di scrittura della configurazione

Queste operazioni sono classificate come danger nel POC e richiedono quindi una conferma esplicita prima di essere inviate.

Comandi di controllo radio

Comandi di reset

ComandoCosa fa
Factory Reset WIFIRipristina la configurazione Wi-Fi allo stato predefinito.
Factory Restore ParamsRipristina la tabella dei parametri di configurazione di rete ai valori di fabbrica.

Il POC contrassegna entrambe le operazioni come pericolose perché modificano la configurazione persistente.

Comandi di sistema

Comandi sui parametri

ComandoCosa fa
Change a parameterCambia un parametro di configurazione del drone usando il suo hash del nome a 32 bit.
Reset a parameterRipristina un parametro di configurazione al valore predefinito del firmware.

Il POC ottiene i nomi dei parametri da flyc_parameters.txt e fornisce una selezione interattiva dei parametri. Per aggiungere un parametro noto che si desidera modificare o ripristinare, aggiungere il suo nome a flyc_parameters.txt. Il parametro sarà quindi disponibile per la selezione all'avvio del POC.

Schermata di conferma

I comandi classificati come danger richiedono una conferma esplicita prima della trasmissione.

La schermata di conferma mostra informazioni quali:

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:

Parametri

La funzione Change a parameter fornisce accesso ai parametri di configurazione noti elencati in flyc_parameters.txt.

Reset a parameter utilizza reset_cfg_item per ripristinare il parametro selezionato al valore predefinito del firmware.

Per un elenco completo dei parametri estratti e maggiori dettagli, consultare la pagina wiki FLYC Parameters.


Macro

Il POC fornisce inoltre diverse macro predefinite:

MacroDescrizione
Restart WifiArresta e avvia il Wi-Fi (0x42 seguito da 0x41).
SET NEW PSK + Restart wifiCambia la PSK e poi riavvia il Wi-Fi.
Probe read commandsInvia i comandi di lettura registrati e segnala quali comandi rispondono.

Le macro sono definite separatamente dalle singole voci dei comandi.


File


⚠️ Disclaimer

⚠️ AVVERTENZA: Questo proof of concept è destinato esclusivamente a scopi educativi, di ricerca sulla sicurezza e di penetration testing autorizzato.

Questo POC dimostra problemi di sicurezza nell'interfaccia di gestione dei comandi Bluetooth/DUML dei droni DJI. Alcuni comandi possono modificare la configurazione del dispositivo, disabilitare le interfacce radio, interrompere la connettività, riavviare o spegnere il velivolo, ripristinare la configurazione o eliminare i dati memorizzati.

⚠️ NON utilizzare questo POC contro qualsiasi velivolo, dispositivo, rete o sistema di cui non si è proprietari o per cui non si dispone di esplicita autorizzazione al test.

Alcuni comandi possono causare perdita di dati, modifiche alla configurazione, perdita di connettività, interruzione del dispositivo o altre conseguenze indesiderate. I test devono essere eseguiti solo in un ambiente controllato in cui il velivolo, le persone e le proprietà circostanti non siano a rischio.

Gli autori non sono responsabili per eventuali danni, perdita di dati, interruzione del servizio, funzionamento del velivolo o altre conseguenze derivanti dall'uso o dall'abuso di questo POC.

⚠️ Utilizzando questo POC, si accetta la responsabilità di garantire che i propri test siano autorizzati e conformi a tutte le leggi, i regolamenti e i requisiti di divulgazione responsabile applicabili.

Scarica lo strumento
ProdottoVersione interessata
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
ComandoCosa fa
GET SSIDRecupera l'SSID Wi-Fi configurato.
GET PSKRecupera la chiave pre-condivisa WPA2 del Wi-Fi.
GET MACRecupera l'indirizzo MAC dell'AP Wi-Fi.
GET Country CodeRecupera il codice paese normativo di due lettere.
GET ChannelRecupera il canale Wi-Fi attualmente attivo.
GET BandRecupera la selezione di banda 2.4/5 GHz configurata.
GET RSSIInterroga l'handler RSSI; questa build del firmware contiene un'implementazione stub.
GET WiFi/BT statusRecupera lo stato delle radio Wi-Fi e Bluetooth.
GET Device Info/ModelRecupera le informazioni sul dispositivo e sul modello.
GET VersionRecupera la versione del daemon.
GET Bluetooth NameRecupera il nome del dispositivo Bluetooth.
ComandoCosa fa
SET SSIDCambia l'SSID Wi-Fi configurato.
SET PSKCambia la password Wi-Fi configurata.
SET MAC AddressCambia la configurazione BSSID Wi-Fi a runtime.
SET Country CodeCambia il codice paese normativo configurato.
SET Country Code ExtGestisce la configurazione estesa del codice paese.
SET ChannelCambia il canale Wi-Fi e causa il riavvio dell'AP.
ComandoCosa fa
Start WIFIAvvia l'interfaccia Wi-Fi e i servizi associati.
Stop WIFIArresta l'interfaccia Wi-Fi.
Restart WIFI + BTRiavvia i sottosistemi Wi-Fi e Bluetooth.
Start BluetoothAvvia il sottosistema Bluetooth.
Stop BluetoothArresta il sottosistema Bluetooth e termina la sessione corrente.
Sysmode power controlControlla lo stato di alimentazione Wi-Fi/Bluetooth.
ComandoCosa fa
ftpd_startAvvia il servizio dji_ftpd.
storage_export_enableAbilita la configurazione di esportazione dello storage.
storage_export_disableDisabilita la configurazione di esportazione dello storage.
play_soundAttiva un suono del velivolo.
muteDisattiva l'audio dell'altoparlante del velivolo.
unmuteRiattiva l'audio dell'altoparlante del velivolo.
reboot_plainRiavvia il velivolo.
reboot_poweroffSpegne il velivolo.
reboot_powersaveMette il velivolo in modalità risparmio energetico.
device_reset L1 configRipristina le configurazioni di sistema, flight controller, gimbal, camera, Wi-Fi e SDR.
device_reset L2 +MEDIAEsegue il reset L1 e cancella lo storage multimediale, incluse le foto e i video catturati dal drone.
device_reset L3 +logEsegue il reset L2 e cancella inoltre i log di sistema.
FileRuolo
ble_console.pyPunto di ingresso principale, menu ed esecuzione dei comandi.
commands.jsonRegistro dei comandi e descrizioni dei comandi.
ble_transport.pyScansione GATT Bluetooth, connessione e gestione delle risposte.
duml_protocol.pyCostruzione dei pacchetti DUML v1 e gestione del CRC.
duml_decoders.pyDecodifica delle risposte e gestione dei codici di ritorno.
payload_builders.pyGenerazione interattiva dei payload.
parameters.pyHashing e operazioni sui parametri di configurazione.
terminal.pyUI del terminale, prompt e gestione dell'output.
flyc_parameters.txtNomi dei parametri di configurazione noti.
requirements.txtDipendenze Python.