Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
WhisperPair — A implementação oficial de referência e verificação de vulnerabilidade do nosso ataque WhisperPair (CVE-2025-36911), que afeta o protocolo Fast Pair da Google. | Kitploit
Ferramentas/GitHubGitHub/kuleuven-cosic/whisperpair
Segurança BluetoothAnálise de VulnerabilidadesExploraçãoSegurança Sem FioTestes de PenetraçãoSegurança de Hardware e IoTPapers e PesquisaAprendizado e Educação
GitHubkuleuven-cosic/whisperpair

WhisperPair

A implementação oficial de referência e verificação de vulnerabilidade do nosso ataque WhisperPair (CVE-2025-36911), que afeta o protocolo Fast Pair da Google.

Ver RepositórioSite
8010há 2 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

WhisperPair: Harness de Testes para o Google Fast Pair

Venue License: CC BY 4.0 OS Hardware Website

Uma ferramenta prática para testar se dispositivos Google Fast Pair são vulneráveis a ataques de emparelhamento, vinculação de conta e ao nível do protocolo.

Este repositório fornece o harness de testes WhisperPair, uma ferramenta para avaliar a segurança de dispositivos Google Fast Pair. Foi concebido tanto para investigadores como para profissionais, permitindo reproduzir as nossas descobertas e testar os seus próprios dispositivos.

Para uma visão geral do projeto, dispositivos afetados e contexto adicional, visite o nosso site.

Este repositório contém também o artefacto do artigo One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol, apresentado na .

IEEE S&P 2026

Citação

A versão completa do artigo pode ser encontrada aqui. Se considerar este trabalho útil, agradecemos que cite o artigo:

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 Legal e Utilização Responsável

Os materiais são fornecidos para permitir a reprodutibilidade da nossa avaliação e para auxiliar investigadores na realização de testes defensivos. Utilize estes materiais apenas para investigação de segurança autorizada e verificação defensiva em dispositivos que possua ou para os quais tenha permissão explícita de teste. Como o código neste repositório demonstra vulnerabilidades em acessórios de consumo, não o utilize para atacar dispositivos de terceiros sem autorização escrita clara. Os autores realizaram todas as experiências em dispositivos pertencentes à equipa do projeto ou doados com consentimento informado. Ao executar estas ferramentas, concorda em utilizá-las apenas para investigação defensiva, reprodução dos nossos resultados ou autoteste de dispositivos.

Configuração e Requisitos

[!NOTE] Resumo: certifique-se de que tem uma máquina Linux com um adaptador Bluetooth e que o Node.js (LTS) e o pnpm estão instalados.
Pode executar a interface e o servidor na mesma máquina executando bash build.sh seguido de bash start.sh.

Este repositório contém um harness de testes para avaliar se um dispositivo alvo implementa corretamente determinados requisitos de segurança do Google Fast Pair. O harness pode testar se o predicado de estado de emparelhamento está corretamente implementado, se mensagens com nonces reutilizados são rejeitadas e se o dispositivo é vulnerável a um ataque de curva inválida. O harness é composto por um servidor backend e uma interface web frontend.

[!NOTE] Se procura a implementação específica dos ataques: ./toolkit-server/src/fast-pair-service.ts e ./toolkit-server/src/protocol.ts contêm a implementação dos ataques e do protocolo Fast Pair.

O toolkit é composto por dois componentes: o servidor e a interface.
O servidor tem de ser executado num sistema Linux e foi testado com um Raspberry Pi 4.
A interface é um frontend Next.js que pode ser usado para controlar o servidor e pode ser executado em qualquer sítio onde o Node.js seja suportado. A interface tem de conseguir ligar-se ao servidor através da rede.

Testámos o harness com Raspberry Pi OS Lite (64 bits) (6.12.47+rpt-rpi-v8), BlueZ versão 5.82.

Pré-requisitos

Uma máquina Linux com BlueZ, Node.js e pnpm instalados.

Node.js

Recomendamos vivamente a utilização da versão atual de Suporte de Longo Prazo (LTS) do Node.js (v24.14.0).
Garantimos que o toolkit funciona com esta versão. Versões mais antigas podem funcionar até à v18, mas é provável que versões mais antigas falhem ou produzam resultados inesperados.

nvm.sh

