gitmyhub

BBF

Python ★ 76 updated 18d ago

Bluetooth UAP brute-forcer resolves non-discoverable BD_ADDRs via l2ping, ubertooth-rx survey included (optional), with optional DOS attack for resolved address.

BBF is a command line tool that brute-forces an unknown part of a Bluetooth device's hidden address, for authorized security testing only.

PythonBlueZLinuxsetup: moderatecomplexity 3/5

BBF is a command line security research tool for Bluetooth devices. Every Bluetooth device has an address called a BD_ADDR, made of three parts, and BBF focuses on finding one unknown part of that address, called the UAP, when you already know the other part called the LAP. It does this by trying every one of the 256 possible values and pinging each one, which usually takes a few minutes at most.

If you do not already know the LAP portion of the address, BBF can instead use an Ubertooth One hardware device to listen for nearby Bluetooth traffic and suggest candidate addresses to investigate, which you can then feed into the main sweep. Once BBF finds a complete, working address, it also tries to look up the device's readable name over the air, and can save every result it finds, including the address, name, and how it was found, to a log file for later review.

The tool is meant for security researchers and penetration testers who are authorized to test specific devices, since resolving a hidden Bluetooth address defeats the privacy protection that comes from a device being set to non-discoverable. The README is explicit that this should only be used on devices you own or have written permission to test, since locating or identifying someone else's device without consent may be illegal.

BBF runs on Linux and depends on BlueZ, the standard Linux Bluetooth stack, along with a Bluetooth adapter and root privileges to run its commands. The Ubertooth survey feature is optional and requires separate hardware. Installation is done with pip after cloning the repository from GitHub, and the tool also bundles an optional companion program that can be built separately for more advanced testing scenarios.

Where it fits