Сканирование bluetooth устройств linux

🐧 Как подключиться к устройству Bluetooth из терминала Linux

В этой статье мы обсудим, как вы можете управлять устройством Bluetooth с терминала Linux – дистрибутивов на основе Ubuntu, Debian, Fedora и Arch.

Беспроводная технология Bluetooth является всемирной спецификацией для недорогого решения радиосвязи с малым форм-фактором, которое обеспечивает связь между мобильными компьютерами, мобильными телефонами, другими портативными портативными устройствами и подключение к Интернету.

Спецификация разработана, опубликована и продвигается Специальной группой по интересам Bluetooth (SIG).

В этом руководстве мы будем использовать BlueZ, который обеспечивает поддержку основных уровней и протоколов Bluetooth.

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

  • Полная модульная реализация
  • С имметричная мульти-безопасная обработка
  • Многопоточная обработка данных
  • Поддержка нескольких устройств Bluetooth
  • Реальная аппаратная абстракция
  • Стандартный интерфейс сокетов для всех слоев
  • П оддержка безопасности устройств и уровня обслуживания

Установка BlueZ на Linux

Установите пакеты BlueZ с помощью любой из следующих команд, соответствующих вашему дистрибутиву Linux.

Эта установка предоставляет утилиту bluetoothctl.

Вам необходимо добавить свою учетную запись в группу lp, если вы хотите подключиться к Bluetooth-модему.

Как выполнить сопряжение и подключиться к устройству Bluetooth

Мы собираемся использовать интерфейс командной строки bluetoothctl tp bluez.

Если у вас есть альтернативный интерфейсный инструмент, такой как GNOME Bluetooth, вы можете использовать его.

Сначала убедитесь, что Bluetooth не отключен.

Подтвердите, что он разблокирован.

Использование bluetoothctl для подключения к устройству Bluetooth

Это общий план сопряжения устройства с использованием bluetoothctl.

Запустите интерактивную команду bluetoothctl.

Введите help, чтобы получить список доступных команд.

Включите адаптер Bluetooth

Включите адаптер Bluetooth при запуске системы

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

Добавьте строку AutoEnable=true

2 thoughts on “ 🐧 Как подключиться к устройству Bluetooth из терминала Linux ”

Как подключиться к блютуз из терминала Линукс с дистрибутивом Минт?

Источник

Scanning for Bluetooth Beacons on the Linux command line

Overview

Small Single Board Computers (SBC) such as Raspberry Pi 3 (RPi3) with their built in BLE 4.0 controllers are enough to scan for Bluetooth Low Energy beacons such as those that use the Eddystone format beacons.

The BlueZ maintainers however are not so keen on supporting scanning for beacons with their command=line tools as there is a concern that such activity is quite resource intensive.

Many tutorials on the internet are done with command-line tools with the now deprecated tools of hcitool and hcidump. This ‘HowTo’ looks at how to scan for beacons without using those tools.

Scanning for Beacons

The go-to tool when using Bluetooth from the Linux command-line is bluetoothctl .

In a terminal use the BlueZ command-line tool to put the RPi3 into scanning mode by issuing the `scan on` command. It is also a good idea to clear all filtering options. My session looked like this:

Читайте также:  Облако для хранения файлов windows

The 16-bit UUID for the Eddystone Service is 0xfeaa.

Once we know the Service UUID we can filter to see just Eddystone beacons in bluetoothctl. For example:

In this example it has not made any difference. However, if you have other Bluetooth devices advertising nearby it will be very helpful to reduce how much is reported.

Detailed Reporting of Bluetooth Activity

To view all the activity on the RPi’s Bluetooth controller there is a Bluetooth monitoring tool from BlueZ called «btmon». This has a very verbose output as it does tell us everything that is happening with the Bluetooth controller and is typically used for debugging low-level issues.

To run btmon in a terminal use the following command:

With bluetoothctl scanning in the first terminal, btmon will report such things as an «LE Advertising Report» which will contain information about nearby devices that are advertising. Our beacon should be in amongst all the output in btmon. For example:

Duplicates

Beacons are broadcasting/advertising very frequently (every second or so) and you will notice that the BlueZ tools are not reporting all occurrences of those adverts. This is because the BlueZ tools are filtering duplicate adverts. This is done because of concerns about the machine resources being consumed in doing such activity.

