Логотип
Главная | Статьи | Сниффинг BLE-трафика: как взломать «умные» замки. Перехват пакетов через hcitool (Linux) и реверс-инжиниринг с Wireshark
Сниффинг BLE-трафика: как взломать «умные» замки. Перехват пакетов через hcitool (Linux) и реверс-инжиниринг с Wireshark

Сниффинг BLE-трафика: как взломать «умные» замки. Перехват пакетов через hcitool (Linux) и реверс-инжиниринг с Wireshark

5 июня, 2025

38

Эй, кибер-ковбои и любители раскопать, как работают штуки! Сегодня мы погружаемся в мир Bluetooth Low Energy (BLE) и разбираемся, как можно перехватить трафик «умных» замков, чтобы понять их протокол и, возможно, найти уязвимости. Мы используем связку из hcitool на Linux для базового сниффинга и Wireshark для глубокого анализа. Это не просто теория — будет код, шаги и хардкорные лайфхаки. Готовы вскрывать устройства? Погнали!

Что такое BLE и почему «умные» замки уязвимы?

Bluetooth Low Energy (BLE) — это беспроводной протокол, который используется в миллионах IoT-устройств: от фитнес-трекеров до «умных» замков. Он экономичен по энергии, но часто жертвует безопасностью ради удобства. Многие производители замков реализуют протоколы связи на коленке, не шифруют данные или используют слабые ключи. А это — наша точка входа.

Почему замки уязвимы?

  • Незашитый трафик или слабое шифрование.
  • Возможность подмены команд (например, «открыть замок»).
  • Недостаточная защита от MitM (Man-in-the-Middle) атак.

Цель: перехватить BLE-трафик, проанализировать пакеты и понять, как замок общается с приложением. С этим знанием можно попытаться воспроизвести команды или найти баги в протоколе.

Подготовка к сниффингу BLE-трафика

Прежде чем начать, убедитесь, что у вас есть:

  • Linux-система (Kali Linux или Ubuntu — идеально).
  • Bluetooth-адаптер с поддержкой BLE (например, CSR 4.0).
  • Установленные пакеты bluez для работы с Bluetooth.
  • Wireshark для анализа трафика.

Шаг 1: Установка и настройка инструментов

  1. Обновите систему и установите bluez:

2. Проверьте, что ваш Bluetooth-адаптер работает:

Если адаптер не отображается, включите его:

3. Установите Wireshark, если его нет:

Шаг 2: Находим BLE-устройство с помощью hcitool

hcitool — это утилита из пакета bluez, которая позволяет сканировать Bluetooth-устройства и взаимодействовать с ними. Мы используем её для обнаружения «умного» замка.

Запустите сканирование BLE-устройств:

Вы увидите список устройств с их MAC-адресами. Найдите ваш замок (обычно в названии есть что-то вроде «Lock» или имя бренда). Запомните MAC-адрес, например, AA:BB:CC:DD:EE:FF.

Лайфхак: Если устройств много, подключите замок через официальное приложение и посмотрите, какое устройство активно во время соединения.

Перехват BLE-трафика

Шаг 3: Сниффинг с помощью Bluetooth-адаптера

Для перехвата пакетов BLE нам нужно перевести адаптер в режим мониторинга. В современных версиях bluez есть команда btmon для этого.

Запустите мониторинг:

Теперь взаимодействуйте с замком через приложение (открывайте/закрывайте). btmon покажет поток данных, включая соединения, разрывы и пакеты. Но читать это в терминале — боль. Поэтому переходим к Wireshark.

Шаг 4: Захват трафика в Wireshark

Wireshark позволяет визуализировать и анализировать Bluetooth-трафик. Для BLE нужно использовать специальный интерфейс захвата.

  1. Запустите Wireshark с правами суперпользователя:
  1. Выберите интерфейс bluetooth0 (или другой, связанный с вашим адаптером). Если его нет, убедитесь, что bluez настроен правильно.
  2. Начните захват пакетов и снова взаимодействуйте с замком через приложение.
  3. Фильтруйте пакеты по MAC-адресу замка:

Вы увидите пакеты с данными: команды, ответы, значения характеристик (GATT).

Реверс-инжиниринг протокола

Шаг 5: Анализ пакетов

Теперь ваша задача — понять, что за данные отправляются. BLE использует GATT (Generic Attribute Profile), где данные хранятся в виде характеристик с UUID.

  • Найдите пакеты с типом ATT (Attribute Protocol).
  • Посмотрите на UUID характеристик и значения. Например, команда «открыть замок» может быть чем-то вроде 0x01 в определённой характеристике.
  • Обратите внимание на последовательность: часто есть авторизация (токен или ключ), а затем команды.

Пример: Если вы видите, что приложение отправляет Write Request с значением 0x01 на характеристику UUID 0x2A3F, а замок отвечает Write Response, это может быть команда открытия.

Шаг 6: Воспроизведение команд

После анализа вы можете попробовать отправить команды вручную, используя gatttool (часть bluez).

  1. Подключитесь к замку:

2. Запишите значение в характеристику (замените handle на номер, найденный в Wireshark):

Если замок открылся — поздравляю, вы только что взломали его через реверс-инжиниринг! Если нет, ищите дополнительные шаги авторизации в трафике.

Лайфхаки для продвинутых

  • Шифрование: Если данные зашифрованы, ищите ключ в приложении (декомпилируйте APK через apktool) или в прошивке замка.
  • MitM: Используйте инструменты вроде BtleJuice для перехвата и подмены пакетов.
  • Автоматизация: Напишите скрипт на Python с библиотекой pybluez для автоматической отправки команд.
  • Прошивка: Если замок совсем слабый, попробуйте вытащить прошивку через Bluetooth (иногда доступен режим отладки).

Защита от таких атак

  • Не используйте замки с открытым трафиком BLE.
  • Обновляйте прошивку устройства.
  • Отключайте Bluetooth, если замок не используется.
  • Используйте устройства с сильным шифрованием и авторизацией.

Сниффинг BLE-трафика — это мощный способ понять, как работают «умные» устройства, и найти в них уязвимости. С помощью hcitoolbtmon и Wireshark мы можем перехватывать пакеты, анализировать протоколы и даже воспроизводить команды. Но помните: это знание для белых шляп. Тестируйте только на своих устройствах или с явного разрешения владельца.