[Перевод] Как сделать сканер Bluetooth-устройств на Python
Освойте сканирование 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 может быть интерпретирован следующим образом:
Теперь разделим эту бинарную последовательность на основные, второстепенные и служебные классы:
Service Class (биты 0–1): Последние два бита двоичного представления равны 00, что означает, что класс обслуживания равен 0 в десятичной системе.
Minor Device Class (биты 2–7): Следующие шесть битов — 101100, что в десятичном представлении равно 44.
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-адреса они все равно могут нанести большой ущерб.
Мы в телеграме, подпишись.