Tuesday, November 27, 2007

Estado del arte de los Ataques a Manos Libres Auriculares

El pasado Octubre, durante el evento SANS NS2007 en Las Vegas, Joshua Wright realizó una presentación sobre Seguridad en Bluetooth dirigida fundamentalmente a mostrar el estado del arte de los ataques a Manos Libres, que parece ser la línea de investigación en la que se está centrando últimamente.

En su entrada del blog sobre el evento, recoge algunas experiencias interesantes atacando diferentes modelos de Manos Libres:

- El Manos Libres Jawbone parece que acepta solicitudes de emparejamiento de cualquier equipo aunque el dispositivo no se encuentre en modo visible (discoverable). Para ello, es necesario conocer su dirección BD_ADDR. Si el dispositivo está en modo oculto (non discoverable) no podrá ser descubierto con un HCI inquiry y puede llevarse a cabo un ataque de fuerza bruta sobre un rango de direcciones BD_ADDR con Redfang para poder detectarlo e intentar el emparejamiento una vez conocida la BD_ADDR. Simple. Es interesante porque el Jawbone es supuestamente el mejor equipo Manos Libres del mercado, basado en tecnología militar para filtrar acústicamente el ruido de ambiente, y toda la gente guay tiene uno. La demo del producto es impresionante.

- Los Manos Libres Motorola y Jabra, a pesar de no estar basados en tecnología militar son más seguros. :P No aceptan solicitudes de emparejamiento de dispositivos desconocidos a menos que el equipo se encuentre en modo visible (discoverable), para lo cual suele ser necesario apretar una combinación de botones. Sin embargo, en modo oculto (non discoverable), aceptan solicitudes de re-emparejamiento con dispositivos con los que anteriormente se han emparejado, es decir, dispositivos conocidos. Por tanto, se deduce que llevando a cabo un ataque BD_ADDR Spoofing de primer nivel y suplantando la dirección BD_ADDR del teléfono móvil con el que usualmente se comunica el Manos Libres, el atacante estaría en disposición de emparejarse con el dispositivo y acceder a sus funciones de audio. Sólo hace falta suplantar la dirección BD_ADDR de un dispositivo conocido, no hace falta suplantar la clave de enlace compartida ya que se genera una nueva tras el emparejamiento, así que el ataque Blue MAC Spoofing es sencillo de ejecutar.

En ambos casos, recuerdo que para poder emparejarse pasivamente con el Manos Libres el atacante debe conocer el PIN por defecto implantado en este dispositivo, algo fácil de saber consultando el manual del fabricante.

Una vez conocido el PIN, el atacante se empareja con el Manos Libres (siempre que este esté encendido pero no en uso con un teléfono móvil en ese momento) y puede acceder a las funciones de audio, con capacidad para:

- Capturar el audio recogido por el micrófono del dispositivo
- Inyectar audio que sería reproducido por el auricular

Esta es la demo que llevó a cabo Josh en el evento SANS NS2007. Podéis descargaros la presentación original desde aquí o con anotaciones desde aquí.

Wednesday, September 26, 2007

Video Headsets Hijacking

A través del blog de Collin Mulliner, experto en seguridad Bluetooth y en Pocket PCs, he llegado a un video de Joshua Wright en el que se muestra lo sencillo que resulta comprometer la seguridad de un dispositivo Manos Libres Auriculares. Esta técnica, conocida como Headsets Hijacking, no es nueva. De hecho, ya hablé de ella en mi Proyecto de Fin de Carrera a nivel teórico basándome en las experiencias de Kevin Finisterre con varios Manos Libres.

El ataque es sencillo de entender y se desarrolla del mismo modo que el ataque Car Whisperer contra dispositivos Manos Libres de Automóvil. Básicamente...

La primera vez que dos dispositivos Bluetooth intentan establecer comunicación, se utiliza un procedimiento de emparejamiento para crear una clave de enlace común a partir de un código de seguridad Bluetooth (clave PIN), que es requerido a cada dispositivo y que debe ser el mismo para los dos. Posteriormente, cuando los mismos dispositivos se comuniquen, utilizarán la clave de enlace para funciones de autenticación y cifrado.

El hecho de incorporar una clave PIN por defecto (por ejemplo, 0000) en un dispositivo Bluetooth significa que cualquier usuario con conocimiento de esa clave estándar puede emparejarse con el dispositivo y comunicarse con él de forma autorizada. En el caso de un Manos Libres Auriculares, un atacante podría acceder a las funciones de audio implementadas en el terminal y llevar a cabo las siguientes acciones con fines maliciosos:

