Ubertooth (Übertooth?) One is a USB Bluetooth dongle that allows “monitoring” mode, which allows you to locate bluetooth devices in the vecinity even though they are not “discoverable” meaning that the bluetooth devices can be discovered even though they are not broadcasting their “SSID”.
I first learned about Ubertooth on Hak5…
… and went back to watch the video from ShmooCon where it was first introduced …
… and ended up at the Hak5 store and took out my credit card…
.. and a few days ago I got my very own Ubertooth One in the mail ![]()
After I got it to work on a VMWare install of BackTrack 5 I decided to see if I can’t get this baby rock on OSX as well. Don’t take it the wrong way; I really love BackTrack 5 and my machine has plenty of juice to run it on VMWare – but why do it if you don’t need to?
This is how I did:
First of, I have MacPorts installed, so if you want to follow what I am doing I suggest you do the same.
sudo port install libusb py26-pyside-tools py26-pyusb-devel
Then I had to manually download and install libbtbb:
wget http://downloads.sourceforge.net/project/libbtbb/libbtbb.0.5.tgz
tar xvf libbtb.0.5.tgz
cd libbtbb
You need to modify the Makefile. Change this line:
$(CC) -shared -Wl,-soname,$(SONAME) -o $(LIB_FILE) $(OBJECT_FILES)
to:
$(CC) -shared -Wl -install_name $(INSTALL_DIR)/$(LIB_NAME) -o $(LIB_FILE) $(OBJECT_FILES)
and comment out / remove the following line:
$(LDCONFIG)
Once you have done that you can go ahead and compile and install libbtbb:
make
sudo make install
Now when libbtbb has been installed you can go ahead and download the ubertooth source:
wget http://downloads.sourceforge.net/project/ubertooth/ubertooth-r238.tar.gz
tar xvf ubertooth-r238.tar.gz
At this stage you should be able to test the Ubertooth adapter:
cd ubertooth-r238/host/specan_ui
python specan_ui.py
And you should see something like this:
As the last step we go ahead and compile the Ubertooth utilities as well:
cd ../bluetooth_rxtx
The next step is to modify the Makefile. This time it is quite a few changes that needs to be made. Basically you need to declare the variables CFLAGS and LFLAGS and make sure they are used in each compile statement. Below is a unified diff of the changes made:
--- Makefile.bak 2011-05-26 05:46:11.000000000 +0200
+++ Makefile 2011-07-05 10:49:14.000000000 +0200
@@ -20,23 +20,25 @@
CC = gcc
LIBUSB = usb-1.0
LIBBTBB = btbb
+CFLAGS = -I/opt/local/include/
+LFLAGS = -L/opt/local/lib/ -rpath,/opt/local/lib
all: ubertooth-dump ubertooth-lap ubertooth-specan ubertooth-util ubertooth-uap
ubertooth-dump: ubertooth-dump.c ubertooth.c ubertooth.h
- $(CC) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-dump.c ubertooth.c -o ubertooth-dump
+ $(CC) $(CFLAGS) $(LFLAGS) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-dump.c ubertooth.c -o ubertooth-dump
ubertooth-lap: ubertooth-lap.c ubertooth.c ubertooth.h
- $(CC) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-lap.c ubertooth.c -o ubertooth-lap
+ $(CC) $(CFLAGS) $(LFLAGS) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-lap.c ubertooth.c -o ubertooth-lap
ubertooth-specan: ubertooth-specan.c ubertooth.c ubertooth.h
- $(CC) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-specan.c ubertooth.c -o ubertooth-specan
+ $(CC) $(CFLAGS) $(LFLAGS) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-specan.c ubertooth.c -o ubertooth-specan
ubertooth-util: ubertooth-util.c ubertooth.c ubertooth.h
- $(CC) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-util.c ubertooth.c -o ubertooth-util
+ $(CC) $(CFLAGS) $(LFLAGS) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-util.c ubertooth.c -o ubertooth-util
ubertooth-uap: ubertooth-uap.c ubertooth.c ubertooth.h
- $(CC) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-uap.c ubertooth.c -o ubertooth-uap
+ $(CC) $(CFLAGS) $(LFLAGS) -l $(LIBUSB) -l $(LIBBTBB) ubertooth-uap.c ubertooth.c -o ubertooth-uap
clean:
rm -f ubertooth-dump ubertooth-lap ubertooth-specan ubertooth-util ubertooth-uap *.o
Once you have modified the Makefile you can go ahead and compile the tools:
make
Once the tools are compiled you can go ahead and run ubertooth-lap to check to see if you see any data:
./ubertooth-lap
Now that we can see that it is working we can start getting it to play nice with other tools like Kismet and Wireshark…
To be continued in another blog post…
8 comments:
Thanks for the info, but is there some secret to getting the specan ui running? I seem to be having trouble running Qt.
Traceback (most recent call last):
File "ubertooth-specan-ui", line 29, in
from PySide import QtCore, QtGui
File "/Library/Python/2.6/site-packages/PySide/__init__.py", line 2, in
import private
File "/Library/Python/2.6/site-packages/PySide/private.py", line 2, in
from QtCore import __moduleShutdown
ImportError: dlopen(/Library/Python/2.6/site-packages/PySide/QtCore.so, 2): no suitable image found. Did find:
/Library/Python/2.6/site-packages/PySide/QtCore.so: mach-o, but wrong architecture
Good information Michael, But i have a problem getting it to run under VM my selfe, I know Ossman is trying to debug this, If you have a solution how to get it up and running under VM could you please post it at Project page? I would really appriciate it and i know there are sevral others out there struggelig to get it to work in BT Vmware
First, thanks! This rocks.
Have you tried getting it working in LION yet? I'm having horrible qt4 issues. Macports and Homebrew both epic fail the install. Just wondering if you have had better luck.
@Jordan: Sorry for the late reply, vacation got in the way. I have py26-pyside @1.0.4_0 (active) installed which seems to be the missing dependency. Try that and see how it works out for you.
@oceanjt: I have now upgraded to Lion and it works, as far as I can tell, great.
Michael
How did you manage to get this to run under LION i get a failed to import usb.core error
im in the same boat as Michael, failed to import usb.core
other than that i followed your steps multiple times
i've made sure that i had all the dependencies installed.
Traceback (most recent call last):
File "specan_ui.py", line 24, in
import usb.core
ImportError: No module named usb.core
OSX LION
Post a Comment