Hack.lu 2011 - Project Ubertooth: Building a Better Bluetooth Adapter

Project Ubertooth: Building a Better Bluetooth Adapter

par Michael Ossmann

Comment réussir à sniffer du bluetooth à partir d’un adaptateur du commerce ? C’est ce qui à obsédé l’auteur depuis 3 ans. Le bluetooth est basé sur des sauts d’une fréquence à l’autre, et des paquets très courts contenant un code d’accès spécifique à chaque device, rendant le sniffing très difficile vu qu’il faut indiquer à l’adaptateur quelle adresse et donc quel code d’accès il doit récupérer, et vu que ce contrôle est hardcodé, il n’est pas possible pour l’adaptateur de reconnaître un paquet pour lequel il n’a pas le bon access code !

Il faut donc mettre au point un device bluetooth créé spécifiquement pour pouvoir faire du monitoring passif, et il y a donc peu de chances qu’un produit du commerce soit équipé d’un tel mode 🙁

Pour que la communauté s’en empare, il faut que le coût de l’adaptateur soit relativement bas, et donc l’auteur à commencé à réfléchir à un module de transformation, une sorte d’USRP ultra spécialisé sur la bande de fréquence du bluetooth. Le problème c’est que sur les device bluetooth, la partie analogique et digitale sont sur la même puce, il n’est donc pas possible de la splitter en deux pour obtenir le signal numérisé seulement.

L’auteur à donc du se mettre à l’électronique et RTFM ! Mais bon, les datasheets de composants électroniques, c’est pas très digeste au début 🙁 il a donc regardé du coté des microcontroleurs avec un convertisseur de signal analogique vers numérique et comment monter une interface usb suffisament rapide pour balancer le signal numérique brut vers un logiciel. L’auteur à donc plongé dans les datasheets à la recherche d’informations et de composants capable de tenir 2Mbps de débit… même en se faisant passer pour une entreprise, l’auteur n’a pas réussi à obtenir les échantillons et la doc permettant d’avancer sur son projet.

Après moulte péripéties, l’auteur à fini par tomber sur un device, IM ME qui utilise un transmetteur sans fil calé sur la bande de frequence recherchée, un cc2400 avec une fonction de démodulation qui peut renvoyer un flot de bits démodulés correctement sur un second port série de la puce. Le design est simple, la puce de démodulation balance le signal directement sur l’USB et hop !

Après être passé par un prototype, l’auteur à pu créer sa première board, uberthooth Zero, puis à mis au point une seconde board, ubertooth One 🙂 Après quelques expérimentations, l’auteur est passé sur une puce plus efficace et sur un design sur plus de 2 layer, et l’auteur est passé sur KiCad.

Le device tourne sous Kismet !!! Même si les informations collectés ne permettent pas de communiquer directement avec un Device, il est toujours possible de bruteforcer l’identifiant qui est normalement hardcodé dans le device. Ubertooth peut aussi servir comme analyseur de spectre via wispy 😮

S’en suit plein de détails sur les techniques de fabrication de board pour les composants SMD .
coté tarifs, on s’en sort pour une centaine de dollars pour un adaptateur capable de sniffer du bluetooth et d’injecter des paquets et de faire de l’analyse de spectre !! Ce qui reste plus abordable que de l’USRP.

Pour simplifier la vie de ceux qui ne veulent pas fabriquer leur board eux mêmes, l’auteur à utilisé l’entreprise qu’il a créé pour faire fabriquer les boards et les distribuer. Plus d’infos sur http://ubertooth.sourceforge.net/