Атака на Bluetooth колонки

megaDED

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

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

Bash:
$ apt-get install blueman
Получив список потенциальных жертв, можно расправиться с их синезубыми девайсами несколькими способами. Рассмотрим каждый по отдельности.

Глушилка Bluetooth l2ping

Bash:
$ l2ping -i hci0 -s <packet value> -f <MAC_address>
Она сгенерирует пакеты указанного тобой в параметре <packet value> объема и будет отсылать эти пакеты на MAC-адрес, записанный в качестве параметра <MAC_address>. В конце концов вы увидите такую картину: в терминале время отклика будет постепенно увеличиваться, а на атакуемом устройстве, скорее всего, просто отключится Bluetooth. Через какое-то время он все равно включится, но музыка прервется, и некоторое удовлетворение будет получено. Такая схема очень хорошо работает, когда атакуемое устройство (к примеру, телефон) подключено к гарнитуре или колонке по Bluetooth. После атаки эти два устройства не смогут соединиться друг с другом.

Глушилка Bluetooth Websploit

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

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

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

Bash:
$ set bdaddr <MAC_address>

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

Bash:
$ set size 999
Все подготовительные действия завершены, можем запускать нашу «машину для убийств». На выходе мы увидим абсолютно похожую картину: пинги становятся дольше, а музыка прерывается. Красота!

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

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

Готовые глушилки Bluetooth

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

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

Как мы уже знаем, примитивные колонки и гарнитуры почти никогда не фильтруют пакеты, которые мы им отправляем. Но что будет, если отослать такому девайсу не просто пакет с данными для проверки связи (ping), а пакет с запросом на подключение к устройству? И не один. Не все производители подобных гарнитур позаботились о защите от переполнения буфера. Если все пакеты становятся в очередь, то что произойдет, когда складировать запросы уже будет некуда? Колонка попытается выполнить команду и при этом очистить буфер. Поэтому мы используем стандартный протокол обмена данными по Вluetooth — rfcomm. Но так как сама утилита, контролирующая протокол, не позволит нам отправить тысячу таких запросов, мы напишем небольшой скрипт на Python, который автоматизирует процесс.

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>. Теперь сохраняем скрипт и запускаем его:

Bash:
$ python <FileName>
Сработает скрипт или нет, зависит от модели атакуемого девайса, вернее, от скорости заполнения буфера. Если буфер успеет забиться до его очистки, то команда будет выполнена, и тогда мы подключимся к колонке одновременно с основным пользователем. Если же буфер очистится, то ничего не получится и придется перезапустить скрипт. Если наш сценарий успешно выполнен, мы можем устроить свою дискотеку или вырубить устройство. Мои личные эксперименты с колонкой JBL Xtreme привели к ее отключению, а вот JBL Flip 2 когда-то удавалось и перехватывать.