Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
WhisperPair — L'implementazione di riferimento ufficiale e la verifica della vulnerabilità del nostro attacco WhisperPair (CVE-2025-36911) che interessa il protocollo Fast Pair di Google. | Kitploit
Strumenti/GitHubGitHub/kuleuven-cosic/whisperpair
Sicurezza BluetoothAnalisi delle VulnerabilitàExploitSicurezza WirelessPenetration TestingSicurezza Hardware e IoTPaper e RicercaApprendimento e Formazione
GitHubkuleuven-cosic/whisperpair

WhisperPair

L'implementazione di riferimento ufficiale e la verifica della vulnerabilità del nostro attacco WhisperPair (CVE-2025-36911) che interessa il protocollo Fast Pair di Google.

Vedi Repository
801033 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

WhisperPair: Banco di prova per Google Fast Pair

Venue License: CC BY 4.0 OS Hardware Website

Uno strumento pratico per testare se i dispositivi Google Fast Pair sono vulnerabili ad attacchi di associazione, binding dell'account e attacchi a livello di protocollo.

Questo repository fornisce il banco di prova WhisperPair, uno strumento per valutare la sicurezza dei dispositivi Google Fast Pair. È progettato sia per ricercatori che per professionisti per riprodurre i nostri risultati e testare i propri dispositivi.

Per una panoramica del progetto, dei dispositivi interessati e del contesto aggiuntivo, visita il nostro sito web.

Questo repository contiene anche l'artefatto per l'articolo One Tap to Hijack Them All: A Security Analysis of the Google Fast Pair Protocol, presentato a IEEE S&P 2026.

Citazione

La versione completa dell'articolo è disponibile qui. Se trovi utile questo lavoro, considera di citare l'articolo:

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},
}

Dichiarazione di non responsabilità e uso responsabile

I materiali sono forniti per consentire la riproducibilità della nostra valutazione e per assistere i ricercatori nell'esecuzione di test difensivi. Utilizza questi materiali solo per ricerche di sicurezza autorizzate e verifica difensiva su dispositivi di tua proprietà o per i quali hai esplicito permesso di test. Poiché il codice in questo repository dimostra vulnerabilità negli accessori di consumo, non utilizzarlo per attaccare dispositivi di terze parti senza un'esplicita autorizzazione scritta. Gli autori hanno condotto tutti gli esperimenti su dispositivi di proprietà del team di progetto o donati con consenso informato. Eseguendo questi strumenti accetti di utilizzarli solo per ricerca difensiva, riproduzione dei nostri risultati o autotest dei dispositivi.

Configurazione e requisiti

[!NOTE] Riepilogo: assicurati di avere una macchina Linux con un adattatore Bluetooth e che Node.js (LTS) e pnpm siano installati.
Puoi eseguire sia l'interfaccia utente che il server sulla stessa macchina eseguendo bash build.sh seguito da bash start.sh.

Questo repository contiene un banco di prova per valutare se un dispositivo target implementa correttamente determinati requisiti di sicurezza di Google Fast Pair. Il banco di prova può testare se il predicato dello stato di associazione è implementato correttamente, se i messaggi con nonce riutilizzati vengono rifiutati e se il dispositivo è vulnerabile a un attacco di curva invalida. Il banco di prova è composto da un server backend e un'interfaccia utente web frontend.

[!NOTE] Se stai cercando l'implementazione degli attacchi in particolare: ./toolkit-server/src/fast-pair-service.ts e ./toolkit-server/src/protocol.ts contengono l'implementazione degli attacchi e del protocollo Fast Pair.

Il toolkit è composto da due componenti: il server e l'interfaccia utente.
Il server deve essere eseguito su un sistema Linux ed è stato testato con un Raspberry Pi 4.
L'interfaccia utente è un frontend Next.js che può essere utilizzato per controllare il server e può essere eseguito ovunque Node.js sia supportato. L'interfaccia utente deve essere in grado di connettersi al server tramite rete.

Abbiamo testato il banco di prova con Raspberry Pi OS Lite (64-bit) (6.12.47+rpt-rpi-v8), BlueZ versione 5.82.

Prerequisiti

Una macchina Linux con BlueZ, Node.js e pnpm installati.

Node.js

Raccomandiamo vivamente di utilizzare la versione Long-Term-Support (LTS) corrente di Node.js (v24.14.0).
Abbiamo verificato che il toolkit funzioni con questa versione. Versioni precedenti potrebbero funzionare fino alla v18, ma versioni più vecchie molto probabilmente si bloccheranno o produrranno risultati imprevisti.

nvm.sh

