Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bluing — Инструмент разведки для взлома Bluetooth | Kitploit
Инструменты/GitHubGitHub/fo-000/bluing
Безопасность AndroidРазведкаБезопасность BluetoothБезопасность IoTСбор информацииБезопасность беспроводных сетей
GitHubfo-000/bluing

bluing

Инструмент разведки для взлома Bluetooth

Репозиторий
1.0k1303 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Bluing

Инструмент сбора разведданных для взлома Bluetooth

English · 简体中文

Bluing (ранее bluescan) — это Bluetooth Intelligence Gathering инструмент, написанный в основном на Python. Он может помочь нам шпионить за внутренней структурой Bluetooth, который является сложным протоколом, или взламывать устройства Bluetooth. Вот основные возможности инструмента:

Установка

Bluing частично зависит от BlueZ, официального стека протоколов Bluetooth для Linux. Поэтому он поддерживает работу только в Linux. Следующая команда используется для установки зависимостей:```sh sudo apt install python3-pip python3-dev libcairo2-dev libgirepository1.0-dev
libbluetooth-dev libdbus-1-dev bluez-tools python3-cairo-dev
rfkill meson patchelf bluez ubertooth adb python-is-python3

root@kitploit:~
В настоящее время bluing распространяется через [PyPI](https://pypi.org/project/bluing/) и **поддерживает только Python 3.10**. Ниже приведена команда установки:```sh
sudo pip3.10 install bluing

Использование

  • Бог сказал: «Да будет цветной», и появился цветной.
  • Возможно, вы хотите краткий обзор рекомендованного оборудования.
$ bluing --help
root@kitploit:~
An intelligence gathering tool for hacking Bluetooth

Usage:
    bluing [-h | --help]
    bluing (-v | --version)
    bluing [-i <hci>] --clean BD_ADDR
    bluing --flash-micro-bit
    bluing <command> [<args>...]

Arguments:
    BD_ADDR    Bluetooth device address

Options:
    -h, --help           Print this help and quit
    -v, --version        Print version information and quit
    -i <hci>             HCI device
    --clean              Clean cached data of a remote device
    --flash-micro-bit    Download the dedicated firmware to micro:bit(s)

Commands:
    br         Basic Rate system, includes an optional Enhanced Data Rate (EDR) extension
    le         Low Energy system
    android    Android Bluetooth stack
    spoof      Spoof with new local device information
    plugin     Manage plugins

Run `bluing <command> --help` for more information on a command.

br команда: система Basic Rate

$ bluing br --help
root@kitploit:~
Usage:
    bluing br [-h | --help]
    bluing br [-i <hci>] [--inquiry-len=<n>] --inquiry
    bluing br [-i <hci>] --sdp BD_ADDR
    bluing br [-i <hci>] --local --sdp
    bluing br [-i <hci>] --lmp-features BD_ADDR
    bluing br [-i <hci>] --local --lmp-features
    bluing br [-i <hci>] --stack BD_ADDR
    bluing br [-i <hci>] --local --stack
    bluing br [-i <hci>] [--inquiry-scan] --mon-incoming-conn
    bluing br --org=<name> --timeout=<sec> --sniff-and-guess-bd-addr

Arguments:
    BD_ADDR    BR/EDR Bluetooth device address

Options:
    -h, --help                   Print this help and quit
    -i <hci>                     HCI device
    --local                      Target a local BR/EDR device instead of a remote one
    --inquiry                    Discover other nearby BR/EDR controllers
    --inquiry-len=<n>            Maximum amount of time (added to --ext-inquiry-len=<n>) 
                                 specified before the Inquiry is halted.
                                     Time = n * 1.28 s
                                     Time range: 1.28 to 61.44 s
                                     Range of n: 0x01 to 0x30 [default: 8]
    --ext-inquiry-len=<n>        Extended_Inquiry_Length measured in number of 
                                 Baseband slots.
                                     Interval Length = n * 0.625 ms (1 Baseband slot)
                                     Time Range: 0 to 40.9 s
                                     Range of n: 0x0000 to 0xFFFF [default: 0]
    --sdp                        Retrieve information from the SDP database of a 
                                 remote BR/EDR device
    --lmp-features               Read LMP features of a remote BR/EDR device
    --stack                      Determine the Bluetooth stack type of a remote BR/EDR device
    --mon-incoming-conn          Print incoming connection from other nearby BR/EDR devices
    --inquiry-scan               Enable the Inquiry Scan
    --sniff-and-guess-bd-addr    Sniff SAPs of BD_ADDRs over the air, then guess the 
                                 address based on the organization name. Need at 
                                 least one Ubertooth device
    --org=<name>                 An organization name in the OUI.txt
    --timeout=<sec>              Timeout in second(s)