Capturar el audio recogido por el micrófono del dispositivo



Inyectar audio que sería reproducido por el auricular.



Como bien comenta Josh, es importante que el dispositivo Manos Libres esté activado pero no en uso en el momento del ataque, es decir, que no esté cursando una llamada telefónica.

Para llevar el ataque, Josh hace uso de tres elementos importantes:
- La herramienta Car Whisperer del grupo Trifinite, para Linux.
- Una antena unidireccional para incrementar el alcance del adaptador Bluetooth y detectar dispositivos a mayor distancia.
- Una Tablet PC Nokia 770, que corre sobre Linux, para controlar el portatil de su mochila de forma inalámbrica y pasar desapercibido mientras lleva a cabo el ataque.

Realmente hace un poco el paripé ya que el ataque podría ser desarrollado perfectamente desde la Tablet PC Nokia 770 si la herramienta Car Whisperer estuviera portada a Maemo, la plataforma de desarrollo de las Tablet PC de Nokia con Linux, al igual que otras herramientas del grupo Trifinite.

Sin más, os dejo con el vídeo:

Qué cachondo el tío... me encanta la dramatización, pillastre!!

Thursday, August 16, 2007

Avances en sniffing Bluetooth

Esta semana se han producido dos grandes avances en relación con la capacidad para sniffar comunicaciones Bluetooth.

Recordemos que sniffar comunicaciones Bluetooth es un tema bastante complicado debido a que:

1) La técnica de salto de frecuencias impide a cualquier dispositivo que no forme parte de la piconet (que no esté emparejado con el maestro) escuchar las comunicaciones, ya que no tiene acceso a la tabla de saltos utilizada para la transmisión de paquetes.

2) Los adaptadores USB Bluetooth convencionales no se pueden poner en modo promiscuo (como las tarjetas Ethernet o Wi-Fi). Hasta el momento, existían adaptadores hardware especiales, pero su precio rondaba los $10,000 en el mercado.

Durante el pasado evento 23C3, Thierry Zoller publicó la herramienta BTCrack para Windows. BTCrack es un programa que permite crackear el PIN y la clave de enlace compartidos por dos dispositivos a partir de las tramas capturadas durante el emparejamiento de ambos. El software existía, lo dificil y caro era conseguir el hardware que sniffara esas tramas. En aquel momento, Zoller hizo un llamamiento para encontrar una técnica que permitiera construir un sniffer Bluetooth de bajo coste.

Max Moser acudió al llamamiento y publicó un paper en el que desmontaba el mito de que conseguir un sniffer Bluetooth sólo era posible adquiriendo carísimos productos propietarios. Realizando ingeniería inversa de un producto comercial (que no conviene nombrar) fue capaz de flashear un adaptador USB Bluetooth convencional con el firmware de este sniffer comercial. La aplicación reconocía el hardware como parte del paquete comercial y permitía sniffar.

El procedimiento de construir un sniffer Bluetooth a partir de un adaptador USB Bluetooth convencial podía desarrollarse en Linux, pero para enviar comandos al hardware y sniffar con él hacía falta el producto comercial para Windows.

Pues bien, la primera noticia es la publicación de una herramienta que permite enviar comandos al adaptador hardware y utilizarlo para sniffar. El nombre de esta herramienta es BTSniff y está disponible para Linux. El autor es Andrea Bittau @ http://darkircop.org/.

BTSniff consta de dos partes:

- Ensamblador para construir tu propio firmware
- Frontline para envío de comandos: sincronizar con el maestro, sniffar tramas, ...

En principio, BTSniff sólo funciona con adaptadores USB Bluetooth con chipset CSR que han sido flasheados con el firmware del sniffer comercial.

Gracias a estos dos avances, el sniffing de comunicaciones Bluetooth está más cerca de ser una realidad y estar al alcance de cualquiera. (Aunque, ¿eso es bueno?). En cualquier caso, la nueva especificación 2.1 de Bluetooth que acaba de ser publicada por el SIG introduce algunas mejoras en seguridad. No obstante, de aquí a que la especificación 2.1 domine el mercado de los teléfonos móviles aún quedan años de diversión :)

¿Y para qué sirve todo esto? Diréis lo no iniciados en seguridad Bluetooth...