The BlueZ project has deprecated the command-line tool hcitool that did allow this. This is because the tool used the Host Controller Interface (HCI) which is a very low-level interface and did not protect the user from being able to do very bad things to their system. The new BlueZ tools give the user more protection however it does mean the tools do not report duplicates.

If you still have hcitool on your system then you can see every broadcast from your beacon show up in btmon using the following command:

Some of the Bluetooth libraries that act as scanners can read all beacon broadcasts.
One of the best Python libraries I’ve found for scanning for beacons is aioblescan.

Other Beacon Types

Much of what is described above should work for any BLE beacons. I’ve focused on Eddystone as it is an open specification and most widely supported. One interesting place that has Eddystone support is the MakeCode editor for micro:bit which supports very easy access to programming Eddystone beacons.

Jos Ryke (@josryke) has posted on Twitter a great summary on how the packets vary between the different beacon types.

With the aid of Jos’s diagram and the Generic Access Profile specification we can see that Eddystone adverts have a type of 03 (Complete List of 16-bit Service Class UUIDs) where as ibeacon has a type of FF (Manufacturer Specific Data).

This means data being broadcast is reported slightly differently. For example, for ibeacon the Major and Minor values are Manufacturer Data while for Eddystone UID Namespace and Instance values are Service Data.

In bluetoothctl this presents itself as the following:
For ibeacon: And for Eddystone UID:

By looking at the list Company Identifiers we can learn that the ManufacturerData Key of 0x004c is for Apple.

Источник

Инструменты Kali Linux

Список инструментов для тестирования на проникновение и их описание

Bluelog

Описание Bluelog

Bluelog – это сканер Bluetooth, работающий на Linux, с опциональным режимом демона и веб-интерфейсом, он предназначен для исследований и мониторинга трафика. Подразумевается, что он должен запускаться на длительные периоды времени в одном месте для определения, как много обнаруживаемых Bluetooth устройств в окрестности.

Читайте также:  Современные приложения windows 10

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

Bluelog является лёгкой и портативной (ей требуется только BlueZ) и хорошо работает на x86, MIPS и ARM архитектурах. Bluelog включена в Kali Linux и другие дистрибутивы и репозитории.

Bluelog Live

Bluelog Live генерирует постоянно обновляемые статичные HTML страницы, которые содержат информацию об обнаруженных устройствах и их соответствующую информацию. Их можно просматривать в любом веб-браузере.

Технически, Live режим является отдельным от главного инструмента Bluelog программным обеспечением. Он состоит из простых статичных HTML страниц и CGI модуля, которых загружает файлы логов из Bluelog.

Bluelog НЕ является веб-сервером. Она просто генерирует HTML файлы, которые должен обслуживать HTTP демон по вашему выбору (Apache, lighttpd и т.п.). Следовательно, перед тем, как вы попытаетесь запустить Bluelog Live, убедитесь, что ваш веб-сервер уже должным образом настроен. На самом деле, Bluelog во время работы совершенно не знает о статусе Live страниц, он просто выкачивает данные и надеется на лучшее.

Программа должна работать с разными Bluetooth устройствами, как встроенными, так и USB. Чем мощнее ваше устройство, тем больше данных вы получите. Хорошим выбором является Sena UD100 .

Автор: Tom Nardi «MS3FGX»

Справка по Bluelog

Руководство по Bluelog

Основные опции

-i

Эта опция говорит Bluelog, каким Bluetooth устройством вы хотите сканировать. Вы можете использовать как имя HCI устройства (например, hci2) или MAC локального адаптера. Если вы укажите не существующее устройство, Bluelog вернётся к автоопределению для поиска рабочих устройств.

-o

Это (опциональное) имя файла для файла записи журнала. Имя файла по умолчанию имеет формат «bluelog-YYYY-MM-DD-HHMM.log», этот файл размещается в текущей рабочей директории.

-v

Используйте эту опцию для переключения отображения обнаруженных устройств на консоли. Вербальный вывод также будет содержать информацию о классе устройства и временные метки. По умолчанию отключено.

-q

Отключение несущественного вывода в терминал. В нормальном режиме это означает, что вы увидите только время старта сканирования и сообщение, указывающее на надлежащую остановку. Когда используется режим демона (-d), вывода в терминал не будет вовсе. Исключениями для этой опции являются только критические ошибки, по очевидным причнам.

-d