--inquiry: Обнаружение других ближайших контроллеров BR/EDR

$ sudo bluing br --inquiry
root@kitploit:~
[INFO] Discovering other nearby BR/EDR Controllers on hci0 for 10.24 sec

BD_ADDR: B0:C9:52:45:33:13 (GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP.,LTD)
Page scan repetition mode: 1 (R1)
Reserved: 0x02
CoD: 0x5a020c
    Service Class: 0b1011010000
        Telephony
        Object Transfer
        Capturing
        Networking
    Major Device Class: 0b00010, Phone
Clock offset: 0x50D5
RSSI: -61
Extended inquiry response: 
    Complete Local Name: old man phone
    Complete List of 16-bit Service Class UUIDs
        0x1105 OBEXObjectPush
        0x110a AudioSource
        0x110c A/V_RemoteControlTarget
        0x110e A/V_RemoteControl
        0x1112 Headset - Audio Gateway (AG)
        0x1115 PANU
        0x1116 NAP
        0x111f HandsfreeAudioGateway
        0x112d SIM_Access
        0x112f Phonebook Access - PSE
        0x1200 PnPInformation
        0x1132 Message Access Server
    Complete List of 32-bit Service Class UUIDs
        None
    Complete List of 128-bit Service Class UUIDs
        A49EAA15-CB06-495C-9F4F-BB80A90CDF00
        00000000-0000-0000-0000-000000000000
... ...


[INFO] Requesting the names of all discovered devices...
B0:C9:52:45:33:13 : old man phone
... ...

--sdp: Получение информации из базы данных SDP удалённого устройства BR/EDR

$ sudo bluing br --sdp 34:13:46:23:6A:4D
root@kitploit:~
Scanning ⠋
Number of service records: 18 

Service Record
0x0000: ServiceRecordHandle (uint32)
    0x0001000d
0x0001: ServiceClassIDList (sequence)
    0x1105: OBEXObjectPush
0x0004: ProtocolDescriptorList (sequence)
    0x0100: L2CAP
    0x0003: RFCOMM
        channel: 0x0c
    0x0008: OBEX
0x0005: BrowseGroupList (sequence)
    0x1002: PublicBrowseRoot
0x0009: BluetoothProfileDescriptorList (sequence)
    0x1105: OBEXObjectPush v1.2
0x0100: ServiceName (guess) (text)
    OBEX Object Push 
0x0200: GoepL2CapPsm (guess) (uint16)
	0x1023
0x0303: SupportedFormatsList (guess) (sequence)
    0x01: vCard 2.1
    0x02: vCard 3.0
    0x03: vCal 1.0
    0x04: iCal 2.0
    0xff: Any type of object
... ...

--lmp-features: Чтение возможностей LMP удалённого устройства BR/EDR

$ sudo bluing br --lmp-features 6A:8D:99:33:56:AE
root@kitploit:~
Version
    Version:
        Bluetooth Core Specification 5.2 (LMP)
        Bluetooth Core Specification 5.2 (LL)
    Manufacturer name: HiSilicon Technologies CO., LIMITED
    Subversion: 33561 

LMP features
    3 slot packets: True
    5 slot packets: True
    Encryption: True
    Slot offset: True
    Timing accuracy: True
    Role switch: True
    Hold mode: False
    Sniff mode: True
    Previously used: False
    Power control requests: True
    Channel quality driven data rate (CQDDR): True
    ... ...

