Реализация стек протоколов Bluetooth в Linux называется BlueZ. В него включены утилиты:
Просмотреть доступные Bluetooth адаптеры:
Включать\выключать Bluetooth адаптер:
Далее предполагаем, что устройства доступны для обнаружения.
Как взломать Bluetooth, Часть 1: термины, технологии и безопасность
- hciconfig - аналог ifconfig;
- hcitool - сбор информации;
- hcidump - перехват данных.
Просмотреть доступные Bluetooth адаптеры:
hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 11:22:33:44:55:66 ACL MTU: 1022:8 SCO MTU: 121:3
UP RUNNING PSCAN
RX bytes:637 acl:0 sco:0 events:44 errors:0
TX bytes:4038 acl:0 sco:0 commands:44 errors:0
Включать\выключать Bluetooth адаптер:
hciconfig hci0 down
hciconfig hci0 up
Разведка
Обнаружение устройств.Далее предполагаем, что устройства доступны для обнаружения.
hcitool scanУтилита выводит только адрес и имя устройства
Чтобы собрать больше информации используем команду inq
Здесь указывается смещение часов и тип устройства (телефон, bluetooth гарнитура, и т.д.)hcitool inq
Детальная информация об устройстве.
hcitool info <addr>
Работа с устройствами
Отправка файлов
bluetooth-sendto --device=11:22:33:44:55:66 t2.png
bluetoothctl - интерактивная командная оболочка для взаимодействия с bluetooth устройствами. Команда help выдаст список всех доступных команд [so].
Сканирование тут выполняется автоматически, его только нужно предварительно включить
scan on
devices просмотреть доступные устройства. Причём устройства сохраняются в этом списке после обнаружения: устройство может быть уже не видимым, но по прежнему доступно для коммуникации.
agent on
pair 11:22:33:44:55:66
После чего необходимо подтвердить цифровой ключ на обоих устройствах.
Доступ к файловой системе устройства. На устройстве должна быть установлена служба OBEX FTP.
Монтировать устройство:
Теперь можно просматривать и копировать файлы.obexfs -b 70:F9:27:76:8D:61 -- mount_here
Bluetooth и Python
Поиск доступных для обнаружения устройств
from bluetooth import *
devList = discover_devices()
for device in devList:
name = str(lookup_name(device))
print("[+] Found Bluetooth Device " + str(name))
print("[+] MAC address: "+str(device))
Ссылки
Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security… by TJ O'Connor