четверг, 16 марта 2017 г.

Bluetooth notes

Реализация стек протоколов Bluetooth в Linux называется BlueZ. В него включены утилиты:
  • hciconfig - аналог ifconfig;
  • hcitool - сбор информации;
  • hcidump - перехват данных.
HCI - Host controller interface.

Просмотреть доступные 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
hcitool inq
Здесь указывается смещение часов и тип устройства (телефон, bluetooth гарнитура, и т.д.)


 

Детальная информация об устройстве.
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

Как взломать Bluetooth, Часть 1: термины, технологии и безопасность