Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DIY_WhisperPair — Détournement d'accessoires Bluetooth via Google Fast Pair : WhisperPair CVE-2025-36911 - Implémentation de référence & kit de vérification de vulnérabilité | Kitploit
Outils/GitHubGitHub/spectrixdev/diy_whisperpair
Sécurité BluetoothAnalyse des VulnérabilitésExploitationSécurité Sans FilTests d'IntrusionSécurité Matériel et IoTArticles et RechercheApprentissage et Éducation
GitHubspectrixdev/diy_whisperpair

DIY_WhisperPair

Détournement d'accessoires Bluetooth via Google Fast Pair : WhisperPair CVE-2025-36911 - Implémentation de référence & kit de vérification de vulnérabilité

Voir le dépôt
103177il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DIY-WhisperPair

Implémentation de référence CVE-2025-36911 & Kit de vérification de vulnérabilité

Research CVE Status

IMPLÉMENTATION OFFICIELLE MAINTENANT EN LIGNE, grâce à l'équipe de KU Leuven (Merci pour la mention)

AVIS LÉGAL : Ceci est un outil de recherche en sécurité. Lisez LEGAL.md avant toute utilisation. L'accès non autorisé à des systèmes informatiques est une infraction pénale.


Démonstration WhisperPair

Qu'est-ce que WhisperPair ?

Détournement d'accessoires Bluetooth à l'aide de Google Fast Pair.

WhisperPair (CVE-2025-36911) est une vulnérabilité critique qui permet à des attaquants d'appairer de force avec des accessoires audio phares sans le consentement de l'utilisateur, souvent en moins de 10 secondes.

DIY-WhisperPair est un kit de recherche implémentant ces attaques pour démontrer trois risques clés :

  • Détournement d'appareil : Prise de contrôle des flux audio et microphone en contournant les vérifications du mode d'appairage.
  • Géolocalisation : Enregistrement malveillant d'appareils sur le réseau Find Hub de Google pour traquer les victimes.
  • Impact inter-écosystèmes : Exploitation des accessoires quel que soit le téléphone appairé (iOS ou Android).

[!NOTE] Recherche uniquement : Ce kit contient des scanners et vérificateurs Proof-of-Concept. Il n'inclut pas d'outils pour l'écoute active, la géolocalisation persistante ou l'injection de charges malveillantes. Son seul but est d'identifier les appareils vulnérables.


Démarrage rapide

root@kitploit:~
# Installation
git clone https://github.com/SpectrixDev/DIY_WhisperPair.git
cd DIY_WhisperPair
pip install -e .

# Exécuter l'interface interactive
whisperpair

Ceci lance un menu interactif :

root@kitploit:~
╦ ╦╦ ╦╦╔═╗╔═╗╔═╗╦═╗╔═╗╔═╗╦╦═╗
║║║╠═╣║╚═╗╠═╝║╣ ╠╦╝╠═╝╠═╣║╠╦╝
╚╩╝╩ ╩╩╚═╝╩  ╚═╝╩╚═╩  ╩ ╩╩╩╚═

────────────── Menu Principal ──────────────

  1  Scanner    Détecter les appareils Fast Pair à proximité
  2  Vérifier   Tester la vulnérabilité de l'appareil (nécessite autorisation)
  3  Infos      Obtenir des informations détaillées sur l'appareil
  4  À propos   En savoir plus sur CVE-2025-36911
  0  Quitter    Quitter l'application

Sélectionnez une option [1] :

Pour les chercheurs : API Python

Cette bibliothèque est conçue pour être facilement extensible. Importez ce dont vous avez besoin :

Fonctions simples

root@kitploit:~
import asyncio
from whisperpair import scan_devices, verify_device, get_device_info

# Scanner les appareils Fast Pair
devices = asyncio.run(scan_devices(timeout=10))
for d in devices:
    print(f"{d.address} - {d.name} - Risque : {'ÉLEVÉ' if not d.is_in_pairing_mode else 'Faible'}")

# Trouver uniquement les appareils vulnérables (pas en mode appairage)
vulnerable = asyncio.run(scan_devices(vulnerable_only=True))

