Thursday, January 2, 2014

Using Pure Python to Interact With an Ubertooth and Parse Bluetooth Baseband Data

In mid 2013 I gave a talk at a conference called Lockdown in Wisconsin.  During the talk I released a pure python library for parsing rudimentary bluetooth baseband data and interacting with an Ubertooth USB device.

The core Ubertooth C libraries and tools are much more robust (and faster), but the pure python implementation provided the following:

  • Quick deployment with no need for compiling.
  • Rapid prototyping of new and custom Ubertooth tools in python.
  • Quick and easy way to hook up an Ubertooth to mobile phones and other ARM devices.
  • Ubertooth data integration into my favorite python analytic libraries
  • An excuse for me to better understand the baseband layer and pyusb

Wednesday, January 1, 2014

My 2013 DEFCON 21 Video and Audio on the Bluetooth Database project are now avalable

At DEFCON 21 I gave a talk about tracking bluetooth devices on a large scale.  The videos from this presentation are now available here.

During the presentation I released an IOS tool which sideloaded bluetooth functionality to allow an iphone to track other bluetooth devices.  The tool then sent the data to a web service for storage & analysis.  The code used to create the IOS sensor node and the corresponding server code can be found here.

The data gathered from this project showed:

  • Tracking of bluetooth devices over time via geolocation
  • The percentage of stationary to moving devices in a large sample set
  • What were the most popular deployed devices at the time (vendor, os, device type, etc)
  • Provided a mechanism for statistically deriving NAP addresses when doing passive monitoring