Se utiliza nvm para gerir as suas versões do Node.js, tem de se certificar de que o utilizador root também tem acesso à versão do Node.js gerida pelo nvm.
Conforme explicado em esta publicação no StackOverflow, poderá ter de criar uma nova ligação simbólica.

root@kitploit:~
# Source - https://stackoverflow.com/a/40078875
# Posted by SimpleJ, modified by community. See post 'Timeline' for change history
# Retrieved 2026-03-30, License - 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 executar o servidor, só precisa de criar a ligação para node.

Se o Node.js também estiver instalado através de um gestor de pacotes externo, a versão disponível para sudo pode ser diferente da utilizada pelo nvm.
Pode verificar isto comparando o resultado de node -v e sudo node -v.
Embora recomendemos o Node.js LTS v24, o servidor deve funcionar corretamente até à v18.

pnpm

Se o Node.js v24 LTS estiver instalado, deverá conseguir ativar o pnpm com o seguinte comando:

root@kitploit:~
corepack enable

Ferramentas adicionais

O harness também requer hcitool e l2ping.
Dependendo da sua distribuição Linux, o hcitool pode não estar disponível. Poderá ter de instalar o bluez-deprecated-tools.
Na versão mais recente do Raspberry Pi OS Lite à data de escrita, continua pré-instalado. (1 de outubro de 2025)

Se o adaptador Bluetooth não estiver ligado, o servidor tentará utilizar o rfkill para o ativar.
Testar a extensão Audio Switch requer o rfcomm.

[!NOTE] O servidor verificará a disponibilidade destas ferramentas no arranque. Informações adicionais sobre funcionalidades que possam não estar disponíveis serão apresentadas na consola.

Reproduzir os resultados requer acesso físico a um dispositivo vulnerável.
Tenha em atenção que a maioria dos fabricantes já lançou atualizações de software para o WhisperPair, pelo que poderá necessitar de dispositivos com firmware desatualizado.
Consulte Selecionar um dispositivo para obter mais informações sobre os dispositivos que utilizámos na nossa avaliação.

Configuração Rápida

Se pretender executar a interface e o servidor na mesma máquina (Linux), pode utilizar os scripts build.sh e start.sh.
Primeiro, instale as dependências necessárias e compile os componentes com:

root@kitploit:~
bash build.sh

Certifique-se de que o Bluetooth está ativado:

root@kitploit:~
sudo rfkill unblock bluetooth

Em seguida, execute a interface e o servidor com:

root@kitploit:~
bash start.sh

A interface deverá estar agora acessível em http://localhost:3000.

Executar a interface e o servidor em anfitriões diferentes

Pode executar a interface e o servidor em anfitriões diferentes.
Isto permite-lhe executar o servidor numa máquina Linux enquanto a interface é executada localmente.
Embora não seja recomendado, pode fazê-lo da seguinte forma:

  1. Certifique-se de que o diretório toolkit-server está disponível na máquina Linux
  2. Compile o toolkit-server executando bash build.sh
  3. Atualize o ficheiro .env no diretório toolkit-ui para que a variável SERVER_URL aponte para o URL do servidor. Pode executar bash update_server_url.sh <YOUR_URL> para atualizar o ficheiro .env automaticamente.
  4. Compile o toolkit-ui executando bash build.sh
  5. Inicie o toolkit-server executando bash start.sh
  6. Inicie o toolkit-ui executando bash start.sh

A interface deverá estar agora acessível em http://localhost:3000.

Configuração Manual do Servidor

Como alternativa aos scripts build.sh e start.sh, também pode compilar e iniciar o servidor manualmente. Instruções detalhadas sobre como executar estes passos encontram-se no README do toolkit-server

Configuração Manual da Interface

Como alternativa aos scripts build.sh e start.sh, também pode compilar e iniciar a interface manualmente. Instruções detalhadas sobre como executar estes passos encontram-se no README do toolkit-ui

Utilização

Selecionar um dispositivo

Precisa de ter um acessório compatível com Fast Pair para executar os ataques e utilizar o toolkit.
Avaliámos 25 dispositivos de 16 fabricantes, apresentados na tabela abaixo. Se possuir um desses dispositivos e o firmware não tiver sido atualizado desde setembro de 2025, poderá reproduzir os nossos resultados.