Extended LMP features
Page 1
    Secure Simple Pairing (Host Support): True
    LE Supported (Host): True
    Simultaneous LE and BR/EDR to Same Device Capable (Host): True
    Secure Connections (Host Support): True
Page 2
    Connectionless Slave Broadcast - Master Operation: False
    Connectionless Slave Broadcast - Slave Operation: False
    Synchronization Train: False
    Synchronization Scan: False
    HCI_Inquiry_Response_Notification event:  True
    ... ...

--mon-incoming-conn: Отображение входящих соединений от других ближайших устройств BR/EDR

$ sudo bluing br --inquiry-scan --mon-incoming-conn
root@kitploit:~
[INFO] Inquiry_Scan_Interval: 4096, 2560.0 ms
       Inquiry_Scan_Window:   4096, 2560.0 ms
[INFO] Inquiry Scan and Page Scan enabled

A0:DE:0F:99:EF:78 incoming
    CoD: 0x5a020c
        Service Class: 0b1011010000
            Telephony
            Object Transfer
            Capturing
            Networking
        Major Device Class: 0b00010, Phone
    link type: 0x01 - ACL
... ...

--sniff-and-guess-bd-addr: Перехват и угадывание ближайших BD_ADDR в эфире

$ bluing br --org='Huawei Device Co., Ltd.' --timeout=600 --sniff-and-guess-bd-addr
root@kitploit:~
[INFO] Possible BD_ADDR for ??:??:99:4C:45:C3
        24:A7:99:4C:45:C3

[INFO] Possible BD_ADDR for ??:??:E4:2D:69:EE
        BC:1A:E4:2D:69:EE
        D0:05:E4:2D:69:EE
        30:AA:E4:2D:69:EE

[INFO] Possible BD_ADDR for ??:??:15:60:81:7F
        64:23:15:60:81:7F
        D4:74:15:60:81:7F
... ...

le команда: система Low Energy

$ bluing le --help
root@kitploit:~
Usage:
    bluing le [-h | --help]
    bluing le [-i <hci>] [--scan-type=<type>] [--timeout=<sec>] [--sort=<key>] --scan
    bluing le [-i <hci>] --pairing-feature [--timeout=<sec>] [--addr-type=<type>] PEER_ADDR
    bluing le [-i <hci>] --ll-feature-set [--timeout=<sec>] [--addr-type=<type>] PEER_ADDR
    bluing le [-i <hci>] --gatt [--io-cap=<name>] [--addr-type=<type>] PEER_ADDR
    bluing le [-i <hci>] --local --gatt
    bluing le [-i <hci>] --mon-incoming-conn
    bluing le [--device=</dev/tty>] [--channel=<num>] --sniff-adv

Arguments:
    PEER_ADDR    LE Bluetooth device address

Options:
    -h, --help            Print this help and quit
    -i <hci>              HCI device
    --scan                Discover advertising devices nearby
    --scan-type=<type>    The type of scan to perform. active or passive [default: active]
    --sort=<key>          Sort the discovered devices by key, only support RSSI 
                          now [default: rssi]
    --ll-feature-set      Read LL FeatureSet of a remote LE device
    --pairing-feature     Request the pairing feature of a remote LE device
    --timeout=<sec>       Duration of the LE scanning, but may not be precise [default: 10]
    --gatt                Discover GATT Profile hierarchy of a remote LE device
    --io-cap=<name>       Set IO capability of the agent. Available value: 
                              DisplayOnly, DisplayYesNo, KeyboardOnly, NoInputNoOutput, 
                              KeyboardDisplay (KeyboardOnly) [default: NoInputNoOutput]
    --addr-type=<type>    Type of the LE address, public or random
    --sniff-adv           Sniff advertising physical channel PDU. Need at least 
                          one micro:bit (or other supported NRF51 device specified with --device)
    --channel=<num>       LE advertising physical channel, 37, 38 or 39 [default: 37,38,39]
    --device=</dev/tty>   Device to use, comma separated (e.g., /dev/ttyUSB0,/dev/ttyUSB1,/dev/ttyUSB2)
                          Only needed if using NRF51 devices other than micro:bit (e.g., Bluefruit)

