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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/louisabricot/writeup-cve-2019-19194
Безопасность встроенных системБезопасность BluetoothБезопасность IoTАнализ уязвимостейЭксплуатацияБезопасность беспроводных сетей
GitHublouisabricot/writeup-cve-2019-19194

writeup-cve-2019-19194

Разбор и теоретическая Proof-of-Concept для CVE-2019-19194

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
1203 лет назадЕщё не проверено

Разбор CVE-2019-19194

Это разбор и теоретическое доказательство концепции уязвимости CVE-2019-19194.

⚠️ Эта CVE была найдена https://asset-group.github.io/disclosures/sweyntooth/

Содержание

  • Краткое описание

  • Уязвимое ПО и версия

  • Обзор

    • Стек протоколов и архитектура
    • Процедура сопряжения
  • Доказательство концепции

  • Ссылки

Краткое описание

В этом отчете описывается, как уязвимость Zero LTK Initialisation (CVE-2019-19194) позволяет атакующему получить полный контроль над связью в приложении Bluetooth Low Energy (BLE), обходя процедуру сопряжения Secure Connections.

Уязвимое ПО и версия

Эта уязвимость затрагивает продукты, использующие реализации SMP от Telink, которые поддерживают процедуру сопряжения Secure Connections.

Обзор

BLE — это малопотребляющая система радиосвязи малого радиуса действия. Она состоит из набора стандартизированных протоколов, которые обеспечивают удаленное соединение и безопасность между двумя устройствами.

Стек протоколов и архитектура

Стек BLE распределен по двум архитектурным блокам: Host и Controller.

Такое распределение позволяет реализовать каждый блок в физически отдельных компонентах.

Стандартный логический интерфейс, называемый Host Controller Interface (HCI), обеспечивает связь между двумя блоками.

Поверх блока Host находится приложение BLE.

Bluetooth Low Energy protocol stack and architecture

Физический уровень (PHY)

Физический уровень работает в промышленном, научном и медицинском (ISM) радиодиапазоне, в спектре 2,4 ГГц. Он использует 40 каналов: 3 рекламных канала и 37 каналов данных.

Канальный уровень (LL)

Канальный уровень (LL) имеет множество обязанностей, которые не будут описаны здесь. Он управляется конечным автоматом, который определяет важные роли и состояния:

  • Рекламное устройство передает рекламные пакеты по рекламным каналам. Во время рекламы устройство сообщает, является ли оно подключаемым.
  • Сканирующее устройство прослушивает рекламные пакеты от других устройств.
  • Как только сканирующее устройство получило рекламные пакеты от другого устройства, оно может инициировать процедуру подключения, если рекламодатель является подключаемым.

Протокол управления логическим каналом и адаптации (L2CAP)

Протокол управления логическим каналом и адаптации действует как уровень мультиплексирования протоколов. Он обрабатывает фрагментацию и объединение пакетов между нижележащими и вышележащими уровнями.

Общий профиль доступа (GAP)

Общий профиль доступа касается обнаружения и подключения устройств. Другими словами, GAP определяет процедуры передачи рекламных пакетов и их приема через сканирование.

Общий профиль атрибутов (GATT)

После установления соединения между двумя устройствами BLE, GATT использует модель клиент/сервер для обмена данными между ними. И клиент, и сервер используют протокол атрибутов (ATT).

  • Сервер: устройство, предоставляющее данные, принимает команды и отправляет ответы, уведомления или индикации.
  • Клиент: устройство, запрашивающее чтение данных, отправляет команды, принимает входящие ответы, уведомления и индикации.

Менеджер безопасности (SM)

SM поддерживает процедуры, связанные с безопасностью, такие как сопряжение, связывание и распределение ключей. Сопряжение устройств считается основой безопасности Bluetooth: после сопряжения два устройства могут шифровать свое общение, аутентифицировать друг друга и т.д.

Процедура сопряжения

Среди различных протоколов, участвующих в связи BLE, уязвимость zero LTK installation происходит во время процедуры сопряжения в режиме Secure Connections.

Overview pairing steps

Режимы сопряжения

  • Legacy использует простой процесс обмена секретными данными для получения симметричного ключа, которым шифруется канал во время фазы распределения ключей.
  • Secure Connections (SC) использует криптографию с открытым ключом на эллиптических кривых для получения симметричного ключа. Этот ключ используется для шифрования канала во время фазы распределения ключей.

Режим сопряжения Secure Connections является «более безопасным подходом» и был разработан для устранения слабостей режима Legacy. Однако уязвимость zero LTK installation показала, что плохие реализации сопряжения SC позволяют обойти защиту.

Процесс сопряжения Secure Connections

Secure Connections pairing procedure

Фаза 1 — Обмен информацией

Центральное устройство отправляет запрос на сопряжение, и оба устройства обмениваются информацией о своих возможностях и требованиях безопасности. Эта фаза определяет режим сопряжения.

Фаза 2 — Генерация ключей
  • Обмен открытыми ключами: Центральное устройство инициирует обмен открытыми ключами. Периферийное и центральное устройства проверяют, что полученный ключ находится на кривой P-256.

  • Вычисление DHKey: Каждое устройство использует свой собственный закрытый ключ (SK) и открытый ключ другого устройства (PK) для вычисления своего ключа Диффи-Хеллмана (DHKey). Таким образом, оба устройства владеют одним и тем же значением DHKey.

      Central: DHKey = p256(SKc, PKp)
      Peripheral: DHKey = p256(SKp, PKc)
      
    
  • Если была запрошена защита от MITM, выполняется интерактивная процедура для подтверждения подлинности сопрягаемых устройств.

  • Вычисление долгосрочного ключа (LTK) и взаимное подтверждение: Устройства аутентифицируют друг друга и вычисляют ключ LTK. Из LTK выводится сеансовый ключ для шифрования канала перед Фазой 3.

Фаза 3 — Распределение ключей

Через зашифрованный канал устройства могут распределять ключи.

Доказательство концепции

Основная причина zero LTK installation заключается в том, что не проверяется состояние, в котором находятся два устройства в процессе сопряжения. Таким образом, атакующее центральное устройство может пропустить этап генерации ключей и аутентификации. В результате на периферийном устройстве ключ LTK устанавливается в 0, и, следовательно, сеансовый ключ легко выводится.

Exploit skips phase 2 of SC pairing

⚠️ Это полностью теоретическое доказательство концепции, так как мне не удалось получить pcap-файл процедур обнаружения, рекламы или сопряжения BLE, и у меня не было устройства BLE с реализацией SMP от Telink.

Zero LTK installation

Ссылки

  • Garbelini, M. E., Wang, C., Chattopadhyay, S., Sun, S., & Kurniawan, E. (2020, July). Sweyntooth: Unleashing mayhem over bluetooth low energy. In Proceedings of the 2020 USENIX Conference on Usenix Annual Technical Conference (pp. 911-925).
  • Claverie, T., Docq, N., & Lopes-Esteves, J. Analyse des propriétés de sécurité dans les implémentations du Bluetooth Low Energy.
  • Bluetooth Core Specification 5.0
  • Руководство для разработчиков: безопасность Bluetooth Low Energy
Скачать инструмент