38
Эй, кибер-ковбои и любители раскопать, как работают штуки! Сегодня мы погружаемся в мир Bluetooth Low Energy (BLE) и разбираемся, как можно перехватить трафик «умных» замков, чтобы понять их протокол и, возможно, найти уязвимости. Мы используем связку из hcitool
на Linux для базового сниффинга и Wireshark для глубокого анализа. Это не просто теория — будет код, шаги и хардкорные лайфхаки. Готовы вскрывать устройства? Погнали!
Что такое BLE и почему «умные» замки уязвимы?
Bluetooth Low Energy (BLE) — это беспроводной протокол, который используется в миллионах IoT-устройств: от фитнес-трекеров до «умных» замков. Он экономичен по энергии, но часто жертвует безопасностью ради удобства. Многие производители замков реализуют протоколы связи на коленке, не шифруют данные или используют слабые ключи. А это — наша точка входа.
Почему замки уязвимы?
Цель: перехватить BLE-трафик, проанализировать пакеты и понять, как замок общается с приложением. С этим знанием можно попытаться воспроизвести команды или найти баги в протоколе.
Подготовка к сниффингу BLE-трафика
Прежде чем начать, убедитесь, что у вас есть:
bluez
для работы с Bluetooth.Шаг 1: Установка и настройка инструментов
bluez
:
1 2 |
sudo apt update sudo apt install bluez |
2. Проверьте, что ваш Bluetooth-адаптер работает:
1 |
hciconfig |
Если адаптер не отображается, включите его:
1 |
hciconfig hci0 up |
3. Установите Wireshark, если его нет:
1 |
sudo apt install wireshark |
Шаг 2: Находим BLE-устройство с помощью hcitool
hcitool
— это утилита из пакета bluez
, которая позволяет сканировать Bluetooth-устройства и взаимодействовать с ними. Мы используем её для обнаружения «умного» замка.
Запустите сканирование BLE-устройств:
1 |
sudo hcitool lescan |
Вы увидите список устройств с их MAC-адресами. Найдите ваш замок (обычно в названии есть что-то вроде «Lock» или имя бренда). Запомните MAC-адрес, например, AA:BB:CC:DD:EE:FF
.
Лайфхак: Если устройств много, подключите замок через официальное приложение и посмотрите, какое устройство активно во время соединения.
Перехват BLE-трафика
Шаг 3: Сниффинг с помощью Bluetooth-адаптера
Для перехвата пакетов BLE нам нужно перевести адаптер в режим мониторинга. В современных версиях bluez
есть команда btmon
для этого.
Запустите мониторинг:
1 |
sudo btmon |
Теперь взаимодействуйте с замком через приложение (открывайте/закрывайте). btmon
покажет поток данных, включая соединения, разрывы и пакеты. Но читать это в терминале — боль. Поэтому переходим к Wireshark.
Шаг 4: Захват трафика в Wireshark
Wireshark позволяет визуализировать и анализировать Bluetooth-трафик. Для BLE нужно использовать специальный интерфейс захвата.
1 |
sudo wireshark |
bluetooth0
(или другой, связанный с вашим адаптером). Если его нет, убедитесь, что bluez
настроен правильно.
1 |
btle.src == AA:BB:CC:DD:EE:FF || btle.dst == AA:BB:CC:DD:EE:FF |
Вы увидите пакеты с данными: команды, ответы, значения характеристик (GATT).
Реверс-инжиниринг протокола
Шаг 5: Анализ пакетов
Теперь ваша задача — понять, что за данные отправляются. BLE использует GATT (Generic Attribute Profile), где данные хранятся в виде характеристик с UUID.
ATT
(Attribute Protocol).0x01
в определённой характеристике.Пример: Если вы видите, что приложение отправляет Write Request
с значением 0x01
на характеристику UUID 0x2A3F
, а замок отвечает Write Response
, это может быть команда открытия.
Шаг 6: Воспроизведение команд
После анализа вы можете попробовать отправить команды вручную, используя gatttool
(часть bluez
).
1 2 |
gatttool -b AA:BB:CC:DD:EE:FF -I connect |
2. Запишите значение в характеристику (замените handle
на номер, найденный в Wireshark):
1 |
char-write-req 0x0025 01 |
Если замок открылся — поздравляю, вы только что взломали его через реверс-инжиниринг! Если нет, ищите дополнительные шаги авторизации в трафике.
Лайфхаки для продвинутых
apktool
) или в прошивке замка.BtleJuice
для перехвата и подмены пакетов.pybluez
для автоматической отправки команд.Защита от таких атак
Сниффинг BLE-трафика — это мощный способ понять, как работают «умные» устройства, и найти в них уязвимости. С помощью hcitool
, btmon
и Wireshark мы можем перехватывать пакеты, анализировать протоколы и даже воспроизводить команды. Но помните: это знание для белых шляп. Тестируйте только на своих устройствах или с явного разрешения владельца.