Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/kuleuven-cosic/whisperpair
Seguridad BluetoothAnálisis de VulnerabilidadesExplotaciónSeguridad InalámbricaPruebas de PenetraciónSeguridad de Hardware e IoTPapers e InvestigaciónAprendizaje y Educación
GitHubkuleuven-cosic/whisperpair

WhisperPair

La implementación de referencia oficial y verificación de vulnerabilidad de nuestro ataque WhisperPair (CVE-2025-36911) que afecta el protocolo Fast Pair de Google.

Ver Repositorio
8010hace 2 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

WhisperPair: Arsenal de Pruebas para Google Fast Pair

Venue License: CC BY 4.0 OS Hardware Website

Una herramienta práctica para comprobar si los dispositivos Google Fast Pair son vulnerables a ataques de emparejamiento, vinculación de cuentas y de nivel de protocolo.

Este repositorio proporciona el arsenal de pruebas WhisperPair, una herramienta para evaluar la seguridad de los dispositivos Google Fast Pair. Está diseñada tanto para investigadores como para profesionales, con el fin de reproducir nuestros hallazgos y probar sus propios dispositivos.

Para obtener una visión general del proyecto, los dispositivos afectados y contexto adicional, visite nuestro sitio web.

Este repositorio también contiene el artefacto para el artículo «One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol», presentado en IEEE S&P 2026.

Citación

La versión completa del artículo se puede encontrar aquí. Si encuentra útil este trabajo, considere citar el artículo:

root@kitploit:~
@inproceedings{whisperpair2026,
  title     = {One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol},
  author    = {Duttagupta, Sayon and Wyns, Seppe and Antonijević, Nikola and Singelée, Dave and Preneel, Bart},
  booktitle = {2026 IEEE Symposium on Security and Privacy (S\&P)},
  year      = {2026},
}

Aviso de Exención de Responsabilidad y Uso Responsable

Los materiales se proporcionan para permitir la reproducibilidad de nuestra evaluación y ayudar a los investigadores a realizar pruebas defensivas. Utilice estos materiales solo para investigación de seguridad autorizada y verificación defensiva en dispositivos que posea o tenga permiso explícito para probar. Dado que el código en este repositorio demuestra vulnerabilidades en accesorios de consumo, no lo utilice para atacar dispositivos de terceros sin un permiso escrito claro. Los autores realizaron todos los experimentos en dispositivos propiedad del equipo del proyecto o donados con consentimiento informado. Al ejecutar estas herramientas, acepta utilizarlas únicamente para investigación defensiva, reproducción de nuestros resultados o autoevaluación de dispositivos.

Configuración y Requisitos

[!NOTE] Resumen: asegúrese de tener una máquina Linux con un adaptador Bluetooth, y que Node.js (LTS) y pnpm estén instalados.
Puede ejecutar tanto la interfaz de usuario como el servidor en la misma máquina ejecutando bash build.sh seguido de bash start.sh.

Este repositorio contiene un arsenal de pruebas para evaluar si un dispositivo objetivo implementa correctamente ciertos requisitos de seguridad de Google Fast Pair. El arsenal puede comprobar si el predicado de estado de emparejamiento se implementa correctamente, si los mensajes con nonces reutilizados se rechazan y si el dispositivo es vulnerable a un ataque de curva inválida. El arsenal consta de un servidor backend y una interfaz web frontend.

[!NOTE] Si busca la implementación de los ataques específicamente: ./toolkit-server/src/fast-pair-service.ts y ./toolkit-server/src/protocol.ts contienen la implementación de los ataques y el protocolo Fast Pair.

El conjunto de herramientas consta de dos componentes: el servidor y la interfaz de usuario.
El servidor debe ejecutarse en un sistema Linux y se ha probado con una Raspberry Pi 4.
La interfaz de usuario es un frontend Next.js que se puede utilizar para controlar el servidor y puede ejecutarse en cualquier lugar donde Node.js sea compatible. La interfaz de usuario debe poder conectarse al servidor a través de la red.

Probamos el arsenal con Raspberry Pi OS Lite (64 bits) (6.12.47+rpt-rpi-v8), BlueZ versión 5.82.

Prerrequisitos

Una máquina Linux con BlueZ, Node.js y pnpm instalados.

Node.js

Recomendamos encarecidamente usar la versión actual de soporte a largo plazo (LTS) de Node.js (v24.14.0).
Nos hemos asegurado de que el conjunto de herramientas funcione con esta versión. Las versiones anteriores pueden funcionar hasta v18, pero las versiones más antiguas probablemente fallarán o producirán resultados inesperados.

