Как стать автором
Обновить

Как сделать сканер Bluetooth-устройств на Python

Время на прочтение5 мин
Количество просмотров6.9K
Автор оригинала: Muhammad Abdullahi

Освойте сканирование Bluetooth-устройств с помощью Python: Краткое руководство по использованию PyBluez для обнаружения и анализа близлежащих Bluetooth-устройств, необходимое для кибербезопасности и этичного взлома.

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

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

Значение для кибербезопасности и этического взлома

Понимание обнаружения устройств Bluetooth - важнейший аспект сетевого взаимодействия, этического взлома и кибербезопасности в целом. Этот сценарий служит основой для изучения последствий технологии Bluetooth для безопасности.

Этичные хакеры часто используют подобные методы для выявления уязвимых устройств, оценки уровня безопасности и проведения тестирования на проникновение. Сканируя активные Bluetooth-устройства и получая такие сведения, как имена устройств, классы и даже MAC-адреса (Media Access Control), специалисты по безопасности могут определить потенциальные цели для дальнейшего анализа.

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

Научившись сканировать устройства Bluetooth, хакеры могут осуществлять такие вредоносные действия, как выдача себя за другое устройство, атаки типа "человек посередине" и уязвимости профиля Bluetooth. Эти знания могут привести к несанкционированному доступу, перехвату данных или даже атакам типа "отказ в обслуживании", если не принять надлежащих мер безопасности.

Давайте посмотрим, как реализовать это на языке Python. Мы будем использовать модуль PyBluez. PyBluez - это модуль Python, который предоставляет функциональность Bluetooth, позволяя разработчикам реализовывать соединения Bluetooth и управлять устройствами с поддержкой Bluetooth. Мы также будем писать эту программу на Python 3.

Установите PyBluez, выполнив следующую команду в cmd/Terminal:

$ pip install pybluez2

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

Теперь перейдем к коду. Создайте файл Python, назовите его осмысленно (например, bluetooth_scanner.py) и следуйте дальше:

# Import bluetooth from the PyBluez module.
import bluetooth

def scan_bluetooth_devices():
    try:
        # Discover Bluetooth devices with names and classes.
        discovered_devices = bluetooth.discover_devices(lookup_names=True, lookup_class=True)
        # Display information about the scanning process.
        print('[!] Scanning for active devices...')
        print(f"[!] Found {len(discovered_devices)} Devices\n")
        # Iterate through discovered devices and print their details.
        for addr, name, device_class in discovered_devices:
            print(f'[+] Name: {name}')
            print(f'[+] Address: {addr}')
            print(f'[+] Device Class: {device_class}\n')
    except Exception as e:
        # Handle and display any exceptions that occur during device discovery
        print(f"[ERROR] An error occurred: {e}")

# Call the Bluetooth device scanning function when the script is run
scan_bluetooth_devices()

Этот Python-скрипт использует модуль bluetooth для сканирования близлежащих Bluetooth-устройств и получения информации о них.

Функция scan_bluetooth_devices() пытается обнаружить Bluetooth-устройства, используя функцию discover_devices() из модуля bluetooth с параметрами lookup_names=True и lookup_class=True для получения имен и классов устройств.

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

Результат:

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


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

Из нашего результата следует, что класс устройства Bluetooth 7995916 может быть интерпретирован следующим образом:

  • Двоичное представление: Двоичное представление числа 7995916 - 11110100101101100101100.

Теперь разделим эту бинарную последовательность на основные, второстепенные и служебные классы:

  1. Service Class (биты 0-1): Последние два бита двоичного представления равны 00, что означает, что класс обслуживания равен 0 в десятичной системе.

  2. Minor Device Class (биты 2-7): Следующие шесть битов - 101100, что в десятичном представлении равно 44.

  3. Major Device Class (биты 8-12): Следующие пять битов - 10100, что в десятичном представлении равно 20.

Итак, интерпретация класса устройств 7995916 выглядит следующим образом:

  • Major Device Class: 20

  • Minor Device Class: 44

  • Service Class: 0

Эти числовые значения могут быть интерпретированы с помощью спецификаций Bluetooth. Согласно спецификации Bluetooth Core Specification:

Устройство 1 (Major Device Class: 20, Minor Device Class: 44, Service Class: 0):

  • Major Device Class (20): Компьютер

  • Minor Device Class (44): Рабочая станция

  • Service Class (0): Нет определенного класса обслуживания

Таким образом, DESKTOP-VR0S64Q - это компьютер, а именно рабочая станция.

Устройство 2 (Major Device Class: 26, Minor Device Class: 4, Service Class: 0):

  • Major Device Class (26): Телефон

  • Minor Device Class (4): Смартфон

  • Service Class (0): Нет определенного класса обслуживания

Таким образом, Ghost - это смартфон. 

Оба вывода на самом деле верны. Эти интерпретации основаны на документах спецификации ядра Bluetooth, предоставленных Bluetooth Special Interest Group. Не поленитесь ознакомиться с ними здесь. Даже если хакеры не до конца понимают концепцию класса, с помощью имени устройства и MAC-адреса они все равно могут нанести большой ущерб.

Мы в телеграме, подпишись.

Теги:
Хабы:
Всего голосов 12: ↑5 и ↓7+2
Комментарии8

Публикации

Истории

Работа

Ближайшие события

4 – 5 апреля
Геймтон «DatsCity»
Онлайн
8 апреля
Конференция TEAMLY WORK MANAGEMENT 2025
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область