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

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

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

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

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

Категории

Все категории
Loading categories
btlejuice — BLE-фреймворк Man-in-the-Middle, перехватывающий, воспроизводящий и изменяющий GATT-трафик между Bluetooth Smart-устройствами и мобильными приложениями через веб-интерфейс прокси-перехвата. | Kitploit
Инструменты/GitHubGitHub/virtualabs/btlejuice
Сниффинг и анализ пакетовБезопасность BluetoothБезопасность IoTИнструменты для выдачи себя за другое лицоБезопасность беспроводных сетейТестирование на ПроникновениеRed TeamingArchived
GitHubvirtualabs/btlejuice

btlejuice

BLE-фреймворк Man-in-the-Middle, перехватывающий, воспроизводящий и изменяющий GATT-трафик между Bluetooth Smart-устройствами и мобильными приложениями через веб-интерфейс прокси-перехвата.

Репозиторий
87 лет назадЕщё не проверено

Популярное

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

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

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

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

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

Фреймворк BtleJuice

Введение

BtleJuice — это полноценный фреймворк для проведения атак «человек посередине» (Man-in-the-Middle) на устройства Bluetooth Smart (также известные как Bluetooth Low Energy). Он состоит из:

  • ядра перехвата
  • прокси перехвата
  • специального веб-интерфейса
  • привязок (bindings) для Python и Node.js

Как установить BtleJuice?

Установка BtleJuice — проще простого. Прежде всего убедитесь, что в вашей системе используется свежая версия Node.js (>=4.3.2) и npm. Затем установите все необходимые зависимости:

Ubuntu/Debian/Raspbian

root@kitploit:~
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

Fedora / другие RPM-дистрибутивы

root@kitploit:~
sudo yum install bluez bluez-libs bluez-libs-devel npm

Наконец, установите BtleJuice с помощью npm:

root@kitploit:~
sudo npm install -g btlejuice

Если всё прошло успешно, BtleJuice готов к использованию!

Как использовать BtleJuice?

BtleJuice состоит из двух основных компонентов: прокси перехвата и ядра. Эти два компонента должны работать на независимых машинах, чтобы одновременно задействовать два адаптера Bluetooth 4.0+. BtleJuice Proxy не работает в Docker-контейнере.

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

В виртуальной машине установите btlejuice и убедитесь, что ваш USB BT4-адаптер доступен из неё:

root@kitploit:~
$ sudo hciconfig
hci0:	Type: BR/EDR  Bus: USB
	BD Address: 10:02:B5:18:07:AD  ACL MTU: 1021:5  SCO MTU: 96:6
	DOWN
	RX bytes:1433 acl:0 sco:0 events:171 errors:0
	TX bytes:30206 acl:0 sco:0 commands:170 errors:0
$ sudo hciconfig hci0 up

Затем убедитесь, что у виртуальной машины есть IP-адрес, доступный с хост-машины.

Запустите прокси в виртуальной машине:

root@kitploit:~
$ sudo btlejuice-proxy

На хост-машине не забудьте остановить службу bluetooth и убедиться, что устройство HCI остаётся открытым/инициализированным:

root@kitploit:~
$ sudo service bluetooth stop
$ sudo hciconfig hci0 up

Наконец, выполните на хост-машине следующую команду:

root@kitploit:~
$ sudo btlejuice -u <Proxy IP address> -w

Флаг -w указывает BtleJuice запустить веб-интерфейс, а опция -u задаёт IP-адрес прокси.

Веб-интерфейс теперь доступен по адресу http://localhost:8080. Обратите внимание, что порт веб-сервера можно изменить через командную строку.

Использование веб-интерфейса

Веб-интерфейс BtleJuice предоставляет в правом верхнем углу набор ссылок для управления ядром перехвата, как показано ниже.

BtleJuice main web UI

Выбор цели

Сначала нажмите кнопку Select target — появится диалоговое окно со всеми доступными устройствами Bluetooth Low Energy, обнаруженными ядром перехвата:

BtleJuice Target Selection Popup

Дважды щёлкните по нужной цели и дождитесь готовности интерфейса (внешний вид кнопки bluetooth изменится). Когда фиктивное устройство будет готово, подключитесь к нему с помощью соответствующего мобильного приложения или другого устройства (в зависимости от того, что ожидается). Если подключение установлено, на главном интерфейсе отобразится событие Connected.

BtleJuice Target Selection Popup

Все перехваченные GATT-операции затем отображаются вместе с соответствующими UUID сервисов и характеристик и, конечно же, со связанными с ними данными. По умолчанию данные отображаются в формате HexII (вариант формата, разработанного Анжем Альбертини), но вы можете переключиться с HexII на Hex (и обратно), щёлкнув по самим данным. BtleJuice поддерживает оба формата: Hex и HexII.

Воспроизведение GATT-операций

Любую GATT-операцию можно воспроизвести, щёлкнув по ней правой кнопкой мыши и выбрав опцию Replay, как показано ниже:

Replay Popup

Replay dialog

Нажмите кнопку Write (или Read), чтобы воспроизвести соответствующую GATT-операцию. Эта операция будет записана в журнал главного интерфейса.

Изменение данных на лету

И последнее, но не менее важное: интерфейс может перехватывать любую GATT-операцию локально или глобально и позволяет изменять данные на лету. Вы можете использовать глобальный перехват, нажав кнопку Intercept в правом верхнем углу, или воспользоваться контекстным меню, чтобы включить или отключить перехват (hook) для конкретного сервиса и характеристики. Каждый раз, когда перехватывается GATT-операция, появляется следующее диалоговое окно:

Interceptr dialog

Экспорт данных в файл

Начиная с версии 1.0.6, интерфейс предоставляет функцию экспорта данных, позволяющую экспортировать данные в читаемом виде и в формате JSON. Экспортируемые данные формируются на основе перехваченных GATT-операций, а также включают информацию о целевом устройстве. При нажатии кнопки Export появится следующее диалоговое окно:

Export dialog

Нажмите кнопку Export в нижней части диалогового окна, чтобы загрузить версию перехваченных данных в формате JSON (или в текстовом виде).

Настройки

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

Settings dialog

Отключение

Нажатие кнопки Select Target в правом верхнем углу при активном прокси остановит его и снова позволит выбрать цель.

Установка привязок (bindings)

Привязки (bindings) BtleJuice для Node.js также можно установить через npm:

root@kitploit:~
$ sudo npm install -g btlejuice-bindings

Дополнительную информацию об использовании привязок Node.js можно найти в документации пакета.

Благодарности

Особая благодарность Славомиру Ясеку, который подсказал множество приёмов noble/bleno, позволяющих избежать проблем с мобильными приложениями, и поделился стратегиями BLE MITM на DEF CON 24 =). Он также является автором Gattacker.

Лицензия

Copyright (c) 2016 Econocom Digital Security

Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию этого программного обеспечения и сопутствующих файлов документации («Программное обеспечение»), использовать Программное обеспечение без ограничений, включая, без ограничений, права использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это, при соблюдении следующих условий:

Вышеуказанное уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значительные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА КАКИЕ-ЛИБО ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ИНУЮ ОТВЕТСТВЕННОСТЬ, БУДЬ ТО В РЕЗУЛЬТАТЕ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИЕ ИЗ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИЛИ В СВЯЗИ С НИМ, ЛИБО В СВЯЗИ С ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С НИМ.

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