Monday, November 17, 2008

Sniffando el emparejamiento Bluetooth

Como ya demostré, es muy fácil construir tu propio sniffer Bluetooth a partir de un adaptador USB Bluetooth convencional. Entre todas las cosas guays que podrías hacer con un sniffer, sería increible poder sniffar durante el emparejamiento de dos dispositivos Bluetooth y obtener la clave de enlace que comparten.



En primer lugar, necesitamos haber construido nuestro propio sniffer Bluetooth.



A continuación debemos detectar dos dispositivos cualesquiera que estén a punto de iniciar el proceso de emparejamiento.



Andrea (aka sorbo) publicó hace tiempo la herramienta frontline que permite enviar comandos a un sniffer hardware. Sin embargo, en su lugar utilizaré una versión modificada por drgr33n y publicada bajo una suite de auditoría de seguridad Bluetooth llamada Blue Smash.



Empezamos a sniffar...



En este punto, los dispositivos Bluetooth remotos pueden comenzar el proceso de emparejamiento, los paquetes generados serán capturados por el sniffer.







Entre todos los paquetes capturados, podemos encontrar las claves temporales creadas durante el proceso de emparejamiento para generar la clave de enlace y, por consiguiente, llegar a obtener la misma.





Podemos utilizar el Bluetooth Pin Cracking Core de OpenCiphers o el BTCrack PIN Cracker de Thierry Zoller para crackear la clave de enlace Bluetooth a partir de las claves temporales capturadas.



Es fácil comprobar si la clave crackeada corresponde con la clave de enlace que realmente comparten los dispositivos remotos.



Una vez que la clave de enlace Bluetooth está en nuestra posesión, podemos llevar a cabo el ataque BD_ADDR spoofing y utilizar esta clave para acceder a perfiles que requieran autorización/autenticación en cualquiera de los dispositivos, como por ejemplo el perfil de OBEX FTP para Transferencia de Archivos, que permite enviar y descargar archivos del teléfono móvil así como listar directorios.





Y el perfil de Acceso Telefónico a Redes, que permite enviar comandos AT al teléfono móvil.





Con esto se ha conseguido romper definitivamente la seguridad en Bluetooth. No obstante, resulta casi imposible reproducir este ataque en el mundo real. Necesitaríamos encontrar dos dispositivos en un estado anterior al proceso de emparejamiento y saber de antemano cual de los dos juega el papel de maestro en la piconet. Es una Prueba de Concepto que únicamente puede ser reproducida en un entorno de laboratorio, con todos los dispositivos bajo nuestro control. (¡Pero aún así mola!)

2 comments:

Lobosoft said...

¡Ya te digo! La verdad es que es un "experimento de laboratorio" muy interesante. Como bien dices, aunque en un entorno real la seguridad en las comunicaciones entre dispositivos Bluetooth es bastante segura, siempre resulta interesante comprobar cómo funciona su protocolo de comunicación, aunque sea por cotillear un poco entre bambalinas.

Geniales los artículos, por tanto.

¡Salud!

Anonymous said...

Lo que me faltaba por ver! Como siempre... MAGNIFICO Alberto!! Que pena que mi dispositivo Bluetooth no sea de Silicon Radio.

Un saludo, un lector fiel de tu blog.