nvm.sh

Si usa nvm para administrar las versiones de Node.js instaladas, debe asegurarse de que root también tenga acceso a la versión de Node.js administrada por nvm.
Como se explica en esta publicación de StackOverflow, es posible que necesite crear un nuevo enlace simbólico.

root@kitploit:~
# Fuente - https://stackoverflow.com/a/40078875
# Publicado por SimpleJ, modificado por la comunidad. Consulte la 'Línea de tiempo' de la publicación para ver el historial de cambios
# Recuperado el 30-03-2026, Licencia - CC BY-SA 4.0

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npx" "/usr/local/bin/npx"

[!NOTE] Para ejecutar el servidor, solo necesita enlazar node.

Si Node.js también está instalado mediante un gestor de paquetes externo, la versión disponible para sudo puede ser diferente de la que usa nvm.
Puede comprobarlo comparando la salida de node -v y sudo node -v.
Si bien recomendamos Node.js LTS v24, el servidor debería funcionar correctamente hasta v18.

pnpm

Si Node.js v24 LTS está instalado, debería poder habilitar pnpm usando el siguiente comando:

root@kitploit:~
corepack enable

Herramientas adicionales

El arsenal también requiere hcitool y l2ping.
Dependiendo de su distribución de Linux, hcitool podría no estar disponible. Es posible que tenga que instalar bluez-deprecated-tools.
Permanecen preinstalados en la última versión de Raspberry Pi OS Lite en el momento de escribir esto. (1 de octubre de 2025)

Si el adaptador Bluetooth no está encendido, el servidor intentará usar rfkill para encenderlo.
Probar la extensión Audio Switch requiere rfcomm.

[!NOTE] El servidor comprobará la disponibilidad de estas herramientas al iniciarse. En la consola se mostrará información adicional sobre las funciones que pueden no estar disponibles.

Reproducir los resultados requiere acceso físico a un dispositivo vulnerable.
Tenga en cuenta que la mayoría de los fabricantes han publicado actualizaciones de software para WhisperPair, por lo que es posible que necesite dispositivos con firmware desactualizado.
Consulte Selección de un dispositivo para obtener más información sobre los dispositivos que utilizamos en nuestra evaluación.

Configuración Rápida

Si desea ejecutar la interfaz de usuario y el servidor en la misma máquina (Linux), puede usar los scripts build.sh y start.sh.
Primero, instale las dependencias requeridas y compile los componentes usando:

root@kitploit:~
bash build.sh

Asegúrese de que Bluetooth esté habilitado:

root@kitploit:~
sudo rfkill unblock bluetooth

Luego, ejecute la interfaz de usuario y el servidor usando:

root@kitploit:~
bash start.sh

La interfaz de usuario ahora debería estar accesible en http://localhost:3000.

Ejecución de la Interfaz de Usuario y el Servidor en Diferentes Equipos

Puede ejecutar la interfaz de usuario y el servidor en diferentes equipos.
Esto le permite ejecutar el servidor en una máquina Linux, mientras que la interfaz de usuario se ejecuta localmente.
Aunque esto no es recomendable, puede hacerlo de la siguiente manera:

  1. Asegúrese de que el directorio toolkit-server esté disponible en la máquina Linux
  2. Compile toolkit-server ejecutando bash build.sh
  3. Actualice el archivo .env en el directorio toolkit-ui para que la variable SERVER_URL esté configurada con la URL del servidor. Puede ejecutar bash update_server_url.sh <SU_URL> para actualizar el archivo .env automáticamente.
  4. Compile toolkit-ui ejecutando bash build.sh
  5. Inicie toolkit-server ejecutando bash start.sh
  6. Inicie toolkit-ui ejecutando bash start.sh

La interfaz de usuario ahora debería estar accesible en http://localhost:3000.

Configuración Manual del Servidor

Como alternativa al uso de los scripts build.sh y start.sh, también puede compilar e iniciar el servidor manualmente. Las instrucciones detalladas sobre cómo realizar estos pasos se encuentran en el README de toolkit-server

Configuración Manual de la Interfaz de Usuario

Como alternativa al uso de los scripts build.sh y start.sh, también puede compilar e iniciar la interfaz de usuario manualmente. Las instrucciones detalladas sobre cómo realizar estos pasos se encuentran en el README de toolkit-ui

Uso

Selección de un Dispositivo