--scan: Обнаружение рекламирующих устройств поблизости

$ sudo bluing le --scan
root@kitploit:~
[WARNING] You might want to spoof your LE address before doing an active scan
[INFO] LE active scanning on hci0 for 10 sec
Scanning ⠴

----------------LE Devices Scan Result----------------
Addr:        74:A3:4A:D4:78:55 (ZIMI CORPORATION)
Addr type:   public
Connectable: True
RSSI:        -68 dBm
General Access Profile:
    Flags: 
        LE General Discoverable Mode
        BR/EDR Not Supported
    Service Data - 16-bit UUID: 
        UUID: 0x95FE
        Data: 9055990701b743e34aa3740e00
    Appearance: 0000
    Tx Power Level: 0 dBm (pathloss 68 dBm)
    Complete Local Name: Mesh Mi Switch
... ...

--ll-feature-set: Чтение набора возможностей LL удалённого LE-устройства

$ sudo bluing le --ll-feature-set --addr-type=public 18:D9:8F:77:24:F1
root@kitploit:~
[INFO] Reading LL FeatureSet of 18:D9:8F:77:24:F1 on hci0
Reading ⠼
LE LL Features:
    LE Encryption: True
    Connection Parameters Request Procedure: False
    Extended Reject Indication: False
    Slave-initiated Features Exchange: False
    LE Ping: False
    LE Data Packet Length Extension: True
    LL Privacy: False
    Extended Scanner Filter Policies: False
    LE 2M PHY: False
    Stable Modulation Index - Transmitter: False
    Stable Modulation Index - Receiver: False
    ... ...

--pairing-feature: Запрос возможностей сопряжения удалённого LE-устройства

$ sudo bluing le --pairing-feature --addr-type=public 18:D9:8F:77:24:F1
root@kitploit:~
[INFO] Requesting pairing feature of 18:D9:8F:77:24:F1 on hci0
Requesting ⠧
Pairing Response
    IO Capability: 0x03 - NoInputNoOutput
    OOB data flag: 0x00 - Not Present
    AuthReq: 0x01
    Maximum Encryption Key Size: 16
Initiator Key Distribution: 0x00
        EncKey:  False
        IdKey:   False
        SignKey: False
        LinkKey: False
        RFU:     0b0000
Responder Key Distribution: 0x01
        EncKey:  True
        IdKey:   False
        SignKey: False
        LinkKey: False
        RFU:     0b0000

--gatt: Обнаружение иерархии профиля GATT удалённого LE-устройства

$ sudo bluing le --gatt --addr-type=public 18:D9:8F:77:24:F1Подключение ⠋ Обнаружение всех первичных служб ⠏ Обнаружение всех характеристик службы 0x0001 ⠹ ... ... Обнаружение всех дескрипторов характеристики 0x0002 ⠼ ... ... Чтение значения дескриптора 0x0013 ⠴ ... ...

----------------Результат GATT-сканирования---------------- Количество служб: 6

Служба (0x0100 - 0x0112, 7 характеристик) Объявление Дескриптор: 0x0100 Тип: 2800 (Объявление первичной службы) Значение: 1812 (Устройство интерфейса человека) Права доступа: Чтение (без аутентификации/авторизации)

