Protocol Fingerprinting - nicholasaleks/Damn-Vulnerable-Drone GitHub Wiki
Determining the MAVLink protocol version to exploit specific vulnerabilities.
Damn Vulnerable Drone > Attack Scenarios > Reconnaissance > Protocol Fingerprinting
In this scenario, the attacker aims to identify various MAVLink protocol parameters such as the version, system ID, component ID, and whether packet signing is enabled. By leveraging MAVLink protocol analysis, the attacker can fingerprint the MAVLink communication to gather critical information about the drone system.
⚠️ Solution Guide – Click to reveal
Use Wireshark to capture MAVLink packets. Follow the setup guide from the Packet Sniffing scenario.
Install Wireshark:
sudo apt install wireshark
Configure Wireshark to filter MAVLink traffic using the protocol’s magic bytes:
(mavlink_proto.magic == 0xFE) || (mavlink_proto.magic == 0xFD)
Optionally, filter by MAVLink 2.0:
mavlink_proto.magic == "MAVLink 2.0"
Analyze the captured packets. Look for version information in the MAVLink header as described in the MAVLink Version Guide.
Identify the System ID and Component ID from the MAVLink headers:
- System ID: Identifies the drone or ground station
- Component ID: Identifies the subsystem (e.g., autopilot, camera)
Check for the presence of MAVLink signature fields in captured packets. See the Message Signing Guide for how to detect and interpret message signing in MAVLink 2.0.