Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Whisper_Bully — Extraction de BDADDR Bluetooth en trois étapes, DoS et détournement sur les appareils Fast Pair ; primitives non corrigées hors du périmètre de CVE-2025-36911 (aucun Ubertooth requis) | Kitploit
Outils/GitHubGitHub/ymsniper/whisper_bully
ReconnaissanceSécurité BluetoothExploitationCollecte d'InformationsSécurité Sans FilTests d'IntrusionRed Teaming
GitHubymsniper/whisper_bully

Whisper_Bully

Extraction de BDADDR Bluetooth en trois étapes, DoS et détournement sur les appareils Fast Pair ; primitives non corrigées hors du périmètre de CVE-2025-36911 (aucun Ubertooth requis)

Voir le dépôt
34112il y a 2 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

Whisper Bully

Outil de recherche sur l'extraction BDADDR Bluetooth, le déni de service et le détournement

© 2026 @Ymsniper — Pour la recherche en sécurité autorisée uniquement.


Aperçu

Whisper Bully est un outil de recherche en sécurité Bluetooth en trois étapes qui cible les appareils annonçant Google Fast Pair (UUID de service fe2c). Il démontre deux primitives d'attaque non corrigées qui sont hors du périmètre du correctif firmware CVE-2025-36911 :

  • Fuite BDADDR non corrigée — adresse d'identité permanente divulguée via une simple connexion BLE, sans interaction GATT requise, fonctionne sur les appareils entièrement corrigés
  • Contournement de l'authentification SMP via la fenêtre de réinitialisation — liaison persistante établie via SMP Just Works standard pendant la récupération de la pile BT après un flood L2CAP, sans aucune poignée de main GATT Fast Pair

⚠️ Cet outil n'implémente PAS le protocole Whisper Pair (GATT Fast Pair). Il n'écrit jamais sur la caractéristique Key-Based Pairing (UUID 1236) ni sur la caractéristique Account Key (UUID 1238). La surface d'attaque décrite ici est distincte du correctif de vérification du mode d'appairage CVE-2025-36911 et n'est pas traitée par celui-ci.


https://github.com/user-attachments/assets/67f2bcb6-38ad-4ba0-80c5-36dbb54f3f11

Étapes d'attaque