root@kitploit:~
<span style="font-weight: bold; color: #ecc179">Характеристика</span> (2 дескриптора)
    <span style="font-weight: bold; color: #ecc179">Объявление</span>
        Дескриптор: 0x010d
        Тип:   2803 (Объявление характеристики)
        Значение:
            Свойства: <span style="font-weight: bold; color: #9fab76">Чтение, Запись без ответа, Запись, Уведомление</span>
            Дескриптор:     <span style="font-weight: bold; color: #9fab76">0x010e</span>
            UUID:       <span style="font-weight: bold; color: #9fab76">2A4D</span> (<span style="font-weight: bold; color: #9fab76">Отчёт</span>)
        Права доступа: Чтение (без аутентификации/авторизации)

    <span style="font-weight: bold; color: #ecc179">Значение</span>
        Дескриптор: 0x0302
        Тип:   4A02 (Неизвестно)
        Значение:  <span style="font-weight: bold; color: #c35956">Чтение не разрешено</span>
        Права доступа: Определяется вышестоящим уровнем

    <span style="font-weight: bold; color: #ecc179">Дескриптор</span>
        Дескриптор: <span style="font-weight: bold; color: #9fab76">0x010f</span>
        Тип:   <span style="font-weight: bold; color: #9fab76">2902</span> (<span style="font-weight: bold; color: #ecc179">Объявление конфигурации клиентской характеристики</span>)
        Значение:  <span style="font-weight: bold; color: #9fab76">b'\x00\x00'</span>
        Права доступа: Чтение (без аутентификации/авторизации), Запись (вышестоящий уровень задаёт аутентификацию/авторизацию)

--sniff-adv: Перехват PDU рекламного физического канала

$ sudo bluing le --sniff-adv
root@kitploit:~
[INFO] Используется micro:bit /dev/ttyACM2 на канале 37
[INFO] Используется micro:bit /dev/ttyACM1 на канале 38
[INFO] Используется micro:bit /dev/ttyACM0 на канале 39
[INFO] micro:bit 38 < Ready -> Start
[INFO] micro:bit 37 < Ready -> Start
[INFO] micro:bit 39 < Ready -> Start
[38] [ADV_NONCONN_IND]
random AdvA: 28:7A:88:B2:35:0B
[39] [ADV_IND]
public AdvA: A4:E4:72:B1:CB:8D
[37] [SCAN_REQ]
random ScanA: 6A:90:0C:07:3E:14
random AdvA: 7D:9B:A8:5A:F2:81
... ...

Команда android: Bluetooth-стек Android

$ bluing android --help
root@kitploit:~
Использование:
    bluing android [-h | --help]
    bluing android [-t <id>] --collect-btsnoop-log [-o <file>]

Параметры:
    -h, --help               Показать эту справку и выйти
    -t <id>                  Использовать Android-устройство с указанным transport id. Этот параметр 
                             будет проигнорирован, если доступно только одно устройство
    --collect-btsnoop-log    Собрать генерируемый btsnoop-лог в локальный файл, 
                             по умолчанию ./btsnoop_hci.log
    -o <file>                Поместить вывод в  [по умолчанию: ./btsnoop_hci.log]

--collect-btsnoop-log: Сбор генерируемого btsnoop-лога

$ bluing android -t 3 --collect-btsnoop-log -o btsnoop_hci.log; file btsnoop_hci.log
root@kitploit:~
btsnoop_hci.log: BTSnoop версия 1, HCI UART (H4)

Команда spoof: Подмена с новой информацией локального устройства

$ bluing spoof --help
root@kitploit:~
Использование:
    bluing spoof [-h | --help]
    bluing spoof [-i <hci>] --bd-addr=<BD_ADDR>
    bluing spoof [-i <hci>] --cls-of-dev=<num>
    bluing spoof --host-name=<name>
    bluing spoof [-i <hci>] --alias=<alias>

Параметры:
    -h, --help             Вывести эту справку и выйти
    -i <hci>               HCI-устройство
    --bd-addr=<BD_ADDR>    Подменить с новым BD_ADDR
    --cls-of-dev=<num>     Подменить с новым классом устройства (Class of Device)
    --host-name=<name>     Подменить с новым именем хоста
    --alias=<alias>        Подменить с новым псевдонимом

--bd-addr=<BD_ADDR>: Подмена с новым BD_ADDR

Эта функция в настоящее время основана на spooftooph, который можно установить, выполнив sudo apt install spooftooph, если вы используете Kali Linux. Однако, если вы используете эту функцию на Ubuntu, вам потребуется вручную скомпилировать и установить spooftooph.

$ sudo bluing spoof --bd-addr=AA:BB:CC:DD:EE:FF
root@kitploit:~
[ПРЕДУПРЕЖДЕНИЕ] Номер HCI-устройства мог быть изменён
[INFO] BD_ADDR изменён: 11:22:33:44:55:66 -> AA:BB:CC:DD:EE:FF