Os cuento: Gracias a BTSniff, un atacante podrá sincronizarse con el maestro de una piconet y sniffar las tramas transmitidas durante una comunicación Bluetooth con otro dispositivo. Lo interesante sería llevarlo a cabo durante el emparejamiento de dos dispositivos Bluetooth. Capturando estas tramas, el atacante tendría acceso a las keys generadas en el proceso de emparejamiento y podría obtener la clave de enlace Bluetooth a partir de las mismas con ayuda de BTCrack. Con la clave de enlace en su poder, el dispositivo atacante podría acceder de forma transparente a cualquiera de los dos dispositivos suplantando la BD_ADDR del otro dispositivo y utilizando la clave de enlace crackeada. El acceso transparente implica poder conectarse a cualquier perfil del dispositivo objetivo saltándose los mecanismos de seguridad de Bluetooth de autenticación y autorización, tal y como se explica en el ataque BD_ADDR Spoofing. Las posibilidades: muy "interesantes"... como el acceso a los comandos AT (realizar llamadas de teléfono, gestión de la agenda de contactos, gestión de mensajes SMS, ...) o el acceso al servicio OBEX para el robo de archivos del teléfono móvil.

Ya era hora de que apareciese alguna novedad en el mundo de la seguridad Bluetooth, después de que la cosa haya estado parada durante un año. ¡Buenas noticias!

Saludos

Monday, June 18, 2007

Pocket Bluesnarfer

Pocket Bluesnarfer es una herramienta para Pocket PC que permite enviar comandos AT a teléfonos móviles a través de Bluetooth e Infrarrojos.

Básicamente, Pocket Bluesnarfer permite
- Ejecutar comandos AT personalizados.
- Obtener información general del teléfono móvil comprometido: marca, modelo, IMEI, cobertura y nivel de batería.
- Extraer la agenda de contactos almacenada en SIM.
- Extraer la bandeja de entrada de mensajes SMS.

La aplicación envía los comandos AT a través de un puerto COM virtual establecido previamente con el perfil de Puerto Serie del teléfono. También debería poder funcionar sobre una conexión con el perfil de Acceso Telefónico a Redes. Dependiendo de la configuración Bluetooth del teléfono objetivo, la conexión a cualquiera de estos perfiles puede solicitar autenticación (emparejamiento) y autorización del dispositivo atacante.

Publiqué esta herramienta hace más de un año y pasado un tiempo la dejé de mantener. Existe cierta documentación no oficial (extraída del tutorial que publiqué en elhacker.net), aunque el funcionamiento es bastante sencillo (ver video demo @ YouTube)

Algunas especificaciones de Pocket Bluesnarfer:
- El proyecto Pocket Bluesnarfer está basado, adapta y extiende el proyecto IrDAMobile de Daniel Strigl @ http://www.codeproject.com/ce/irdamobile.asp
- La aplicación está desarrollada en eMbedded Visual C++ 3.0 con el SDK Windows Mobile 2002 - 2003, lo que no quiere decir que no pueda funcionar también en Windows Mobile 5.0 o Windows Mobile 6. El proyecto compila para PDAs con arquitectura Pocket PC ARM / Strong ARM / XScale.
- En principio, la aplicación es totalmente compatible con dispositivos Pocket PC 2003 y con pila de protocolos Bluetooth Widcomm (por ejemplo, Dell Axim x30). Sin embargo, es posible que la aplicación pueda llegar a funcionar también en dispositivos Pocket PC con Windows Mobile 5.0 y con pila de protocolos Bluetooth Widcomm (por ejemplo, Asus p525) o pila de protocolos Bluetooth de Microsoft (por ejemplo, cualquier HTC).
- Se distribuye libremente el código fuente del proyecto bajo licencia GNU Lesser General Public License. Por tanto, cualquiera es libre de modificar el código fuente y adaptarlo a otros SDKs (como Windows Mobile 5.0), a otras arquitecturas (como MIPS, SH3...) o a otras pilas de protocolos Bluetooth (como la de Microsoft).

Descargas:
- Proyecto eVC++ 3.0: http://gospel.endorasoft.es/bluetooth/seguridad-bluetooth/Files/PocketBluesnarfer.zip
- Ejecutable compilado para arquitecturas Pocket PC ARM / Strong ARM / XScale: http://gospel.endorasoft.es/bluetooth/seguridad-bluetooth/Files/PocketBluesnarfer.ARM.XScale.zip

Video Demo en Youtube:



No preguntéis por versiones del código. El proyecto no sigue manteniéndose. Para eso se distribuye el código libremente. No obstante, es posible que un día me de por volver a tocarlo ;)

Saludos