# Vérifier un appareil spécifique (NÉCESSITE AUTORISATION)
result = asyncio.run(verify_device("AA:BB:CC:DD:EE:FF"))
if result.success:
    print(f"VULNÉRABLE - Fournisseur : {result.provider_address}")

# Obtenir les informations de l'appareil
info = asyncio.run(get_device_info("AA:BB:CC:DD:EE:FF"))
print(f"Modèle : {info['model_name']}")

Construire des outils personnalisés

root@kitploit:~
from whisperpair import (
    # Scanner
    FastPairScanner,
    FastPairDevice,
    
    # Client  
    FastPairClient,
    VerificationResult,
    
    # Protocole
    KeyBasedPairingRequest,
    KeyBasedPairingResponse,
    PairingRequestFlags,
    parse_bluetooth_address,
    parse_kbp_response_multi_strategy,
    
    # Crypto
    FastPairCrypto,
    aes_128_encrypt,
    aes_128_decrypt,
    generate_account_key,
    
    # Constantes
    FAST_PAIR_SERVICE_UUID,
    KEY_BASED_PAIRING_CHAR_UUID,
    KNOWN_MODEL_IDS,
)

# Scanner personnalisé avec callbacks
def on_found(device: FastPairDevice):
    if not device.is_in_pairing_mode:
        print(f"[!] Cible potentielle : {device.address}")

scanner = FastPairScanner(timeout=15, on_device_found=on_found)
asyncio.run(scanner.scan())

# Construire des paquets de protocole bruts (flags 0x11 = INITIATE_BONDING | EXTENDED_RESPONSE)
target_bytes = parse_bluetooth_address("AA:BB:CC:DD:EE:FF")
request = KeyBasedPairingRequest.for_verification(provider_address=target_bytes)
packet = request.build()  # Texte clair de 16 octets

# Plusieurs stratégies de vérification disponibles :
# - strategy_raw_kbp()      - flags 0x11, fonctionne sur la plupart des appareils vulnérables
# - strategy_with_seeker()  - flags 0x02, inclut l'adresse du chercheur
# - strategy_retroactive()  - flags 0x0A, contourne certaines vérifications
# - strategy_extended()     - flags 0x10, pour les appareils plus récents

# Flux personnalisé complet (clé AES optionnelle - la détection de réponse seule indique la vulnérabilité)
async with FastPairClient("AA:BB:CC:DD:EE:FF") as client:
    model_id = await client.read_model_id()
    result = await client.verify_pairing_behavior()  # Aucune clé nécessaire pour la détection
    if result.response_received:
        print("VULNÉRABLE - l'appareil a répondu alors qu'il ne le devrait pas")

Exemples de scripts

Voir examples.py pour des exemples prêts à copier-coller :

root@kitploit:~
python examples.py scan              # Scan basique
python examples.py vulnerable        # Trouver des appareils vulnérables
python examples.py verify AA:BB:CC:DD:EE:FF
python examples.py custom            # Scanner avec callbacks

Commandes CLI

Mode interactif (par défaut)

root@kitploit:~
whisperpair

Commandes directes

root@kitploit:~
# Scanner les appareils
whisperpair scan
whisperpair scan --vulnerable
whisperpair scan --timeout 15

# Obtenir les informations de l'appareil
whisperpair info AA:BB:CC:DD:EE:FF

# Vérifier la vulnérabilité (nécessite des flags)
whisperpair verify AA:BB:CC:DD:EE:FF --authorized

# En savoir plus sur la vulnérabilité
whisperpair about

Exigences légales

Vous DEVEZ avoir une autorisation

Cet outil effectue des opérations Bluetooth actives. Avant d'exécuter toute commande de vérification, vous devez avoir :

  1. l'autorisation écrite du propriétaire de l'appareil, OU
  2. posséder l'appareil vous-même

Lois spécifiques à la juridiction

Voir LEGAL.md pour des conseils détaillés.


La vulnérabilité (CVE-2025-36911)

Le défaut

Google Fast Pair exige que les appareils n'acceptent les demandes d'appairage que lorsqu'ils sont en mode appairage. De nombreux appareils ne respectent pas cette vérification :