Necesita tener un accesorio compatible con Fast Pair para realizar los ataques y usar el conjunto de herramientas.
Evaluamos 25 dispositivos de 16 fabricantes, que se muestran en la tabla a continuación. Si tiene uno de esos dispositivos y su firmware no se ha actualizado desde septiembre de 2025, puede reproducir nuestros resultados.

También puede usar el conjunto de herramientas para evaluar un dispositivo que no probamos.
Sin embargo, puede encontrar algunos errores inesperados según la confiabilidad del chipset Bluetooth del dispositivo objetivo.

Al realizar los ataques, asegúrese de saber si el dispositivo objetivo está en modo de emparejamiento o no.
Algunos ataques requieren que el dispositivo no esté en modo de emparejamiento y pueden producir falsos positivos de lo contrario.
Otros ataques requieren que el dispositivo esté en modo de emparejamiento y pueden no funcionar de lo contrario.

Si busca dispositivos compatibles con Fast Pair, puede usar la lista de Model IDs para ver todos los dispositivos certificados con Fast Pair.

Mensaje de advertencia «Model not included in test set»

La interfaz de usuario mostrará un mensaje de advertencia si ha seleccionado un dispositivo que no estaba incluido en nuestro conjunto de pruebas.
Este mensaje se muestra según el Model ID, que puede variar entre diferentes colores y regiones para el mismo dispositivo.
Por ejemplo, unos auriculares Sony WH-1000XM6 azules usan un Model ID diferente que unos auriculares Sony WH-1000XM6 negros.

Dado que es probable que estos dispositivos tengan el mismo firmware (aunque sus Model IDs sean diferentes), puede ignorar este mensaje de advertencia de manera segura.

Mensaje de error «No device with Model ID <número> was found»

Debido a una limitación de velocidad más estricta impuesta por la API gRPC de Fast Pair, algunas solicitudes de datos de modelo pueden devolver respuestas exitosas con cuerpos vacíos. Esto hará que la interfaz de usuario muestre «No device with Model ID <número> was found».
Si está seguro de que el Model ID que ingresó existe, espere unos minutos y vuelva a intentarlo.

[!NOTE] Los datos de modelo para los dispositivos en nuestro conjunto de pruebas están incluidos en este repositorio y se leerán desde una caché. Evaluar estos dispositivos no requiere una llamada a la API al servicio gRPC. Tenga en cuenta que los dispositivos de la misma serie pueden no tener los mismos Model IDs. Consulte Mensaje de advertencia de modelo no incluido en el conjunto de pruebas para obtener más información.

Manual de la Interfaz de Usuario

La interfaz de usuario del conjunto de herramientas

La interfaz de usuario intentará conectarse al servidor al iniciarse.
Cuando la conexión sea exitosa, se mostrará un mensaje «Connected to the server» en la esquina inferior derecha de la pantalla.

Evaluar si un dispositivo es vulnerable requiere tres pasos: descubrir el dispositivo, configurar su Model ID y ejecutar un ataque.

1. Descubrir Dispositivos

El arsenal escanea continuamente en busca de dispositivos Bluetooth de baja energía, que se muestran en el lado izquierdo de la pantalla. Los dispositivos que anuncian datos de Fast Pair se muestran en la parte superior. Los detalles del dispositivo se muestran en el lado derecho de la pantalla después de hacer clic en «Select» en un dispositivo.

2. Configurar un Model ID

Ejecutar las pruebas descritas en el artículo requiere que se configure un Model ID para un dispositivo. Si el dispositivo expone la característica GATT de Fast Pair, se mostrará un botón «Read Model ID» en los detalles del dispositivo. Al hacer clic en este botón se intentará leer el Model ID.

Tenga en cuenta que muchos dispositivos no implementan correctamente esta característica y devuelven Model IDs inválidos. Alternativamente, puede configurar manualmente el Model ID del dispositivo presionando el botón «Set Model ID» e ingresando un valor manualmente. Se pueden seleccionar los dispositivos que se evaluaron durante nuestras pruebas, o se puede ingresar un valor personalizado. En la raíz de este repositorio se incluye una lista completa de dispositivos compatibles con Fast Pair.

Una vez que se haya configurado un Model ID, los metadatos sobre el dispositivo se mostrarán en los detalles del dispositivo.

3. Ejecutar un Ataque

Para ejecutar un ataque, haga clic en el botón «Attack» en el panel de detalles del dispositivo. Hay tres ataques implementados: verificación del predicado de estado de emparejamiento, reutilización de nonce y ataque de curva inválida. Si ya está conectado a un dispositivo, marcar la casilla «Reconnect» desconectará y reconectará el dispositivo antes de realizar el ataque.

