Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Whisper_Bully — Трехэтапное извлечение Bluetooth BDADDR, DoS и перехват на устройствах Fast Pair; незапатченные примитивы за пределами области CVE-2025-36911 (Ubertooth не требуется) | Kitploit
Инструменты/GitHubGitHub/ymsniper/whisper_bully
РазведкаБезопасность BluetoothЭксплуатацияСбор информацииБезопасность беспроводных сетейТестирование на ПроникновениеRed Teaming
GitHubymsniper/whisper_bully

Whisper_Bully

Трехэтапное извлечение Bluetooth BDADDR, DoS и перехват на устройствах Fast Pair; незапатченные примитивы за пределами области CVE-2025-36911 (Ubertooth не требуется)

Репозиторий
341112 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Whisper Bully

Инструмент исследования Bluetooth: извлечение BDADDR, отказ в обслуживании и перехват

© 2026 @Ymsniper — Только для авторизованных исследований безопасности.


Обзор

Whisper Bully — это трёхэтапный инструмент для исследования безопасности Bluetooth, нацеленный на устройства, рекламирующие Google Fast Pair (сервисный UUID fe2c). Он демонстрирует два неисправленных примитива атаки, которые находятся за пределами области действия патча прошивки CVE-2025-36911:

  • Неисправленная утечка BDADDR — постоянный идентификационный адрес раскрывается через простое BLE-соединение, без необходимости взаимодействия с GATT, работает на полностью исправленных устройствах
  • Обход аутентификации SMP через окно сброса — постоянное связывание устанавливается через стандартный SMP Just Works во время восстановления стека BT после L2CAP-флуда, без какого-либо рукопожатия Fast Pair GATT

⚠️ Этот инструмент НЕ реализует протокол Whisper Pair (Fast Pair GATT). Он никогда не записывает в характеристику Key-Based Pairing (UUID 1236) или характеристику Account Key (UUID 1238). Описанная здесь поверхность атаки является отдельной и не учтена в патче проверки режима сопряжения CVE-2025-36911.


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

Этапы атаки

Этап 1 — Извлечение BDADDR (Неисправленное раскрытие информации)

Основная причина: При установке BLE-соединения хост-стек Linux BlueZ обрабатывает событие LL_CONNECTION_COMPLETE и преобразует разрешимый приватный адрес (RPA) устройства в его постоянный идентификационный адрес, кэшируя его в таблице устройств BlueZ. Это происходит на уровне Link Layer / HCI, до любого взаимодействия с GATT-сервисом. Протокол Fast Pair не задействован.

Что на самом деле делает код:

  1. Выполняет активное BLE-сканирование (BleakScanner) для обнаружения устройств, рекламирующих сервисный UUID Fast Pair fe2c — используется только для идентификации цели, без взаимодействия с протоколом
  2. Устанавливает простое BLE-соединение через BleakClient.connect() — никаких GATT-записей любого рода
  3. Устанавливает агент BlueZ в режим NoInputNoOutput в качестве подготовки к шагу 4
  4. Проверяет наличие сервиса Fast Pair GATT на целевом устройстве — эта проверка является только рекомендательной; инструмент продолжает работу независимо от результата (строка 452 в wb.py)
  5. Выполняет bluetoothctl pair <rpa_addr> — стандартная попытка SMP-сопряжения, а не Fast Pair
  6. Отслеживает вывод bluetoothctl на наличие строки Bonded: yes, которая может содержать связанный адрес
  7. Основной запасной вариант: Вызывает bluetoothctl devices и сравнивает с исходным RPA — любая запись с тем же именем устройства, но другим адресом, является постоянным идентификационным адресом, раскрытым BlueZ на шаге 2

Почему патч это не исправляет:

Исправление CVE-2025-36911 добавляет в прошивку аксессуара проверку режима сопряжения в обработчике характеристики Key-Based Pairing GATT Fast Pair. Этот инструмент никогда не записывает в эту характеристику. Утечка идентификационного адреса происходит на хосте атакующего Linux через собственный кэш устройств BlueZ — полностью вне прошивки аксессуара.