--cls-of-dev=<num>: Подмена с новым классом устройства

$ sudo bluing spoof --cls-of-dev=0x6c0100
root@kitploit:~
Нет вывода при успешном выполнении

--host-name=<name>: Подмена с новым именем хоста

$ sudo bluing spoof --host-name=Bluing
root@kitploit:~
Нет вывода при успешном выполнении

--alias=<alias>: Подмена с новым псевдонимом контроллера

$ sudo bluing spoof --alias='Bluing Alias'
root@kitploit:~
Нет вывода при успешном выполнении

Команда plugin: Управление плагинами

$ bluing plugin --help
root@kitploit:~
Использование:
    bluing plugin [-h | --help]
    bluing plugin <command> [<args>...]

Параметры:
    -h, --help    Показать эту справку и выйти

Команды:
    list         Список установленных плагинов
    install      Установить плагин
    uninstall    Удалить плагин
    run          Запустить плагин

Рекомендуемое оборудование

Bluetooth-адаптер

Многие функции bluing требуют доступа как минимум к одному Bluetooth-адаптеру. Хотя можно использовать адаптер, встроенный в физическую Linux-машину, или выделить виртуальной Linux-машине адаптер хост-машины, всё же рекомендуется использовать внешний USB Bluetooth-адаптер для большей стабильности, например Parani UD100-G03.

Оригинальный micro:bit (опционально)

Bluing требуется как минимум 1 оригинальный micro:bit при перехвате PDU рекламного физического канала (le --sniff-adv), и рекомендуется использовать 3 таких устройства одновременно. Эти micro:bits должны запускать специальную прошивку, предоставляемую bluing. После подключения micro:bits к Linux, предварительно собранную прошивку можно прошить, выполнив следующую команду:

root@kitploit:~
bluing --flash-micro-bit

Хотя они менее удобны в использовании, чем micro:bit, но более доступны для покупки, также могут поддерживаться более распространённые NRF51-адаптеры. Была добавлена поддержка плат Adafruit Bluefruit LE Friend и BLE400. Для их использования потребуется прошивка через SWD. Этот инструмент не поддерживает прошивку этих устройств. Кроме того, инструмент не может автоматически идентифицировать эти устройства. Вместо этого необходимо использовать параметр --devices для указания портов, подключённых к компьютеру.

Ubertooth One (опционально)

При перехвате и угадывании ближайших BD_ADDR (br --sniff-and-guess-bd-addr) bluing требует Ubertooth One.

Часто задаваемые вопросы (FAQ)

rfkill не может найти hci0

Ниже приведено сообщение об исключении:```txt Exception: Can't find the ID of hci0 in rfkill

root@kitploit:~
Это исключение может быть вызвано отсутствием поддержки опций `-r` и `-n` в старой версии rfkill, например:
  
<pre>
$ <span style="font-weight: bold; color: #9fab76">cat</span> /etc/os-release | <span style="font-weight: bold; color: #9fab76">head</span> -n 2
NAME="Ubuntu"
VERSION="16.10 (Yakkety Yak)"

$ <span style="font-weight: bold; color: #9fab76">rfkill</span> --version
rfkill 0.5-1ubuntu3 (Ubuntu)
</pre>

В настоящее время обновление rfkill до более новой версии может решить проблему, например:

<pre>
$ <span style="font-weight: bold; color: #9fab76">cat</span> /etc/os-release | <span style="font-weight: bold; color: #9fab76">head</span> -n 2
PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"

$ <span style="font-weight: bold; color: #9fab76">rfkill</span> --version
rfkill from util-linux 2.38.1
</pre>

### Выполнение команды управления `scanend` не удалось

Ниже приведено сообщение об ошибке:```txt
ERROR: Failed to execute management command 'scanend' (code: 11, error: Rejected)

Попробуйте перезапустить службу Bluetooth для решения проблемы:

root@kitploit:~
sudo systemctl restart bluetooth.service
Скачать инструмент

... ...