Se usi nvm per gestire le versioni installate di Node.js, devi assicurarti che anche root abbia accesso alla versione di Node.js gestita da nvm.
Come spiegato in questo post di StackOverflow, potresti aver bisogno di creare un nuovo collegamento simbolico.

root@kitploit:~
# Fonte - https://stackoverflow.com/a/40078875
# Pubblicato da SimpleJ, modificato dalla community. Vedi post 'Timeline' per cronologia modifiche
# Recuperato 2026-03-30, Licenza - 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] Per eseguire il server, devi solo collegare node.

Se Node.js è installato anche tramite un gestore di pacchetti esterno, la versione disponibile per sudo potrebbe essere diversa da quella usata da nvm.
Puoi verificarlo confrontando l'output di node -v e sudo node -v.
Sebbene raccomandiamo Node.js LTS v24, il server dovrebbe essere in grado di funzionare correttamente fino alla v18.

pnpm

Se Node.js v24 LTS è installato, dovresti essere in grado di abilitare pnpm usando il seguente comando:

root@kitploit:~
corepack enable

Strumenti aggiuntivi

Il banco di prova richiede anche hcitool e l2ping.
A seconda della distribuzione Linux, hcitool potrebbe non essere disponibile. Potresti dover installare bluez-deprecated-tools.
Al momento della scrittura, rimane preinstallato nell'ultima versione di Raspberry Pi OS Lite. (1 ottobre 2025)

Se l'adattatore Bluetooth non è acceso, il server tenterà di utilizzare rfkill per accenderlo.
Testare l'estensione Audio Switch richiede rfcomm.

[!NOTE] Il server verificherà la disponibilità di questi strumenti all'avvio. Ulteriori informazioni sulle funzionalità che potrebbero non essere disponibili verranno visualizzate nella console.

Per riprodurre i risultati è necessario l'accesso fisico a un dispositivo vulnerabile.
Tieni presente che la maggior parte dei venditori ha rilasciato aggiornamenti software per WhisperPair, quindi potresti aver bisogno di dispositivi con firmware obsoleto.
Vedi Selezione di un dispositivo per maggiori informazioni sui dispositivi che abbiamo utilizzato nella nostra valutazione.

Configurazione rapida

Se desideri eseguire l'interfaccia utente e il server sulla stessa macchina (Linux), puoi utilizzare gli script build.sh e start.sh.
Per prima cosa, installa le dipendenze richieste e costruisci i componenti usando:

root@kitploit:~
bash build.sh

Assicurati che il Bluetooth sia abilitato:

root@kitploit:~
sudo rfkill unblock bluetooth

Quindi, esegui l'interfaccia utente e il server usando:

root@kitploit:~
bash start.sh

L'interfaccia utente dovrebbe ora essere raggiungibile all'indirizzo http://localhost:3000.

Esecuzione dell'interfaccia utente e del server su host diversi

Puoi eseguire l'interfaccia utente e il server su host diversi.
Ciò ti consente di eseguire il server su una macchina Linux, mentre l'interfaccia utente viene eseguita localmente.
Sebbene non sia raccomandato, puoi farlo come segue:

  1. Assicurati che la directory toolkit-server sia disponibile sulla macchina Linux
  2. Costruisci il toolkit-server eseguendo bash build.sh
  3. Aggiorna il file .env nella directory toolkit-ui in modo che la variabile SERVER_URL sia impostata sull'URL del server. Puoi eseguire bash update_server_url.sh <YOUR_URL> per aggiornare automaticamente il file .env.
  4. Costruisci il toolkit-ui eseguendo bash build.sh
  5. Avvia il toolkit-server eseguendo bash start.sh
  6. Avvia il toolkit-ui eseguendo bash start.sh

L'interfaccia utente dovrebbe ora essere raggiungibile all'indirizzo http://localhost:3000.

Configurazione manuale del server

In alternativa all'uso degli script build.sh e start.sh, puoi anche costruire e avviare il server manualmente. Istruzioni dettagliate su come eseguire questi passaggi si trovano nel README del toolkit-server

Configurazione manuale dell'interfaccia utente

In alternativa all'uso degli script build.sh e start.sh, puoi anche costruire e avviare l'interfaccia utente manualmente. Istruzioni dettagliate su come eseguire questi passaggi si trovano nel README del toolkit-ui

Utilizzo

Selezione di un dispositivo

Devi avere un accessorio compatibile con Fast Pair per eseguire gli attacchi e utilizzare il toolkit.
Abbiamo valutato 25 dispositivi di 16 produttori, mostrati nella tabella sottostante. Se possiedi uno di questi dispositivi e il loro firmware non è stato aggiornato da settembre 2025, puoi riprodurre i nostri risultati.