La verificación del predicado de estado de emparejamiento ofrece algunas opciones de configuración adicionales:

  • Switch back: Intenta volver al host original usando la funcionalidad Audio Switch, si es compatible.
  • Bond: Realiza un emparejamiento BR/EDR si el predicado de estado de emparejamiento no se aplica.
  • Write account key: Escribe una clave de cuenta (codificada) después del procedimiento de emparejamiento.

Mientras un ataque está en progreso, los registros se mostrarán en tiempo real en la interfaz de usuario. Una vez completado el ataque, se mostrará su duración.

Gestión de Tareas

A veces, un ataque o emparejamiento puede llevar más tiempo del esperado.
Puede cancelar un ataque o emparejamiento haciendo clic en el botón «Cancel» en el diálogo correspondiente. Si recargó la interfaz de usuario durante un ataque o emparejamiento, puede usar el administrador de tareas para cancelar en su lugar.

En la esquina superior derecha de la pantalla, el segundo botón desde la derecha mostrará el estado de la tarea. Si no hay tareas activas, mostrará «No active tasks». De lo contrario, dirá «Task in progress». Para cancelar una tarea, haga clic en el botón «Task in progress», luego presione el botón «Cancel».

Si el servidor se bloquea debido a una tarea pendiente que no se puede cancelar, intente restablecer el adaptador Bluetooth.

[!NOTE] Las tareas pueden tardar hasta 20 segundos en cancelarse.

Solución de Problemas

En algunos casos, el adaptador Bluetooth puede «quedarse atascado» en un «mal estado». La solución más sencilla a este problema es restablecer el adaptador Bluetooth. Para realizar un restablecimiento, abra el menú de solución de problemas presionando el ícono de llave inglesa en la esquina superior derecha de la pantalla. Luego, seleccione «Reset BLE adapter» y confirme el restablecimiento haciendo clic en «Reset» en el diálogo.

Si se produce un error fatal y el servidor debe cerrarse, el script start.sh reiniciará automáticamente el servidor.

En escenarios con muchos dispositivos BLE cercanos, el servidor puede cerrarse inesperadamente debido a un error de D-Bus. Esto ocurre muy raramente, y el script ./start.sh debería reiniciar automáticamente el servidor si esto sucede.

Resultados y Dispositivos Evaluados

Si busca dispositivos compatibles con Fast Pair, puede usar la lista de Model IDs para ver todos los dispositivos certificados con Fast Pair.

Agradecimientos

Este trabajo fue apoyado por el Gobierno Flamenco a través del Programa de Investigación en Ciberseguridad con el número de subvención VOEWICS02.

Descargar herramienta
FabricanteNombre del dispositivoModel IDVulnerable al secuestroTiempo hasta el secuestro (s)Vulnerable a reutilización de nonceVulnerable a ataque de curva inválida
AppleBeats Solo Buds6980580NoSíNo
GooglePixel Buds Pro 212934265Sí6.89NoNo
JabraElite 8 Active3778746Sí32.01NoNo
JBLTune Beam3293323Sí6.91Solo en la misma sesiónNo
MarshallMOTIF II A.N.C.15473012Sí9.49SíNo
NothingEar (a)8625818Sí38.80Solo en la misma sesiónNo
OnePlusNord Buds Pro 313394952Sí10.19Solo en la misma sesiónNo
HPPoly VFree 6015984097NoNoNo
RedmiBuds 5 Pro11155060Sí8.32Solo en la misma sesiónNo
SoundcoreLiberty 4 NC5409858Sí15.27SíNo
SonyWF-1000XM512499626Sí9.43SíNo
Audio-TechnicaATH-M20xBT13285048NoSolo en la misma sesiónNo
BoseQuietComfort Ultra5723549NoNoNo
JBLLive 775 NC14502233Sí7.62Solo en la misma sesiónNo
MarshallMajor V12915160Sí11.70Solo en la misma sesiónNo
SonosAce V7340495NoNoNo
SonyWH-1000XM413386638Sí9.69SíNo
SonyWH-1000XM513911719Sí12.38SíNo
SonyWH-1000XM66360443Sí12.94Solo en la misma sesiónNo
SonyWH-CH720N16003068Sí7.46SíNo
Bang & OlufsenBeosound A12431472NoNoNo
JabraSpeak2 55 UC9888885NoNoNo
JBLClip 51917389Sí36.19SíNo
JBLFlip 67278954NoNoNo
LogitechWonderboom 411575855Sí11.96Solo en la misma sesiónNo