Construir tu propio sniffer Bluetooth

Tabla de contenidos

Bluetooth y el salto de frecuencias
Construir tu propio sniffer Bluetooth

Bluetooth y el salto de frecuencias


Bluetooth trabaja en la frecuencia de 2.4 GHz de la banda ISM disponible a nivel mundial. Con el fin de evitar interferencias con otras tecnologías que operen en la misma banda de frecuencias, Bluetooth emplea la técnica de salto de frecuencias (FHSS, Frequency Hopping Spread Spectrum), que consiste en dividir la banda en 79 canales  de longitud 1 MHz y realizar 1600 saltos por segundo.




Todos los dispositivos Bluetooth que participan en una piconet están sincronizados desde el punto de vista del tiempo y de la secuencia de saltos entre canales. Cada unidad dispone de un reloj de sistema interno que determina la temporización y la secuencia de saltos que debe seguir el transceptor. El maestro de una piconet es el dispositivo cuyo reloj interno y patrón de saltos (la frecuencia a la que hay que saltar en un determinado momento del tiempo) se utilizan para sincronizar a todos los demás dispositivos esclavos. Por tanto, todos los esclavos de una piconet deben conocer la dirección BD_ADDR del maestro y sincronizar sus relojes con el reloj del mismo.

Cuando se establece la piconet, el dispositivo esclavo recibe un paquete FHS (Frequency Hop Synchronization) que le permite sincronizar su reloj interno con el reloj del maestro agregando un desplazamiento a su reloj interno y también generar el patrón de saltos de frecuencia que van a utilizar los dispositivos pertenecientes a la piconet durante las comunicaciones.

Una vez comenzada la comunicación, el intercambio de paquetes de datos se realiza de acuerdo con el patrón de saltos de frecuencia establecido y a una velocidad marcada por el reloj interno. Esto significa que en cada instante de tiempo cada dispositivo escribirá o escuchará durante su timeslot en un determinado canal del espectro.

Cualquier dispositivo ajeno que no pertenezca a la piconet no podrá participar en la comunicación enviando paquetes o escuchando tráfico, ya que no dispone de la tabla con la secuencia de saltos utilizada en la misma y, además, la probabilidad de adivinar cuál de todos los canales puede ser empleado para la comunicación en cada instante de tiempo es mínima. En definitiva, la técnica de saltos de frecuencia empleada por Bluetooth garantiza, en principio, la participación exclusiva de dispositivos autorizados en una piconet y una comunicación libre de escuchas por parte de usuarios ajenos a la misma.


En realidad ...


Un atacante puede tener acceso al tráfico intercambiado en una piconet si dispone de la tabla que contiene la secuencia o patrón de saltos de frecuencia que utilizan los dispositivos pertenecientes a esa piconet. Para obtener esta tabla, únicamente necesita estar presente en el momento en el que la piconet se establece entre maestro y esclavos y recibir el paquete FHS (Frequency Hop Synchronization) que permite sincronizar su reloj interno con el reloj del maestro y también generar el patrón de saltos de frecuencia que sigue dicha piconet. A partir de entonces, formará parte de la piconet y podrá sniffar el tráfico.




En Octubre de 2002 FTE desarrolló el primer analizador del protocolo Bluetooth comercial, FTS4BT, un sniffer dotado de una tecnología muy avanzada cuyo precio rondaba los miles de $. Durante varios años, fue la única herramienta capaz de sniffar tráfico Bluetooth.

En 2007 Max Moser publicó en su paper Busting The Bluetooth® Myth – Getting RAW Access un procedimiento para construir un sniffer Bluetooth a partir de un adaptador Bluetooth convencional. Básicamente, consiguió instalar en un adaptador convencional el firmware de un sniffer comercial y obtener con éxito la parte hardware de un sniffer Bluetooth.

En el mismo año, Andrea Bittau y Dominic Spill publicaron el paper BlueSniff: Eve meets Alice and Bluetooth, en el que demostraron que es posible determinar los parámetros necesarios para calcular la secuencia de saltos de frecuencia y obtener un mecanismo para sniffar Bluetooth. Posteriormente, Andrea Bittau publicó BTSniff, una implementación práctica para enviar comandos a un hardware sniffer y sincronizarlo con los dispositivos de una piconet.

Construir tu propio sniffer Bluetooth


Seguiremos el procedimiento descrito por Max Moser para construir tu propio sniffer Bluetooth a partir de un adaptador USB Bluetooth convencional. Está perfectamente documentado en Internet, por lo que esta será una sencilla explicación práctica.







El adaptador Bluetooth necesita cumplir dos requerimientos para poder ser convertido en un sniffer Bluetooth:

  1. Chipset Cambridge Silicon Radio (CSR).



  2. BC4 Externo o Flash. Los adaptadores Bluetooth con memoria ROM no sirven.



    El segundo adaptador (BC4 EXT) sirve, el primero (BC2 EXT) no estoy seguro.

Necesitas conseguir las siguientes herramientas:

Se pueden obtener vía bluez-cvs, aquí se explica cómo:

# sudo apt-get install libbluetooth2 libbluetooth2-dev libusb-0.1-4 libusb-dev
# cvs -d:pserver:anonymous@cvs.bluez.org:/cvsroot/bluez login
# cvs -d:pserver:anonymous@cvs.bluez.org:/cvsroot/bluez co utils
# cd utils/tools
# gcc -lusb -lbluetooth csr.c csr_3wire.c csr_bcsp.c csr_h4.c csr_hci.c csr_usb.c ubcsp.c bccmd.c -o bccmd
# gcc -lusb -lbluetooth csr.c dfutool.c -o dfutool

También hace falta descargarse e instalar el paquete Frontline Test Equipment FTS4BT versión <= 5.6.9.0, que contiene el firmware airsnifferdev4*bc4.dfu que luego utilizaremos para actualizar el adaptador Bluetooth.

El procedimiento es simple. En primer lugar, la herramienta FTS4BT requiere cierta configuración para poder reconocer el adaptador como sniffer hardware. Hay que cambiar el id de producto (debería ser 0x0002) y el id de fabricante (debería ser 0x0a12).




Después, es recomendable hacer backup del firmware existente en el adaptador Bluetooth antes de flashearlo y cargarle el firmware airsnifferdev4*bc4.dfu.





Si se utiliza el firmware airsnifferdev5*bc4.dfu el adaptador puede quedar inservible así que es importante obtener la versión correcta de FTS4BT (la que contiene airsnifferdev4*bc4.dfu).

Tras haber realizado con éxito estas operaciones, se puede observar que el adaptador Bluetooth se encuentra en modo RAW.



Los bytes RX y TX deberían ir en aumento.


También se puede comprobar que funciona ejecutando frontline, la herramienta publicada por Andrea Bittau que permite enviar comandos a un sniffer hardware.



El tiempo debería ir creciendo.


¡Ya lo tienes!




Ahora podrías utilizar el adaptador USB Bluetooth como hardware del sniffer FTS4BT y comenzar a sniffar, pero para ello necesitas tener el paquete comercial registrado con ese adaptador.

Puedes encontrar más información en estos enlaces:

© 2005 - 2009 Alberto Moreno Tablado