Code
As part of our research, we developed several tools including implementations of AWDL and AirDrop that we publish as open source software.
OWL
OWL is a an open implementation of the Apple Wireless Direct Link (AWDL) protocol written in C. It currently runs on Linux and macOS and requires a Wi-Fi card with support for monitor mode and frame injection.
OpenDrop
OpenDrop is a command-line tool written in Python that allows sharing files between devices directly over Wi-Fi. Its unique feature is that it is protocol-compatible with Apple AirDrop which allows to share files with Apple devices running iOS and macOS. To support communication with Apple devices, OpenDrop needs to run over an AWDL-compatible link and, thus, supports macOS and any platform that supports OWL.
OpenHaystack
Build your own ‘AirTags’ today. OpenHaystack provides a framework for tracking personal Bluetooth-capable devices. It leverages Apple’s massive Find My network to retrieve the location of offline devices.
OpenWifiPass
OpenWifiPass is a command-line tool written in Python that allows for sharing a Wi-Fi password with macOS or iOS devices. OpenWifiPass currently only supports the grantor role of Apple’s Wi-Fi Password Sharing protocol.
BTLEmap
BTLEmap is an auditing tool for Bluetooth Low Energy (BLE) environments. It allows for viewing and inspecting nearby BLE devices. The tool features a proximity view, a fingerprinting module, and a dissector for vendor-specific advertisements.
Protocol Dissectors
Wireshark dissector for Apple Wireless Direct Link (AWDL) and Apple’s CoreCapture logging framework. Note: The AWDL dissector is included in the official Wireshark builds since version 3.0.0.
proxAWDL
Tunnels a regular TCP connection through an AWDL link by exploiting the NetService API.
On macOS, you may instead also use the special XNU socket option SO_RECV_ANYIF
(0x1104
) to allow a socket to send and receive via AWDL.