Puoi anche utilizzare il toolkit per valutare un dispositivo che non abbiamo testato.
Tuttavia, potresti incontrare alcuni errori imprevisti a seconda dell'affidabilità del chipset Bluetooth del dispositivo target.

Quando si eseguono gli attacchi, assicurati di sapere se il dispositivo target è in modalità di associazione o meno.
Alcuni attacchi richiedono che il dispositivo non sia in modalità di associazione, altrimenti potrebbero produrre falsi positivi.
Altri attacchi richiedono che il dispositivo sia in modalità di associazione, altrimenti potrebbero non funzionare.

Se stai cercando dispositivi compatibili con Fast Pair, puoi usare l'elenco degli ID modello per visualizzare tutti i dispositivi certificati Fast Pair.

Messaggio di avviso Modello non incluso nel set di test

L'interfaccia utente mostrerà un messaggio di avviso se hai selezionato un dispositivo che non era incluso nel nostro set di test.
Questo messaggio viene visualizzato in base all'ID modello, che può variare tra diversi colori e regioni per lo stesso dispositivo.
Ad esempio, un paio di cuffie Sony WH-1000XM6 blu utilizza un ID modello diverso rispetto a un paio di cuffie Sony WH-1000XM6 nere.

Poiché è probabile che questi dispositivi abbiano lo stesso firmware (anche se i loro ID modello sono diversi), puoi ignorare tranquillamente questo messaggio di avviso.

Messaggio di errore Nessun dispositivo con ID modello <numero> trovato

A causa di una limitazione più rigorosa della frequenza imposta dall'API gRPC di Fast Pair, alcune richieste per i dati del modello potrebbero restituire risposte riuscite con corpi vuoti. Ciò farà sì che l'interfaccia utente visualizzi Nessun dispositivo con ID modello <numero> trovato.
Se sei certo che l'ID modello inserito esista, attendi qualche minuto e riprova.

[!NOTE] I dati dei modelli per i dispositivi nel nostro set di test sono inclusi in questo repository e verranno letti da una cache. La valutazione di questi dispositivi non richiede una chiamata API al servizio gRPC. Tieni presente che i dispositivi della stessa serie potrebbero non avere gli stessi ID modello. Vedi Messaggio di avviso modello non incluso nel set di test per maggiori informazioni.

Manuale dell'interfaccia utente

L'interfaccia utente del toolkit

L'interfaccia utente tenterà di connettersi al server all'avvio.
Quando la connessione riesce, verrà visualizzato un messaggio "Connesso al server" nell'angolo in basso a destra dello schermo.

Valutare se un dispositivo è vulnerabile richiede tre passaggi: rilevare il dispositivo, impostare il suo ID modello ed eseguire un attacco.

1. Rilevamento dei dispositivi

Il banco di prova esegue una scansione continua dei dispositivi Bluetooth Low Energy, che vengono visualizzati sul lato sinistro dello schermo. I dispositivi che pubblicizzano dati Fast Pair vengono mostrati in cima. I dettagli del dispositivo vengono visualizzati sul lato destro dello schermo dopo aver cliccato "Seleziona" su un dispositivo.

2. Impostazione di un ID modello

Per eseguire i test descritti nell'articolo, è necessario impostare un ID modello per un dispositivo. Se il dispositivo espone la caratteristica GATT di Fast Pair, verrà mostrato un pulsante "Leggi ID modello" nei dettagli del dispositivo. Cliccando su questo pulsante si tenterà di leggere l'ID modello.

Nota che molti dispositivi non implementano correttamente questa caratteristica, restituendo ID modello non validi. In alternativa, puoi impostare manualmente l'ID modello del dispositivo premendo il pulsante "Imposta ID modello" e inserendo un valore manualmente. I dispositivi che sono stati valutati durante i nostri test possono essere selezionati, oppure può essere inserito un valore personalizzato. Un elenco completo dei dispositivi compatibili con Fast Pair è incluso nella radice di questo repository.

Una volta impostato un ID modello, i metadati relativi al dispositivo verranno mostrati nei dettagli del dispositivo.

3. Esecuzione di un attacco

Per eseguire un attacco, clicca sul pulsante "Attacco" nel pannello dei dettagli del dispositivo. Ci sono tre attacchi implementati: controllo dell'applicazione del predicato dello stato di associazione, riutilizzo del nonce e attacco di curva invalida. Se sei già connesso a un dispositivo, selezionare la casella "Riconnetti" si disconnetterà e riconnetterà al dispositivo prima di eseguire l'attacco.