Étape 1 — Extraction BDADDR (divulgation d'informations non corrigée)

Cause racine : Lorsqu'une connexion BLE est établie, la pile hôte BlueZ de Linux traite l'événement LL_CONNECTION_COMPLETE et résout l'adresse privée résoluble (RPA) de l'appareil vers son adresse d'identité permanente, en la mettant en cache dans la table des appareils BlueZ. Cela se produit au niveau de la couche liaison / HCI, avant toute interaction avec les services GATT. Aucun protocole Fast Pair n'est impliqué.

Ce que fait réellement le code :

  1. Effectue un scan BLE actif (BleakScanner) pour les appareils annonçant l'UUID de service Fast Pair fe2c — utilisé uniquement pour l'identification des cibles, aucune interaction protocolaire
  2. Établit une connexion BLE simple via BleakClient.connect() — aucune écriture GATT d'aucune sorte
  3. Configure l'agent BlueZ sur NoInputNoOutput en préparation de l'étape 4
  4. Vérifie si le service GATT Fast Pair est présent sur la cible — cette vérification est uniquement indicative ; l'outil continue quel que soit le résultat (ligne 452 de wb.py)
  5. Exécute bluetoothctl pair <rpa_addr> — tentative d'appairage SMP Bluetooth standard, pas Fast Pair
  6. Surveille la sortie standard de bluetoothctl pour la sortie Bonded: yes, qui peut contenir l'adresse liée
  7. Repli principal : Appelle bluetoothctl devices et compare avec la RPA initiale — toute entrée avec le même nom d'appareil mais une adresse différente est l'adresse d'identité permanente, divulguée par BlueZ à l'étape 2

Pourquoi le correctif ne résout pas ce problème :

Le correctif firmware CVE-2025-36911 ajoute une vérification du mode d'appairage au gestionnaire de la caractéristique GATT Key-Based Pairing Fast Pair sur l'accessoire. Cet outil n'écrit jamais sur cette caractéristique. La fuite d'adresse d'identité se produit sur l'hôte Linux de l'attaquant via le cache d'appareils de BlueZ lui-même — entièrement en dehors du firmware de l'accessoire.

Points clés de comportement :

  • L'extraction peut réussir même si l'étape bluetoothctl pair échoue ou expire
  • La vérification de présence du service GATT FP à l'étape 4 ne conditionne pas l'attaque
  • Aucune fenêtre de confirmation PIN n'apparaît — NoInputNoOutput signifie aucune interaction utilisateur des deux côtés pour Just Works

Étape 2 — Flood L2CAP (mode EMP burst-reconnect)

Une fois l'adresse permanente connue, exécutez facultativement un déni de service L2CAP soutenu à l'aide d'une version modifiée de l2flood.

Deux modes sont utilisés dans l'outil :

Option -R — mode EMP (flood de l'étape 2) Reconnexion en rafales silencieuse de type « fire-and-forget ». Tous les threads synchronisent leurs cycles connect → burst → fermeture forcée afin que la cible reçoive des démontages ACL complets périodiques plutôt que des réorganisations de canaux L2CAP échelonnées qu'elle peut absorber. Utilise SO_LINGER {1,0} pour un démontage RST immédiat à chaque fermeture. Ne produit aucune sortie stdout pendant le fonctionnement normal — les erreurs de connexion sont envoyées vers stderr et imprimées périodiquement uniquement.

Mode normal (sonde de détournement de l'étape 3) Utilisé sans -R pour vérifier si la cible répond encore. Ce mode a également été amélioré — il gère désormais les reconnexions automatiquement et émet no response from <addr>: id N lorsque la cible cesse de répondre, c'est ce que wb.py surveille pour déclencher le détournement.

Résultat : L'appareil cible devient non réactif aux tentatives de connexion normales pendant que le flood est actif. L'appareil récupère complètement lorsque l'attaque s'arrête — aucun dommage permanent.

Comportement multithread :

  • Les threads se synchronisent après chaque cycle de rafale afin que la pression atteigne la cible simultanément
  • Efficace jusqu'à ~16 threads sur du matériel typique ; rendements décroissants au-delà
  • Plusieurs adaptateurs HCI peuvent être utilisés simultanément pour une pression accrue

Étape 3 — Détournement via SMP Just Works pendant la fenêtre de réinitialisation (contournement d'authentification non corrigé)

Cause racine : Le flood L2CAP soutenu provoque le crash ou la réinitialisation de la pile Bluetooth de l'appareil cible. Pendant la fenêtre de récupération — avant que le service GATT Fast Pair ne soit ré-enregistré et avant que le Security Manager ne soit complètement ré-initialisé — l'appareil accepte une liaison SMP Just Works standard de NoInputNoOutput sans exiger la poignée de main GATT Fast Pair qui conditionnerait normalement la liaison. La liaison résultante est persistante : elle survit aux réinitialisations de l'adaptateur BT et affiche Paired: yes / Bonded: yes dans bluetoothctl info.

Pourquoi cette découverte est distincte de CVE-2025-36911 :

Le correctif CVE-2025-36911 impose une vérification du mode d'appairage dans le gestionnaire de la caractéristique GATT Key-Based Pairing FP. L'étape 3 ne touche jamais à cette caractéristique. La liaison est établie au niveau de la couche SMP pendant une fenêtre où le serveur GATT FP ne s'est pas ré-initialisé, donc la barrière de sécurité Fast Pair n'est même jamais atteinte. Un appareil entièrement corrigé reste vulnérable à cette attaque car le correctif n'a aucune visibilité sur la couche SMP pendant la récupération de la pile.

Ce que fait réellement le code :

  1. Envoie une sonde L2CAP (l2flood -c -1 -t 2) pour confirmer que l'appareil est non réactif — recherche no response from <addr>: id N dans la sortie
  2. Une fois l'état non réactif confirmé, exécute bluetoothctl connect <permanent_addr> dans une boucle de tentatives
  3. SMP négocie NoInputNoOutput / NoInputNoOutput → modèle d'association Just Works → la liaison aboutit
  4. bluetoothctl connect renvoie le code de sortie 0 en cas de succès
  5. La liaison persiste après l'arrêt de l'attaque

Probabilité de succès selon l'état de l'appareil :

État de l'appareilRésultat attendu
Activement en flood / non réactifSuccès le plus élevé — pile dans un état dégradé pendant la récupération
En cours de récupération après le floodSuccès élevé — fenêtre temporaire de ré-initialisation du SM
Entièrement récupéréSuccès plus faible — sécurité normale rétablie
ÉteintÉchec

Relation avec CVE-2025-36911

Télécharger l’outil