Эта опция демаонизует Bluelog, т. е. программа будет запущена в фоне. Всё равно будет показано стандартное сообщение и о запуске, но после этого вы больше не увидите какую-либо информацию в терминале от Bluelog.

-k

Если в фоне работает экземпляр Bluelog, опция -k может использоваться для его остановки.

Опции ведения журнала

-n

Используйте эту опцию для включения отображения имён для обнаруженных устройств. Поиск имён устройств занимает дополнительное время во время сканирования, и иногда терпит неудачу. Следовательно, без получения имён устройств, Bluelog может сканировать быстрее и точнее. По умолчанию отключено.

-m

Эта опция, если она включена в сборке, выполняет поиск производителя обнаруженного устройства из базы MAC OUI. Эти производители устройств будут записаны в стандартный журнал, а также в Bluelog Live. Для работы этой функции нужно, чтобы база данных производителей была установлена.

-c

Эта опция включает запись в файл журнала сырых классов устройств. Включение этой опции отключает опцию -f. По умолчанию отключена.

Читайте также:  Boot linux нет места

-f

Эта опция берёт класс устройства и интерпретирует его в более понятный для человека формат. Она скажет вам, какого класса это устройство, а также основные его возможности. Например, класс «0x7a020c» будет отображён как «Smart Phone,(Net Capture Obex Audio Phone)». Включение этой опции отключает опцию -c. По умолчанию отключена.

-t

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

-x

Используйте эту опцию для включения обфускации MAC адреса. С включением этой опции Bluelog будет отображать часть обнаруженного MAC, который несёт информацию о производителе, но будет блокировать часть MAC, которая идентифицирует устройство. По умолчанию отключена.

-e

Используйте эту опцию для включения кодирования MAC адрес в CRC32. С включение этой опции обнаруживаемые MAC адреса никогда не будут записываться на диск, а будут иметь уникальные ID сгенерированные для них. Это предотвращает вмешательство в частную жизнь во время таких действий, как мониторинг трафика в Bluetooth.

Опции вывода

-l

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

-b

Судя по всему, эта опция больше не актуальна, т. к. она формировала лог в формате для выгрузки его на онлайн-сервис, который больше не существует.

Продвинутые опции

-r

Эта опция устанавливает, как много попыток должна предпринять Bluelog для получения имени устройства. По различным причинам (плохое соединение, занятость устройства и т. д.) устройства не всегда своевременно отвечают на запрос имени. Это приводит к заполнению логов или отображения Live безымянными устройствами. По умолчанию, Bluelog сделает 3 попытки для получения имени устройства, используя эту опцию вы можете снизить это число (быстрее, но меньше точности) или повысить (медленнее, но возможно более точно).

-a

Эта опция включает «режим амнезии», который заставляет Bluelog после установленного количества времени забыть, что она видела конкретное устройство, которое задаётся в минутах. Когда Bluelog встретит устройство, которое оно забыло благодаря этой опции, она снова напечатает информацию о нём в журнале так, будто бы увидела его в первый раз. Значение ноль заставит Bluelog постоянно записывать в журнал устройство так быстро как возможно (конкретная скорость зависит от платформы, на которой запущена Bluelog).

-w

Это экспериментальная опция, которая позволяет регулировать, как долго Bluelog даёт команду BlueZ сканировать. В целом, более короткое время сканирования позволяет Bluelog быстрее обрабатывать входящие данные, но требует больше вычислительной мощности. Более длинное время сканирование в теории должно лучше работать на устройствах с низким энергопотреблением.

Не рекомендуется трогать эту настройку, если вы не знаете, что делаете. В настоящее время принимается диапазон от 4 до 30 секунд.

-s

Используйте эту опцию для переключения в режим только syslog. Это отключает стандартный файл журнала и вместо этого записывает новые устройства в файл системного журнала. По умолчанию — отключено.

Режим syslog не может быть скомбинирован только с режимом Live, все остальные опции ведения журнала можно комбинировать с этой опцией.

Примеры запуска Bluelog

Начать сканирование с включённым вербальным режимом, отображением временных меток и именами устройств, вывод в файл по умолчанию «devices.log»:

Установка Bluelog

Программа предустановлена в Kali Linux.

Установка в BlackArch

Программа предустановлена в BlackArch.

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты Bluelog

Это утилита командной строки.

Инструкции по Bluelog

Ссылки на инструкции будут добавлены позже.

Источник

Оцените статью