Il controllo dell'applicazione del predicato dello stato di associazione offre alcune opzioni di configurazione aggiuntive:

  • Torna indietro: Tenta di tornare all'host originale utilizzando la funzionalità Audio Switch, se supportata.
  • Associa: Esegue un'associazione BR/EDR se il predicato dello stato di associazione non è applicato.
  • Scrivi chiave account: Scrive una chiave account (hardcodata) dopo la procedura di associazione.

Mentre un attacco è in corso, i log verranno mostrati in tempo reale nell'interfaccia utente. Dopo il completamento dell'attacco, verrà mostrata la sua durata.

Gestione delle attività

A volte, un attacco o un'associazione potrebbero richiedere più tempo del previsto.
Puoi annullare un attacco o un'associazione cliccando sul pulsante "Annulla" nella finestra di dialogo corrispondente. Se hai ricaricato l'interfaccia utente durante un attacco o un'associazione, puoi utilizzare il gestore delle attività per annullare invece.

Nella parte superiore destra dello schermo, il secondo pulsante da destra mostrerà lo stato dell'attività. Se nessuna attività è attiva, verrà visualizzato "Nessuna attività attiva". Altrimenti, dirà "Attività in corso". Per annullare un'attività, clicca sul pulsante "Attività in corso", quindi premi il pulsante "Annulla".

Se il server si blocca a causa di un'attività in sospeso che non può essere annullata, prova a resettare l'adattatore Bluetooth.

[!NOTE] Le attività possono richiedere fino a 20 secondi per essere annullate.

Risoluzione dei problemi

In alcuni casi, l'adattatore Bluetooth potrebbe "bloccarsi" in un "cattivo stato". La soluzione più semplice a questo problema è resettare l'adattatore Bluetooth. Per eseguire un reset, apri il menu di risoluzione dei problemi premendo l'icona della chiave inglese nella parte superiore destra dello schermo. Quindi, seleziona "Resetta adattatore BLE" e conferma il reset cliccando su "Resetta" nella finestra di dialogo.

Se si verifica un errore fatale e il server deve spegnersi, lo script start.sh riavvierà automaticamente il server.

In scenari con molti dispositivi BLE nelle vicinanze, il server potrebbe chiudersi inaspettatamente a causa di un errore D-Bus. Ciò accade molto raramente e lo script ./start.sh dovrebbe riavviare automaticamente il server in tal caso.

Risultati e dispositivi valutati

Se stai cercando dispositivi compatibili con Fast Pair, puoi usare l'elenco degli ID modello per visualizzare tutti i dispositivi certificati Fast Pair.

Riconoscimenti

Questo lavoro è stato supportato dal Governo Fiammingo attraverso il Programma di Ricerca sulla Cybersecurity con il numero di sovvenzione VOEWICS02.

Scarica lo strumento
ProduttoreNome dispositivoID modelloVulnerabile al dirottamentoTempo al dirottamento (s)Vulnerabile al riutilizzo del nonceVulnerabile all'attacco di curva invalida
AppleBeats Solo Buds6980580NoSìNo
GooglePixel Buds Pro 212934265Sì6.89NoNo
JabraElite 8 Active3778746Sì32.01NoNo
JBLTune Beam3293323Sì6.91Solo nella stessa sessioneNo
MarshallMOTIF II A.N.C.15473012Sì9.49SìNo
NothingEar (a)8625818Sì38.80Solo nella stessa sessioneNo
OnePlusNord Buds Pro 313394952Sì10.19Solo nella stessa sessioneNo
HPPoly VFree 6015984097NoNoNo
RedmiBuds 5 Pro11155060Sì8.32Solo nella stessa sessioneNo
SoundcoreLiberty 4 NC5409858Sì15.27SìNo
SonyWF-1000XM512499626Sì9.43SìNo
Audio-TechnicaATH-M20xBT13285048NoSolo nella stessa sessioneNo
BoseQuietComfort Ultra5723549NoNoNo
JBLLive 775 NC14502233Sì7.62Solo nella stessa sessioneNo
MarshallMajor V12915160Sì11.70Solo nella stessa sessioneNo
SonosAce V7340495NoNoNo
SonyWH-1000XM413386638Sì9.69SìNo
SonyWH-1000XM513911719Sì12.38SìNo
SonyWH-1000XM66360443Sì12.94Solo nella stessa sessioneNo
SonyWH-CH720N16003068Sì7.46SìNo
Bang & OlufsenBeosound A12431472NoNoNo
JabraSpeak2 55 UC9888885NoNoNo
JBLClip 51917389Sì36.19SìNo
JBLFlip 67278954NoNoNo
LogitechWonderboom 411575855Sì11.96Solo nella stessa sessioneNo