root@kitploit:~
ATTENDU : L'appareil vérifie "Suis-je en mode appairage ?" → NON → Rejeter
RÉEL :   L'appareil accepte la demande quel que soit l'état du mode

Comment fonctionne la détection

La vulnérabilité est détectée en vérifiant si un appareil répond du tout à une demande d'appairage basée sur une clé lorsqu'il n'est pas en mode appairage :

root@kitploit:~
graph TD
    subgraph Paquet["Demande d'appairage basée sur une clé (16 octets)"]
      direction LR
      B0["0x00"]
      B1["0x11"]
      MAC["MAC : 6 octets"]
      Salt["Salt : 8 octets"]
    end

    B0:::byte -- "Type de message" --> Desc0["Demande d'appairage basée sur une clé"]
    B1:::byte -- "Flags" --> Desc1["INITIATE_BONDING | EXTENDED_RESP"]

    classDef byte fill:#e1f5fe,stroke:#333,stroke-width:1px;

Détection : Réponse reçue = VULNÉRABLE (aucune clé AES nécessaire !)

Impact

Un attaquant à portée Bluetooth (~10-14 m) peut :

  • Jouer de l'audio via le casque de la victime
  • Accéder au microphone pour la surveillance
  • Géolocaliser via Google Find Hub

Appareils concernés (avant correctif)

FabricantAppareils
GooglePixel Buds Pro 2

Structure du projet

root@kitploit:~
DIY_WhisperPair/
├── src/whisperpair/
│   ├── __init__.py      # Exportations de l'API publique
│   ├── scanner.py       # Découverte d'appareils BLE
│   ├── client.py        # Client GATT et vérification
│   ├── protocol.py      # Constructeurs de paquets
│   ├── crypto.py        # AES-128, ECDH, clés
│   ├── constants.py     # UUID, IDs de modèles
│   └── cli.py           # CLI interactif
├── examples.py          # Extraits de code prêts à copier-coller
├── security_demo.py     # Démo de vérification autonome
├── LEGAL.md
└── README.md

Installation

root@kitploit:~
git clone https://github.com/SpectrixDev/DIY_WhisperPair.git
cd DIY_WhisperPair
python3 -m venv venv
source venv/bin/activate  # Linux/macOS
pip install -e .

Prérequis

  • Python 3.10+
  • Adaptateur Bluetooth avec support BLE
  • Linux : BlueZ 5.50+
  • Windows : Windows 10 1703+
  • macOS : macOS 10.13+

Références

Recherche originale

  • Site web : whisperpair.eu
  • CVE : CVE-2025-36911
  • Article : "WhisperPair : Détournement d'accessoires Bluetooth à l'aide de Google Fast Pair"
  • Auteurs : KU Leuven DistriNet (Duttagupta, Antonijević, Preneel, Wyns, Singelée)

Documentation technique

  • Spécification Google Fast Pair
  • Protocole d'appairage basé sur une clé

Vidéo

Un clic pour tous les détourner


Utilisation responsable

Cet outil est fourni uniquement pour :

  • La recherche en sécurité et la vérification de vulnérabilités
  • Les tests de pénétration autorisés
  • La validation par les fabricants d'appareils
  • Les fins éducatives

PAS pour : L'accès non autorisé, le harcèlement, la surveillance ou toute activité illégale.


Licence

Licence MIT - Voir LICENSE


Remerciements

  • SpectrixDev - Mainteneur du projet
  • KU Leuven DistriNet - Recherche originale
  • Google Android Security Team - Divulgation coordonnée
  • Seytonic - Excellente vidéo explicative
Télécharger l’outil
JuridictionLoi applicable
Royaume-UniComputer Misuse Act 1990, Sections 1-3A
États-UnisComputer Fraud and Abuse Act (CFAA)
UEDirective 2013/40/UE
Allemagne§ 202a-202c StGB
AustralieCriminal Code Act 1995, Partie 10.7
SonyWF-1000XM4, WH-1000XM5, LinkBuds S
JBLTune Buds, Live Pro 2
AnkerSoundcore Liberty 4
AutresVoir whisperpair.eu