Também pode utilizar o toolkit para avaliar um dispositivo que não testámos.
No entanto, poderá encontrar alguns erros inesperados dependendo da fiabilidade do chipset Bluetooth do dispositivo alvo.

Ao executar os ataques, certifique-se de que sabe se o dispositivo alvo está ou não em modo de emparelhamento.
Alguns ataques exigem que o dispositivo não esteja em modo de emparelhamento e podem produzir falsos positivos caso contrário.
Outros ataques exigem que o dispositivo esteja em modo de emparelhamento e podem não funcionar caso contrário.

Se procura dispositivos compatíveis com Fast Pair, pode utilizar a lista de Model IDs para ver todos os dispositivos certificados Fast Pair.

Mensagem de aviso Model not included in test set

A interface apresentará uma mensagem de aviso se selecionar um dispositivo que não foi incluído no nosso conjunto de testes.
Esta mensagem é apresentada com base no Model ID, que pode variar entre cores e regiões do mesmo dispositivo.
Por exemplo, uns auscultadores Sony WH-1000XM6 azuis utilizam um Model ID diferente do de uns Sony WH-1000XM6 pretos.

Como é provável que estes dispositivos tenham o mesmo firmware (mesmo que os Model IDs sejam diferentes), pode ignorar esta mensagem de aviso com segurança.

Mensagem de erro No device with Model ID <number> was found

Devido a limites de taxa mais rigorosos impostos pela API gRPC do Fast Pair, alguns pedidos de dados do modelo podem devolver respostas bem-sucedidas com corpo vazio. Isto fará com que a interface apresente No device with Model ID <number> was found.
Se tiver a certeza de que o Model ID que introduziu existe, aguarde alguns minutos e tente novamente.

[!NOTE] Os dados dos modelos dos dispositivos do nosso conjunto de testes estão incluídos neste repositório e serão lidos a partir de uma cache. Avaliar estes dispositivos não requer uma chamada à API do serviço gRPC. Tenha em atenção que dispositivos da mesma série podem não ter os mesmos Model IDs. Consulte Mensagem de aviso Model not included in test set para obter mais informações.

Manual da Interface

A interface do toolkit

A interface tentará ligar-se ao servidor no arranque.
Quando a ligação for bem-sucedida, será apresentada a mensagem "Connected to the server" no canto inferior direito do ecrã.

Avaliar se um dispositivo é vulnerável requer três passos: descobrir o dispositivo, definir o seu Model ID e executar um ataque.

1. Descobrir dispositivos

O harness pesquisa continuamente por dispositivos Bluetooth Low Energy, que são apresentados no lado esquerdo do ecrã. Os dispositivos que anunciam dados Fast Pair são mostrados no topo. Os detalhes do dispositivo são mostrados no lado direito do ecrã depois de clicar em "Select" num dispositivo.

2. Definir um Model ID

Executar os testes descritos no artigo requer que seja definido um Model ID para um dispositivo. Se o dispositivo expuser a característica GATT do Fast Pair, será apresentado um botão "Read Model ID" nos detalhes do dispositivo. Clicar neste botão tentará ler o Model ID.

Tenha em atenção que muitos dispositivos não implementam corretamente esta característica, devolvendo Model IDs inválidos. Em alternativa, pode definir manualmente o Model ID do dispositivo pressionando o botão "Set Model ID" e introduzindo um valor manualmente. É possível selecionar dispositivos que foram avaliados durante os nossos testes ou introduzir um valor personalizado. Uma lista completa de dispositivos compatíveis com Fast Pair está incluída na raiz deste repositório.

Depois de definir um Model ID, os metadados sobre o dispositivo serão apresentados nos detalhes do dispositivo.

3. Executar um ataque

Para executar um ataque, clique no botão "Attack" no painel de detalhes do dispositivo. Existem três ataques implementados: aplicação do predicado de estado de emparelhamento, reutilização de nonce e ataque de curva inválida. Se já estiver ligado a um dispositivo, marcar a caixa "Reconnect" irá desligar e voltar a ligar ao dispositivo antes de executar o ataque.

A verificação da aplicação do predicado de estado de emparelhamento oferece algumas opções de configuração adicionais:

  • Switch back: Tenta voltar ao anfitrião original utilizando a funcionalidade Audio Switch, se suportada.
  • Bond: Realiza um emparelhamento BR/EDR se o predicado de estado de emparelhamento não for aplicado.
  • Write account key: Escreve uma account key (hardcoded) após o procedimento de emparelhamento.