Ключевые замечания по поведению:

  • Извлечение может быть успешным, даже если шаг bluetoothctl pair завершается неудачей или тайм-аутом
  • Проверка наличия GATT-сервиса FP на шаге 4 не блокирует атаку
  • Окно подтверждения PIN не появляется — NoInputNoOutput означает отсутствие взаимодействия с пользователем с обеих сторон для Just Works

Этап 2 — L2CAP-флуд (Режим EMP-всплеска и переподключения)

После получения постоянного адреса можно по желанию выполнить устойчивый L2CAP-флуд типа «отказ в обслуживании», используя модифицированную версию l2flood.

В инструменте используются два режима:

Флаг -R — режим EMP (флуд на этапе 2) Тихий режим «выстрелил и забыл» с всплесками и переподключением. Все потоки синхронизируют свои циклы «подключение → всплеск → принудительное закрытие», чтобы цель получала периодические полные разрывы ACL, а не перемежающуюся перестановку L2CAP-каналов, которую она может поглотить. Использует SO_LINGER {1,0} для немедленного разрыва RST при каждом закрытии. Не выводит stdout в нормальном режиме работы — ошибки подключения подавляются в stderr и выводятся только периодически.

Обычный режим (зондирование для перехвата на этапе 3) Используется без -R для проверки, отвечает ли цель ещё. Этот режим также был улучшен — теперь он автоматически выполняет переподключения и выводит no response from <addr>: id N, когда цель перестаёт отвечать, что wb.py отслеживает для запуска перехвата.

Результат: Целевое устройство становится недоступным для обычных попыток подключения, пока активен флуд. Устройство полностью восстанавливается, когда атака прекращается — никакого постоянного повреждения.

Поведение многопоточности:

  • Потоки синхронизируются после каждого цикла всплеска, чтобы давление на цель оказывалось одновременно
  • Эффективно до ~16 потоков на типичном оборудовании; дальнейшее увеличение даёт убывающую отдачу
  • Для увеличения давления можно одновременно использовать несколько HCI-адаптеров

Этап 3 — Перехват через SMP Just Works во время окна сброса (Неисправленный обход аутентификации)

Основная причина: Устойчивый L2CAP-флуд вызывает сбой или сброс стека Bluetooth целевого устройства. В окне восстановления — до того, как GATT-сервис Fast Pair будет перерегистрирован и Security Manager полностью переинициализируется — устройство принимает стандартную SMP-связку Just Works от NoInputNoOutput, не требуя рукопожатия Fast Pair GATT, которое обычно ограничивает связывание. Полученная связка является постоянной: она переживает сбросы BT-адаптера и показывает Paired: yes / Bonded: yes в bluetoothctl info.

Почему это отдельное открытие, а не часть CVE-2025-36911:

Патч CVE-2025-36911 внедряет проверку режима сопряжения в обработчик характеристики Key-Based Pairing GATT Fast Pair. Этап 3 никогда не обращается к этой характеристике. Связывание устанавливается на уровне SMP в окне, когда GATT-сервер FP ещё не переинициализировался, поэтому шлюз безопасности Fast Pair даже не достигается. Полностью исправленное устройство остаётся уязвимым, потому что патч не имеет видимости уровня SMP во время восстановления стека.

Что на самом деле делает код:

  1. Отправляет L2CAP-зонд (l2flood -c -1 -t 2) для подтверждения, что устройство не отвечает — ищет в выводе no response from <addr>: id N
  2. После подтверждения состояния без ответа запускает в цикле с повторными попытками bluetoothctl connect <permanent_addr>
  3. SMP согласовывает NoInputNoOutput / NoInputNoOutput → модель ассоциации Just Works → связывание завершается
  4. bluetoothctl connect возвращает код выхода 0 при успехе
  5. Связка сохраняется после завершения атаки

Вероятность успеха в зависимости от состояния устройства:

Состояние устройстваОжидаемый результат
Активно под флудом / не отвечаетНаивысший успех — стек в деградированном состоянии во время восстановления
Восстанавливается после флудаВысокий успех — временное окно повторной инициализации SM
Полностью восстановилосьБолее низкий успех — нормальная безопасность восстановлена
ВыключеноСбой

Отношение к CVE-2025-36911

Скачать инструмент