DDoS Bluetooth устройств.
Я думаю меня не одного бесят школьники с переносными 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. Через какое-то время он все равно включится, но музыка прервется, и некоторое удовлетворение будет получено.
Второй способ: 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
На выходе мы увидим абсолютно похожую картину: пинги становятся дольше, а музыка прерывается. Красота!
Эти два способа будут работать практически с любыми блютусными колонками, гарнитурами и прочими похожими устройствами. Просто потому, что производители не выпускают для них новые прошивки, способные фильтровать входящие пакеты. Так что, если у тебя есть ноутбук с «Линуксом» на борту, ты точно можешь назвать себя грозой портативных колонок.
Если колонка справляется с атакой, можно попробовать отправить пакеты на сам телефон, к которому она подключена.
Подключаемся к чужому девайсу.
Как мы уже знаем, примитивные колонки и гарнитуры почти никогда не фильтруют пакеты, которые мы им отправляем. Но что будет, если отослать такому девайсу не просто пакет с данными для проверки связи (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)
TG chanel @h4ckers_zone
print('Connecting...')
Перед запуском скрипта нам нужно узнать MAC-адрес устройства. Для этого используем уже знакомую команду hcitool scan, а полученный адрес вставляем в скрипт вместо <MAC_address>. Теперь сохраняем скрипт и запускаем его:
$ python <FileName>
Сработает скрипт или нет, зависит от модели атакуемого девайса, вернее, от скорости заполнения буфера. Если буфер успеет забиться до его очистки, то команда будет выполнена, и тогда мы подключимся к колонке одновременно с основным пользователем. Если же буфер очистится, то ничего не получится и придется перезапустить скрипт.
Если наш сценарий успешно выполнен, мы можем устроить свою дискотеку или вырубить устройство.