Enquanto um ataque está em curso, os registos serão apresentados em tempo real na interface. Após a conclusão do ataque, a sua duração será apresentada.

Gestão de tarefas

Por vezes, um ataque ou emparelhamento pode demorar mais tempo do que o esperado.
Pode cancelar um ataque ou emparelhamento clicando no botão "Cancel" na caixa de diálogo correspondente. Se recarregou a interface durante um ataque ou emparelhamento, pode utilizar o gestor de tarefas para cancelar.

No canto superior direito do ecrã, o segundo botão a partir da direita apresenta o estado das tarefas. Se não houver tarefas ativas, apresentará "No active tasks". Caso contrário, apresentará "Task in progress". Para cancelar uma tarefa, clique no botão "Task in progress" e, em seguida, prima o botão "Cancel".

Se o servidor ficar bloqueado devido a uma tarefa pendente que não pode ser cancelada, tente redefinir o adaptador Bluetooth.

[!NOTE] As tarefas podem demorar até 20 segundos a cancelar.

Resolução de problemas

Em alguns casos, o adaptador Bluetooth pode ficar "preso" num "estado inválido". A solução mais simples para este problema é redefinir o adaptador Bluetooth. Para efetuar uma reposição, abra o menu de resolução de problemas pressionando o ícone de chave inglesa no canto superior direito do ecrã. Em seguida, selecione "Reset BLE adapter" e confirme a reposição clicando em "Reset" na caixa de diálogo.

Se ocorrer um erro fatal e o servidor tiver de ser encerrado, o script start.sh reiniciará automaticamente o servidor.

Em cenários com muitos dispositivos BLE próximos, o servidor pode encerrar inesperadamente devido a um erro D-Bus. Isto acontece muito raramente e o script ./start.sh deverá reiniciar automaticamente o servidor se tal acontecer.

Resultados e dispositivos avaliados

FabricanteNome do dispositivoModel IDVulnerável a sequestroTempo até sequestro (s)Vulnerável a reutilização de nonceVulnerável a ataque de curva inválida
AppleBeats Solo Buds6980580NãoSimNão
GooglePixel Buds Pro 212934265Sim6.89NãoNão
JabraElite 8 Active3778746Sim32.01NãoNão
JBLTune Beam3293323Sim6.91Apenas na mesma sessãoNão
MarshallMOTIF II A.N.C.15473012Sim9.49SimNão
NothingEar (a)8625818Sim38.80Apenas na mesma sessãoNão
OnePlusNord Buds Pro 313394952Sim10.19Apenas na mesma sessãoNão
HPPoly VFree 6015984097NãoNãoNão
RedmiBuds 5 Pro11155060Sim8.32Apenas na mesma sessãoNão
SoundcoreLiberty 4 NC5409858Sim15.27SimNão
SonyWF-1000XM512499626Sim9.43SimNão
Audio-TechnicaATH-M20xBT13285048NãoApenas na mesma sessãoNão
BoseQuietComfort Ultra5723549NãoNãoNão
JBLLive 775 NC14502233Sim7.62Apenas na mesma sessãoNão
MarshallMajor V12915160Sim11.70Apenas na mesma sessãoNão
SonosAce V7340495NãoNãoNão
Sony

Se procura dispositivos compatíveis com Fast Pair, pode utilizar a lista de Model IDs para ver todos os dispositivos certificados Fast Pair.

Agradecimentos

Este trabalho foi apoiado pelo Governo Flamengo através do Programa de Investigação em Cibersegurança, com o número de subvenção VOEWICS02.

Baixar ferramenta
WH-1000XM4
13386638
Sim
9.69
Sim
Não
SonyWH-1000XM513911719Sim12.38SimNão
SonyWH-1000XM66360443Sim12.94Apenas na mesma sessãoNão
SonyWH-CH720N16003068Sim7.46SimNão
Bang & OlufsenBeosound A12431472NãoNãoNão
JabraSpeak2 55 UC9888885NãoNãoNão
JBLClip 51917389Sim36.19SimNão
JBLFlip 67278954NãoNãoNão
LogitechWonderboom 411575855Sim11.96Apenas na mesma sessãoNão