Хотя многие люди могут использовать Bluetooth каждый день, большинство не знают, как он работает или что его можно взломать. Взлом Bluetooth дает четкое окно в мир цели. Почти каждое устройство имеет возможности Bluetooth, и люди хранят большое количество личной информации на своих телефонах и планшетах. Взломайте их Bluetooth-соединение, и вы сможете получить доступ ко всей этой информации.
Хотя Bluetooth имеет ту же частоту 2,4 ГГц, что и Wi-Fi, его свойства отличаются, так как протоколы не совсем одинаковые. Существует повышенная безопасность, так что популярные инструменты взлома Wi-Fi не будут работать на Bluetooth.
Во-первых, они постоянно перепрыгивают частоты, поэтому если у вас есть два устройства, взаимодействующих по Bluetooth, они оба используют алгоритм, который смещает частоту много раз в секунду. Это означает, что мы не можем просто сидеть на одной частоте и слушать, потому что они будут прыгать повсюду. Это затрудняет атакующему прослушивание разговора в первую очередь.
Другим свойством является то, что Bluetooth не договаривается о ключах каждый раз, как Wi-Fi делает, где это легко для всех, чтобы присоединиться и покинуть Wi-Fi сети. Вместо этого, Bluetooth договаривается о ключе один раз в начале, хранит секретный ключ, а затем ссылается на него каждый раз, когда видит одно и то же устройство. Это означает, что невозможно сидеть там и нюхать ключ, потому что вам нужно быть там в первый раз, когда эти устройства взаимодействуют. В противном случае вы не получите ничего полезного, и невозможно прыгнуть в разговор так, как это возможно с Wi-Fi.
Тем не менее, мы все равно можем отследить ближайшие Bluetooth-устройства, прочитать с них и даже записать специфические характеристики. Поэтому полезно провести рекогносцировку на случай, если мы сможем либо взять устройство под свой контроль, выявить уязвимость, либо позже найти уязвимость, совпадающую с той, что находится поблизости.
Что вам понадобится для Bluetooth-разведки?
Для начала Bluetooth-наблюдения Вам понадобится полностью обновленная версия Kali Linux, потому что мы будем использовать встроенные инструменты Bluetooth. Чтобы сохранить супер-основные вещи, мы не устанавливаем ничего лишнего, и мы можем просто работать с Bluetooth инструментами, которые Kali Linux имеет по умолчанию.
Встроенные инструменты, которые мы рассмотрим ниже, включают hciconfig, hcitool, sdptool, l2ping и btscanner. Многие из этих инструментов включены в BlueZ, стек протоколов Bluetooth по умолчанию почти в каждой версии Linux, включая Kali. (Мы также будем использовать некоторые специализированные инструменты для Bluetooth-разведки в Kali Linux).
Конечно, мы должны быть достаточно близко к тому, чтобы взломать Bluetooth. С помощью отличного Bluetooth-адаптера, который нужен, вы должны быть в состоянии добраться до Bluetooth-устройств в кафе, школьном классе, офисе, а может быть, даже в соседнем доме.
Шаг 1 - Включите адаптер Bluetooth с помощью hciconfig
Если вы знакомы с ifconfig для карт и адаптеров Wi-Fi, есть еще один инструмент, аналогичный для устройств Bluetooth. И это называется hciconfig .
В моем примере мы видим интерфейс Bluetooth. Это то, что мы будем использовать с Bluetooth. Его текущее состояние не работает, и первое, что нам нужно сделать для работы с Bluetooth, это включить наш интерфейс.
Если у нас есть Wi-Fi интерфейс, который подключен, но еще не готов, мы можем ввести ifconfig, затем имя интерфейса, а затем вверх. Так как hciconfig в основном то же самое, что ifconfig, мы можем использовать множество тех же команд, которые вы можете увидеть на странице руководства.
На странице руководства мы видим, что это используется для настройки устройств Bluetooth, поэтому, если у вас есть это внешнее устройство Bluetooth или что-то подключенное, вы также можете использовать это, чтобы увидеть подключенные устройства и настроить их соответствующим образом.
Теперь, когда мы знаем немного больше о hciconfig, давайте продолжим и нажмите Q, чтобы выйти. Нам нужно взять обнаруженное нами устройство Bluetooth и запустить его. Просто введите hciconfig , затем имя устройства, которое мы нашли, и вверх .
Чтобы увидеть, сработало ли это, снова запустите команду hciconfig :
Шаг 2 - Сканирование устройств Bluetooth с помощью hcitool
Теперь давайте используем hcitool для поиска устройств Bluetooth, которые отправляют свои маяки для обнаружения (в режиме обнаружения). Во-первых, давайте проверим его справочную страницу:
Hcitool используется для настройки и выполнения различных задач, таких как сканирование, запросы и извлечение имен. Это действительно полезно, чтобы узнать об устройстве, но некоторые из этих команд требуют MAC-адрес для их использования.
Давайте посмотрим на некоторые из этих команд. Сначала мы сделаем сканирование. Он будет использовать интерфейс Bluetooth для сканирования ближайших устройств Bluetooth и представления их MAC-адресов, чтобы мы могли выполнить дополнительное сканирование, запрос или попытаться получить имя устройства.
Выше мы видим
Это должно позволить нам получить название устройства, но мы уже знали это с того первого сканирования. Однако, если мы этого не знаем, это позволит нам узнать больше об этом. Чтобы узнать больше, мы можем использовать команду inq :
Обратите внимание, что он также отображает смещение часов и класс. Класс указывает, какой это тип устройства Bluetooth, и мы можем посмотреть код, перейдя на
Шаг 3 - Сканирование служб с помощью sdptool
Чтобы узнать больше об услугах, мы можем использовать инструмент под названием sdptool, чтобы узнать больше о том, что доступно на устройстве, и узнать о свойствах - возможно, что мы можем и не можем сделать. Нам нужно будет снова использовать MAC-адрес, но сначала давайте проверим его справочную страницу:
Это позволяет нам настраивать, контролировать и опрашивать серверы SDP (протокол обнаружения служб). Так что это то, что позволяет нам делать запросы на устройствах Bluetooth и точно выяснять, что происходит с разрешениями и что мы, вероятно, можем начать делать с этими службами.
Выйдите из man-страницы, наберите sdptool, затем просмотрите , а затем MAC-адрес, который мы захватили.
Здесь мы можем увидеть немного больше информации об обмене данными, протоколах и, возможно, мы могли бы даже начать обнаруживать, есть ли уязвимость в устройстве или мы можем связаться с ним напрямую. Мы можем даже узнать, использует ли он рандомизацию MAC-адреса или что-то в этом роде.
Шаг 4 - Пинг устройств Bluetooth с помощью l2ping
Теперь, когда у нас есть MAC-адреса всех соседних устройств, мы можем проверить их с помощью инструмента под названием l2ping , независимо от того, находятся они в режиме обнаружения или нет, чтобы узнать, доступны ли они. Для меня это всего лишь одно устройство. Прежде чем сделать это, давайте запустим человек страницу для инструмента просто увидеть все , что доступно.
Нам не нужно ничего делать здесь, просто пингуйте устройство Bluetooth следующим образом:
Это указывает на то, что устройство находится в пределах досягаемости и доступно.
Шаг 5 - Сканирование Bluetooth-устройств с помощью btscanner
Теперь пришло время перейти к последнему инструменту, который мы собираемся охватить, - это полноценный графический пользовательский интерфейс, используемый для обнаружения устройств Bluetooth. Он называется btscanner , и как только мы его запустим, мы можем набрать btscanner . Но перед этим, так как мы просмотрели справочные страницы по остальным инструментам, давайте кратко рассмотрим и здесь:
Вы можете видеть, что btscanner не так много, и это потому, что это инструмент с графическим интерфейсом, всё происходит после запуска инструмента, поэтому давайте сделаем это сейчас:
Интерфейс может выглядеть немного похожим на людей, знакомых с интерфейсом Kismet, что позволяет нам делать много вещей в формате командной строки с чувством GUI. Это полезно и здорово, потому что это означает, что, набрав i , мы можем начать сканирование запросов и найти близлежащие устройства Bluetooth, и это может позволить нам подключиться или установить команду или что-то в этом роде.
Мы нашли устройство, и это то же самое Bluetooth-устройство, которое мы видели раньше, и я уверен, что мы сможем найти и другие устройства по мере того, как они будут подключаться. А пока мы можем продолжить и нажать Enter, чтобы узнать об устройстве.
Здесь мы можем увидеть название устройства, когда оно впервые увидено, владельца, который интересен, а затем еще немного информации о различных рекламируемых функциях.
Чтобы вернуться в главное окно, нажмите Q, и по мере обнаружения других устройств, или когда они находятся в пределах досягаемости, мы можем найти их здесь и начать узнавать больше о том, что делают эти устройства, с чем они общаются, что иначе они способны и больше.
Если у вас нет Bluetooth на вашем компьютере, вы всегда можете подключить адаптер Bluetooth, но вы можете проверить его совместимость, прежде чем идти дальше и решать проблемы. Я не уверен, что каждый адаптер Bluetooth будет работать с любой программой Linux.
Выше видно, что мы нашли второе устройство, так что давайте продолжим и нажмем на него.
Мы видим, что это смартфон - устройство Samsung, и у него гораздо больше возможностей и вещей, которые мы могли бы с ним сделать, чем у нашего первого устройства. Уже сейчас мы можем протянуть руку и начать смотреть на различные устройства. Мы можем начать узнавать о них, может быть, о программном обеспечении, которое стоит за ними, и, конечно, видеть сервисы, которые они рекламируют, чтобы понять, представляет ли оно хорошую поверхность для атаки или нет.
Все вышесказанное сделано с помощью полностью обновленной версии Kali Linux, и нам не пришлось ничего устанавливать. Так что, если вы начинаете с Kali Linux заново, то это отличный способ использовать некоторые из встроенных инструментов, чтобы связаться и прикоснуться к Bluetooth-устройствам вокруг вас, и начать узнавать больше о том, на что способен каждый из этих универсальных и мощных инструментов.
То, что мы узнали в статье...
Сегодня мы изучили разведку Bluetooth, и есть несколько более сложных вещей, которые мы можем сделать с этой информацией. Многие устройства Bluetooth не пытаются рандомизировать свой MAC-адрес, а это означает, что он будет одинаковым все время. Это может быть использовано для отслеживания человека с места на место.
Например,
Хотя Bluetooth имеет ту же частоту 2,4 ГГц, что и Wi-Fi, его свойства отличаются, так как протоколы не совсем одинаковые. Существует повышенная безопасность, так что популярные инструменты взлома Wi-Fi не будут работать на Bluetooth.
Во-первых, они постоянно перепрыгивают частоты, поэтому если у вас есть два устройства, взаимодействующих по Bluetooth, они оба используют алгоритм, который смещает частоту много раз в секунду. Это означает, что мы не можем просто сидеть на одной частоте и слушать, потому что они будут прыгать повсюду. Это затрудняет атакующему прослушивание разговора в первую очередь.
Другим свойством является то, что Bluetooth не договаривается о ключах каждый раз, как Wi-Fi делает, где это легко для всех, чтобы присоединиться и покинуть Wi-Fi сети. Вместо этого, Bluetooth договаривается о ключе один раз в начале, хранит секретный ключ, а затем ссылается на него каждый раз, когда видит одно и то же устройство. Это означает, что невозможно сидеть там и нюхать ключ, потому что вам нужно быть там в первый раз, когда эти устройства взаимодействуют. В противном случае вы не получите ничего полезного, и невозможно прыгнуть в разговор так, как это возможно с Wi-Fi.
Тем не менее, мы все равно можем отследить ближайшие Bluetooth-устройства, прочитать с них и даже записать специфические характеристики. Поэтому полезно провести рекогносцировку на случай, если мы сможем либо взять устройство под свой контроль, выявить уязвимость, либо позже найти уязвимость, совпадающую с той, что находится поблизости.
Что вам понадобится для Bluetooth-разведки?
Для начала Bluetooth-наблюдения Вам понадобится полностью обновленная версия Kali Linux, потому что мы будем использовать встроенные инструменты Bluetooth. Чтобы сохранить супер-основные вещи, мы не устанавливаем ничего лишнего, и мы можем просто работать с Bluetooth инструментами, которые Kali Linux имеет по умолчанию.
Встроенные инструменты, которые мы рассмотрим ниже, включают hciconfig, hcitool, sdptool, l2ping и btscanner. Многие из этих инструментов включены в BlueZ, стек протоколов Bluetooth по умолчанию почти в каждой версии Linux, включая Kali. (Мы также будем использовать некоторые специализированные инструменты для Bluetooth-разведки в Kali Linux).
Конечно, мы должны быть достаточно близко к тому, чтобы взломать Bluetooth. С помощью отличного Bluetooth-адаптера, который нужен, вы должны быть в состоянии добраться до Bluetooth-устройств в кафе, школьном классе, офисе, а может быть, даже в соседнем доме.
Шаг 1 - Включите адаптер Bluetooth с помощью hciconfig
Если вы знакомы с ifconfig для карт и адаптеров Wi-Fi, есть еще один инструмент, аналогичный для устройств Bluetooth. И это называется hciconfig .
Код:
~# hciconfig
hci0 Type: Primary Bus: USB
BD Address: ██:██:██:██:██:██ ACL MTU: 1022:8 SCO MTU: 183.5
DOWN
RX bytes:574 acl:0 sco:0 events:30 errors:0
TX bytes:368 acl:0 sco:0 commands:30 errors:0
В моем примере мы видим интерфейс Bluetooth. Это то, что мы будем использовать с Bluetooth. Его текущее состояние не работает, и первое, что нам нужно сделать для работы с Bluetooth, это включить наш интерфейс.
Если у нас есть Wi-Fi интерфейс, который подключен, но еще не готов, мы можем ввести ifconfig, затем имя интерфейса, а затем вверх. Так как hciconfig в основном то же самое, что ifconfig, мы можем использовать множество тех же команд, которые вы можете увидеть на странице руководства.
Код:
~# man hciconfig
HCICONFIG(1) Linux System Administration HCICONFIG(1)
NAME
hciconfig - configure Bluetooth devices
SYNOPSIS
hciconfig -h
hciconfig [-a]
hciconfig [-a] hciX [command [command parameters]]
DESCRIPTION
hciconfig is used to configure Bluetooth devices. hciX is the name of
a Bluetooth device installed in the system. If hciX is not given, hci‐
config prints name and basic information about all the Bluetooth de‐
vices installed in the system. If hciX is given but no command is
given, it prints basic information on device hciX only. Basic informa‐
tion is interface type, BD address, ACL MTU, SCO MTU, flags (up, init,
running, raw, page scan enabled, inquiry scan enabled, inquiry, authen‐
tication enabled, encryption enabled).
OPTIONS
-h, --help
Gives a list of possible commands.
-a, --all
Other than the basic info, print features, packet type, link
policy, link mode, name, class, version.
COMMANDS
up Open and initialize HCI device.
down Close HCI device.
reset Reset HCI device.
rstat Reset statistic counters.
auth Enable authentication (sets device to security mode 3).
noauth Disable authentication.
encrypt Enable encryption (sets device to security mode 3).
noencrypt Disable encryption.
secmgr Enable security manager (current kernel support is limited).
nosecmgr Disable security manager.
piscan Enable page and inquiry scan.
noscan Disable page and inquiry scan.
iscan Enable inquiry scan, disable page scan.
pscan Enable page scan, disable inquiry scan.
ptype [type] With no type , displays the current packet types. Otherwise, all the packet types specified by type are set. type is a comma-separated list of packet types, where the possible packet types are DM1, DM3, DM5, DH1, DH3, DH5, HV1, HV2, HV3.
name [name] With no name, prints local name. Otherwise, sets local name to name.
class [class] With no class, prints class of device. Otherwise, sets class of device to class. class is a 24-bit hex number describing the class of device, as specified in section 1.2 of the Bluetooth Assigned Numers document.
voice [voice] With no voice, prints voice setting. Otherwise, sets voice setting to voice. voice is a 16-bit hex number describing the voice setting.
iac [iac] With no iac, prints the current IAC setting. Otherwise, sets the IAC to iac.
inqtpl [level] With no level, prints out the current inquiry transmit power level. Otherwise, sets inquiry transmit power level to level.
inqmode [mode] With no mode, prints out the current inquiry mode. Otherwise, sets inquiry mode to mode.
inqdata [data] With no name, prints out the current inquiry data. Otherwise, sets inquiry data to data.
inqtype [type] With no type, prints out the current inquiry scan type. Otherwise, sets inquiry scan type to type.
inqparams [win:int] With no win:int, prints inquiry scan window and interval. Otherwise, sets inquiry scan window to win slots and inquiry scan interval to int slots.
pageparms [win:int] With no win:int, prints page scan window and interval. Otherwise, sets page scan window to win slots and page scan interval to int slots.
pageto [to] With no to, prints page timeout. Otherwise, sets page timeout to .I to slots.
afhmode [mode] With no mode, prints out the current AFH mode. Otherwise, sets AFH mode to mode.
sspmode [mode] With no mode, prints out the current Simple Pairing mode. Otherwise, sets Simple Pairing mode to mode.
aclmtu mtu:pkt Sets ACL MTU to to mtu bytes and ACL buffer size to pkt packets.
scomtu mtu:pkt Sets SCO MTU to mtu bytes and SCO buffer size to pkt packets.
delkey <bdaddr> This command deletes the stored link key for bdaddr from the device.
oobdata Get local OOB data (invalidates previously read data).
commands Display supported commands.
features Display device features.
version Display version information.
revision Display revision information.
lm [mode] With no mode , prints link mode. MASTER or SLAVE mean, respectively, to ask to become master or to remain slave when a connection request comes in. The additional keyword ACCEPT means that baseband connections will be accepted even if there are no listening AF_BLUETOOTH sockets. mode is NONE or a comma-separated list of keywords, where possible keywords are MASTER and ACCEPT . NONE sets link policy to the default behaviour of remaining slave and not accepting baseband connections when there are no listening AF_BLUETOOTH sockets. If MASTER is present, the device will ask to become master if a connection request comes in. If ACCEPT is present, the device will accept baseband connections even when there are no listening AF_BLUETOOTH sockets.
AUTHORS
Written by Maxim Krasnyansky <maxk@qualcomm.com> and Marcel Holtmann <marcel@holtmann.org>
man page by Fabrizio Gennari <fabrizio.gennari@philips.com>
BlueZ Nov 11 2002 HCICONFIG(1)
Manual page hciconfig(1) line 147/169 (END) (press h for help or q to quit)
На странице руководства мы видим, что это используется для настройки устройств Bluetooth, поэтому, если у вас есть это внешнее устройство Bluetooth или что-то подключенное, вы также можете использовать это, чтобы увидеть подключенные устройства и настроить их соответствующим образом.
Теперь, когда мы знаем немного больше о hciconfig, давайте продолжим и нажмите Q, чтобы выйти. Нам нужно взять обнаруженное нами устройство Bluetooth и запустить его. Просто введите hciconfig , затем имя устройства, которое мы нашли, и вверх .
Код:
~# hciconfig hci0 up
Чтобы увидеть, сработало ли это, снова запустите команду hciconfig :
Код:
~# hciconfig
hci0 Type: Primary Bus: USB
BD Address: ██:██:██:██:██:██ ACL MTU: 1022:8 SCO MTU: 183.5
UP RUNNING
RX bytes:1148 acl:0 sco:0 events:60 errors:0
TX bytes:736 acl:0 sco:0 commands:60 errors:0
Шаг 2 - Сканирование устройств Bluetooth с помощью hcitool
Теперь давайте используем hcitool для поиска устройств Bluetooth, которые отправляют свои маяки для обнаружения (в режиме обнаружения). Во-первых, давайте проверим его справочную страницу:
Код:
~# man hciconfig
HCITOOL(1) Linux System Administration HCITOOL(1)
NAME
hcitool - configure Bluetooth connections
SYNOPSIS
hcitool [-h]
hcitool [-i <hciX>] [command [command parameters]]
DESCRIPTION
hcitool is used to configure Bluetooth connections and send some spe‐
cial command to Bluetooth devices. If no command is given, or if the
option -h is used, hcitool prints some usage information and exits.
OPTIONS
-h Gives a list of possible commands
-i <hciX>
The command is applied to device hciX , which must be the name
of an installed Bluetooth device. If not specified, the command
will be sent to the first available Bluetooth device.
COMMANDS
dev Display local devices
inq Inquire remote devices. For each discovered device, Bluetooth device address, clock offset and class are printed.
scan Inquire remote devices. For each discovered device, device name are printed.
name <bdaddr> Print device name of remote device with Bluetooth address bdaddr.
info <bdaddr> Print device name, version and supported features of remote device with Bluetooth address bdaddr.
spinq Start periodic inquiry process. No inquiry results are printed.
epinq Exit periodic inquiry process.
cmd <ogf> <ocf> [parameters]
Submit an arbitrary HCI command to local device. ogf, ocf and parameters are hexadecimal bytes.
con Display active baseband connections
cc [--role=m|s] [--pkt-type=<ptype>] <bdaddr>
Create baseband connection to remote device with Bluetooth address bdaddr. Option --pkt-type specifies a list of allowed packet types. <ptype> is a comma-separated list of packet types, where the possible packet types are DM1, DM3, DM5, DH1, DH3, DH5, HV1, HV2, HV3. Default is to allow all packet types. Option --role can have value m (do not allow role switch, stay master) or s (allow role switch, become slave if the peer asks to become master). Default is m.
dc <bdaddr> [reason]
Delete baseband connection from remote device with Bluetooth address bdaddr. The reason can be one of the Bluetooth HCI error codes. Default is 19 for user ended connections. The value must be given in decimal.
sr <bdaddr> <role> Switch role for the baseband connection from the remote device to master or slave.
cpt <bdaddr> <packet types>
Change packet types for baseband connection to device with Bluetooth address bdaddr. packet types is a comma-separated list of packet types, where the possible packet types are DM1, DM3, DM5, DH1, DH3, DH5, HV1, HV2, HV3.
rssi <bdaddr> Display received signal strength information for the connection to the device with Bluetooth address bdaddr.
lq <bdaddr> Display link quality for the connection to the device with Bluetooth address bdaddr.
tpl <bdaddr> [type] Display transmit power level for the connection to the device with Bluetooth address bdaddr. The type can be 0 for the current transmit power level (which is default) or 1 for the maximum transmit power level.
afh <bdaddr> Display AFH channel map for the connection to the device with Bluetooth address bdaddr.
lp <bdaddr> [value] With no value, displays link policy settings for the connection to the device with Bluetooth address bdaddr. If value is given, sets the link policy settings for that connection to value. Possible values are RSWITCH, HOLD, SNIFF and PARK.
lst <bdaddr> [value] With no value, displays link supervision timeout for the connection to the device with Bluetooth address bdaddr. If value is given, sets the link supervision timeout for that connection to value slots, or to infinite if value is 0.
auth <bdaddr> Request authentication for the device with Bluetooth address bdaddr.
enc <bdaddr> [encrypt enable]
Enable or disable the encryption for the device with Bluetooth address bdaddr.
key <bdaddr> Change the connection link key for the device with Bluetooth address bdaddr.
clkoff <bdaddr> Read the clock offset for the device with Bluetooth address bdaddr.
clock [bdaddr] [which clock]
Read the clock for the device with Bluetooth address bdaddr. The clock can be 0 for the local clock or 1 for the piconet clock (which is default).
lescan [--privacy] [--passive] [--whitelist] [--discovery=g|l] [--duplicates]
Start LE scan
leinfo [--static] [--random] <bdaddr>
Get LE remote information
lewladd [--random] <bdaddr>
Add device to LE White List
lewlrm <bdaddr> Remove device from LE White List
lewlsz Read size of LE White List
lewlclr Clear LE White List
lerladd [--local irk] [--peer irk] [--random] <bdaddr>
Add device to LE Resolving List
lerlrm <bdaddr> Remove device from LE Resolving List
lerlclr Clear LE Resolving List
lerlsz Read size of LE Resolving List
lerlon Enable LE Address Resolution
lerloff Disable LE Address Resolution
lecc [--static] [--random] <bdaddr> | [--whitelist]
Create a LE Connection
ledc <handle> [reason]
Disconnect a LE Connection
lecup <handle> <min> <max> <latency> <timeout>
LE Connection Update
AUTHORS
Written by Maxim Krasnyansky <maxk@qualcomm.com> and Marcel Holtmann <marcel@holtmann.org>
man page by Fabrizio Gennari <fabrizio.gennari@philips.com>
BlueZ Nov 12 2002 HCITOOL(1)
Manual page hcitool(1) line 154/176 (END) (press h for help or q to quit)
Hcitool используется для настройки и выполнения различных задач, таких как сканирование, запросы и извлечение имен. Это действительно полезно, чтобы узнать об устройстве, но некоторые из этих команд требуют MAC-адрес для их использования.
Давайте посмотрим на некоторые из этих команд. Сначала мы сделаем сканирование. Он будет использовать интерфейс Bluetooth для сканирования ближайших устройств Bluetooth и представления их MAC-адресов, чтобы мы могли выполнить дополнительное сканирование, запрос или попытаться получить имя устройства.
Код:
~# hcitool scan
Scanning ...
00:1D:A5:00:09:1D OBDII
Выше мы видим
Ссылка скрыта от гостей
который подключен к автомобилю. Это довольно интересно. С MAC-адресом мы можем теперь сделать другую команду, которая требовала, чтобы у нас был MAC-адрес. Давайте попробуем получить название устройства:
Код:
~# hcitool name 00:1D:A5:00:09:1D
OBDII
Это должно позволить нам получить название устройства, но мы уже знали это с того первого сканирования. Однако, если мы этого не знаем, это позволит нам узнать больше об этом. Чтобы узнать больше, мы можем использовать команду inq :
Код:
~# hcitool inq 00:1D:A5:00:09:1D
Scanning ...
00:1D:A5:00:09:1D clock offset: 0x21c0 class: ox5a020c
Обратите внимание, что он также отображает смещение часов и класс. Класс указывает, какой это тип устройства Bluetooth, и мы можем посмотреть код, перейдя на
Ссылка скрыта от гостей
. Или, как мы увидим позже, некоторые инструменты сделают это за нас.Шаг 3 - Сканирование служб с помощью sdptool
Чтобы узнать больше об услугах, мы можем использовать инструмент под названием sdptool, чтобы узнать больше о том, что доступно на устройстве, и узнать о свойствах - возможно, что мы можем и не можем сделать. Нам нужно будет снова использовать MAC-адрес, но сначала давайте проверим его справочную страницу:
Код:
~# man sdptool
sdptool(1) General Commands Manual sdptool(1)
NAME
sdptool — control and interrogate SDP servers
SYNOPSIS
sdptool [options] {command} [command parameters ...]
DESCRIPTION
sdptool provides the interface for performing SDP queries on Bluetooth
devices, and administering a local SDP database.
COMMANDS
The following commands are available. In all cases bdaddr specifies
the device to search or browse. If local is used for bdaddr, then the
local SDP database is searched.
Services are identified and manipulated with a 4-byte record_handle
(NOT the service name). To find a service's record_handle, look for
the "Service RecHandle" line in the search or browse results
search [--bdaddr bdaddr] [--tree] [--raw] [--xml] service_name
Search for services.. Known service names are DID, SP, DUN, LAN, FAX, OPUSH, FTP, HS, HF, HFAG, SAP, NAP, GN, PANU, HCRP, HID, CIP, A2SRC, A2SNK, AVRCT, AVRTG, UDIUE, UDITE and SYNCML.
browse [--tree] [--raw] [--xml] [bdaddr]
Browse all available services on the device specified by a Bluetooth address as a parameter.
records [--tree] [--raw] [--xml] bdaddr
Retrieve all possible service records.
add [ --handle=N --channel=N ]
Add a service to the local SDP database. You can specify a handle for this record using the --handle option. You can specify a channel to add the service on using the --channel option. NOTE: Local adapters configuration will not be updated and this command should be used only for SDP testing.
del record_handle
Remove a service from the local SDP database. NOTE: Local adapters configuration will not be updated and this command should be used only for SDP testing.
get [--tree] [--raw] [--xml] [--bdaddr bdaddr] record_handle
Retrieve a service from the local SDP database.
setattr record_handle attrib_id attrib_value
Set or add an attribute to an SDP record.
setseq record_handle attrib_id attrib_values
Set or add an attribute sequence to an SDP record.
OPTIONS
--help Displays help on using sdptool.
EXAMPLES
sdptool browse 00:80:98:24:15:6D
sdptool browse local
sdptool add DUN
sdptool del 0x10000
BUGS
Documentation needs improving.
AUTHOR
Maxim Krasnyansky <maxk@qualcomm.com>. Man page written by Edd Dumbill <ejad@debian.org>.
sdptool(1)
Manual page sdptool(1) line 60/82 (END) (press h for help or q to quit)
Это позволяет нам настраивать, контролировать и опрашивать серверы SDP (протокол обнаружения служб). Так что это то, что позволяет нам делать запросы на устройствах Bluetooth и точно выяснять, что происходит с разрешениями и что мы, вероятно, можем начать делать с этими службами.
Выйдите из man-страницы, наберите sdptool, затем просмотрите , а затем MAC-адрес, который мы захватили.
Код:
~# sdptool browse 00:1D:A5:00:09:1D
Browsing 00:1D:A5:00:09:1D ...
Service Name: SPP
Service RecHandle: 0x10001
Service Class ID List:
"Serial Port" (ox1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Здесь мы можем увидеть немного больше информации об обмене данными, протоколах и, возможно, мы могли бы даже начать обнаруживать, есть ли уязвимость в устройстве или мы можем связаться с ним напрямую. Мы можем даже узнать, использует ли он рандомизацию MAC-адреса или что-то в этом роде.
Шаг 4 - Пинг устройств Bluetooth с помощью l2ping
Теперь, когда у нас есть MAC-адреса всех соседних устройств, мы можем проверить их с помощью инструмента под названием l2ping , независимо от того, находятся они в режиме обнаружения или нет, чтобы узнать, доступны ли они. Для меня это всего лишь одно устройство. Прежде чем сделать это, давайте запустим человек страницу для инструмента просто увидеть все , что доступно.
Код:
~# man l2ping
L2PING(1) Linux System Administration L2PING(1)
NAME
l2ping - Send L2CAP echo request and receive answer
SYNOPSIS
l2ping [-i <hciX>] [-s size] [-c count] [-t timeout] [-d delay] [-f]
[-r] [-v] bd_addr
DESCRIPTION
L2ping sends a L2CAP echo request to the Bluetooth MAC address bd_addr
given in dotted hex notation.
OPTIONS
-i <hciX> The command is applied to device hciX , which must be the name of an installed Bluetooth device (X = 0, 1, 2, ...) If not specified, the command will be sent to the first available Bluetooth device.
-s size The size of the data packets to be sent.
-c count Send count number of packets then exit.
-t timeout Wait timeout seconds for the response.
-d delay Wait delay seconds between pings.
-f Kind of flood ping. Use with care! It reduces the delay time between packets to 0.
-r Reverse ping (gnip?). Send echo response instead of echo request.
-v Verify response payload is identical to request payload. It is not required for remote stacks to return the request payload, but most stacks do (including Bluez).
bd_addr The Bluetooth MAC address to be pinged in dotted hex notation like 01:02:03:ab:cd:ef or 01:EF:cd:aB:02:03
AUTHORS
Written by Maxim Krasnyansky <maxk@qualcomm.com> and Marcel Holtmann <marcel@holtmann.org>
man page by Nils Faerber <nils@kernelconcepts.de>, Adam Laurie <adam@algroup.co.uk>.
BlueZ Jan 22 2002 L2PING(1)
Manual page l2ping(1) line 32/54 (END) (press h for help or q to quit)
Нам не нужно ничего делать здесь, просто пингуйте устройство Bluetooth следующим образом:
Код:
~# l2ping 00:1D:A5:00:09:1D
Ping: 00:1D:A5:00:09:1D from ██:██:██:██:██:██ (data size 44) ...
44 bytes from 00:1D:A5:00:09:1D id 0 time 37.57ms
44 bytes from 00:1D:A5:00:09:1D id 1 time 27.23ms
44 bytes from 00:1D:A5:00:09:1D id 2 time 27.59ms
44 bytes from 00:1D:A5:00:09:1D id 3 time 27.31ms
44 bytes from 00:1D:A5:00:09:1D id 4 time 40.99ms
44 bytes from 00:1D:A5:00:09:1D id 5 time 48.77ms
44 bytes from 00:1D:A5:00:09:1D id 6 time 59.93ms
44 bytes from 00:1D:A5:00:09:1D id 7 time 48.84ms
44 bytes from 00:1D:A5:00:09:1D id 8 time 67.59ms
Шаг 5 - Сканирование Bluetooth-устройств с помощью btscanner
Теперь пришло время перейти к последнему инструменту, который мы собираемся охватить, - это полноценный графический пользовательский интерфейс, используемый для обнаружения устройств Bluetooth. Он называется btscanner , и как только мы его запустим, мы можем набрать btscanner . Но перед этим, так как мы просмотрели справочные страницы по остальным инструментам, давайте кратко рассмотрим и здесь:
Код:
~# man btscanner
BTSCANNER(1) General Commands Manual BTSCANNER(1)
NAME
btscanner - ncurses-based scanner for Bluetooth devices
SYNOPSIS
btscanner [--help] [--cfg <file>] [--no-reset]
DESCRIPTION
This manual page was written for the Debian GNU/Linux distribution be‐
cause the original program does not have a manual page.
btscanner is a tool designed specifically to extract as much informa‐
tion as possible from a Bluetooth device without the requirement to
pair. A detailed information screen extracts HCI and SDP information,
and maintains an open connection to monitor the RSSI and link quality.
btscanner is based on the BlueZ Bluetooth stack, which is included with
recent Linux kernels, and the BlueZ toolset. btscanner also contains a
complete listing of the IEEE OUI numbers and class lookup tables. Using
the information gathered from these sources it is possible to make edu‐
cated guesses as to the host device type.
OPTIONS
--help Show a help text and exit.
--cfg <file> Use <file> as the config file.
--no-reset Do not reset the Bluetooth adapter before scanning.
BUGS
Please report any bugs to Tim Hurman <tim.hurman@pentest.co.uk>.
LICENCE
btscanner is covered by the GNU General Public License (GPL).
SEE ALSO
kismet(1).
AUTHORS
Tim Hurman <tim.hurman@pentest.co.uk>
This manual page was written by Uwe Hermann <uwe@hermann-uwe.de>, for
the Debian GNU/Linux system (but may be used by others).
April 22, 2006 BTSCANNER(1)
Manual page btscanner(1) line 23/45 (END) (press h for help or q to quit)
Вы можете видеть, что btscanner не так много, и это потому, что это инструмент с графическим интерфейсом, всё происходит после запуска инструмента, поэтому давайте сделаем это сейчас:
Код:
~# btscanner
Opening the OUI database
Reading the OUT database
Интерфейс может выглядеть немного похожим на людей, знакомых с интерфейсом Kismet, что позволяет нам делать много вещей в формате командной строки с чувством GUI. Это полезно и здорово, потому что это означает, что, набрав i , мы можем начать сканирование запросов и найти близлежащие устройства Bluetooth, и это может позволить нам подключиться или установить команду или что-то в этом роде.
Мы нашли устройство, и это то же самое Bluetooth-устройство, которое мы видели раньше, и я уверен, что мы сможем найти и другие устройства по мере того, как они будут подключаться. А пока мы можем продолжить и нажать Enter, чтобы узнать об устройстве.
Здесь мы можем увидеть название устройства, когда оно впервые увидено, владельца, который интересен, а затем еще немного информации о различных рекламируемых функциях.
Чтобы вернуться в главное окно, нажмите Q, и по мере обнаружения других устройств, или когда они находятся в пределах досягаемости, мы можем найти их здесь и начать узнавать больше о том, что делают эти устройства, с чем они общаются, что иначе они способны и больше.
Если у вас нет Bluetooth на вашем компьютере, вы всегда можете подключить адаптер Bluetooth, но вы можете проверить его совместимость, прежде чем идти дальше и решать проблемы. Я не уверен, что каждый адаптер Bluetooth будет работать с любой программой Linux.
Выше видно, что мы нашли второе устройство, так что давайте продолжим и нажмем на него.
Мы видим, что это смартфон - устройство Samsung, и у него гораздо больше возможностей и вещей, которые мы могли бы с ним сделать, чем у нашего первого устройства. Уже сейчас мы можем протянуть руку и начать смотреть на различные устройства. Мы можем начать узнавать о них, может быть, о программном обеспечении, которое стоит за ними, и, конечно, видеть сервисы, которые они рекламируют, чтобы понять, представляет ли оно хорошую поверхность для атаки или нет.
Все вышесказанное сделано с помощью полностью обновленной версии Kali Linux, и нам не пришлось ничего устанавливать. Так что, если вы начинаете с Kali Linux заново, то это отличный способ использовать некоторые из встроенных инструментов, чтобы связаться и прикоснуться к Bluetooth-устройствам вокруг вас, и начать узнавать больше о том, на что способен каждый из этих универсальных и мощных инструментов.
То, что мы узнали в статье...
Сегодня мы изучили разведку Bluetooth, и есть несколько более сложных вещей, которые мы можем сделать с этой информацией. Многие устройства Bluetooth не пытаются рандомизировать свой MAC-адрес, а это означает, что он будет одинаковым все время. Это может быть использовано для отслеживания человека с места на место.
Например,
Ссылка скрыта от гостей
, где вы можете найти потерянный предмет у любого, у кого запущено приложение. Это означает, что человек отслеживается, и его невозможно отключить. Если вы хотите отказаться от такого рода отслеживания, обязательно отключите Bluetooth на таких устройствах, как сотовый телефон. Но для устройств, которые, естественно, включают его, таких как трекер, нет другого выбора, кроме как оставить его дома.
Ссылка скрыта от гостей