BlueSpy para grabar audio desde un dispositivo Bluetooth

BlueSpy-destacada

Este repositorio contiene la implementación de una prueba de concepto llamada BlueSpy para grabar audio desde un dispositivo Bluetooth sin el conocimiento del usuario legítimo.

El PoC se demostró durante la charla BSAM: Seguridad en Bluetooth en RootedCON 2024 en Madrid. Está diseñado para crear conciencia sobre el uso inseguro de dispositivos Bluetooth y la necesidad de una metodología consistente para las evaluaciones de seguridad.

Ese es el propósito de BSAM, la Metodología de Evaluación de Seguridad de Bluetooth , publicada por Tarlogic y disponible aquí.

Esta prueba de concepto explota el incumplimiento del control BSAM-PA-05 dentro de la metodología BSAM. En consecuencia, el dispositivo permite el procedimiento de emparejamiento sin requerir interacción del usuario y expone su funcionalidad a cualquier agente dentro del rango de la señal.

Requisitos

El código está escrito en Python y ha sido probado con Python 3.11.8, pero utiliza principalmente herramientas ampliamente disponibles en sistemas Linux.

El PoC utiliza las siguientes herramientas:

  • bluetoothctl
  • btmgmt
  • pactl
  • parecord
  • paplay

En las distribuciones Arch Linux, bluetoothctl y btmgmt se puede instalar con el paquete bluez-utils, mientras pactl, parecord y paplay están disponibles en el  paquete libpulse.

Para que el PoC funcione, es necesario tener una instalación funcional de la pila Bluetooth BlueZ, disponible en el bluezPaquete para distribuciones Arch Linux. También se requiere una instalación funcional de un servidor de audio compatible con PulseAudio, como PipeWire, para grabar y reproducir audio.

Configuración

Asegúrate de que tu dispositivo sea capaz de funcionar como fuente de audio, es decir, que tenga un micrófono y que sea reconocible y conectable a través de Bluetooth.

Por ejemplo, para que sean reconocibles y conectables, los auriculares utilizados durante la conversación deben estar fuera de su estuche de carga. Por defecto, sólo activan el micrófono cuando se coloca en los oídos del usuario, aunque esta configuración se puede ajustar en la app de configuración.

Además, asegúrate de que el dispositivo no esté ya conectado o, alternativamente, que admita múltiples conexiones.

Ejecución

En primer lugar, se debe descubrir la dirección del dispositivo utilizando una herramienta como bluetoothctl:

BlueSpy-1
$ bluetoothctl
[bluetooth]# scan on

Una vez que se descubre la dirección del dispositivo, el script puede encargarse del resto:

Nota: La secuencia de comandos puede solicitar permisos de superusuario para modificar la

$ python BlueSpy.py -a <address>

configuración de su instancia BlueZ y vincularla con el dispositivo remoto.

TarlogicSecurity

BlueSpy

 

 

 

 
Compártelo:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *