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

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

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

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

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

Категории

Все категории
Loading categories
btlejuice — BtleJuice Bluetooth Smart (LE) Man-in-the-Middle framework | Kitploit
Инструменты/GitHubGitHub/digitalsecurity/btlejuice
Packet Sniffing & AnalysisBluetooth SecurityExploitationWireless SecurityPenetration TestingRed TeamingArchived
GitHubdigitalsecurity/btlejuice

btlejuice

BtleJuice Bluetooth Smart (LE) Man-in-the-Middle framework

Репозиторий
8511537 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Фреймворк BtleJuice

Введение

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

  • ядра перехвата
  • прокси-сервера перехвата
  • выделенного веб-интерфейса
  • привязок для 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 / Other-RPM based

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

Выбор цели

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

Всплывающее окно выбора цели BtleJuice

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

Всплывающее окно выбора цели BtleJuice

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

Повтор GATT-операций

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

Всплывающее окно повтора

Диалог повтора

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

Модификация данных на лету

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

Диалог перехвата

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

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

Диалог экспорта

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

Настройки

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

Диалог настроек

Отключение

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

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

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

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

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

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

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

Лицензия

Copyright (c) 2016 Econocom Digital Security

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

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

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

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