В 2023 году в Bluetooth была обнаружена уникальная уязвимость, которая дает возможность неаутентифицированному устройству HID инициировать и установить зашифрованное соединение. В случае успешной атаки HID-устройство может вводить команды в целевое устройство.
Этот метод эксплуатации применим к непатченным устройствам на базе Android 11 и выше, а также ко всем устройствам на базе Android 10 и ранее, для которых патчи отсутствуют.
Доказательство концепции или POC было представлено в январе 2024 года и недавно интегрировано в новый инструмент под названием BlueDucky. Давайте рассмотрим этот инструмент и посмотрим, на что он способен.
Скачайте и установите BlueDucky
Для установки BlueDucky нам нужно сделать несколько вещей, чтобы подготовить нашу систему.
- Во-первых, обновите кэш apt.
- Затем установите необходимые зависимости из репозитория Kali.
- Нам n0w нужно получить bluez с github.com. Если вы изучали мои предыдущие уроки по bluetooth, то скорее всего, у вас уже есть эта программа.
- Теперь перейдите в новый каталог pybluez.
cd pybluez
- Теперь нам нужно запустить скрипт настройки для bluez
- Далее нам нужно собрать bdaddr из исходного кода. bdaddr позволяет нам запрашивать или устанавливать адрес локального Bluetooth-устройства.
cd
git clone --depth=1 https://github.com/bluez/bluez.git
gcc -o bdaddr ~/bluez/tools/bdaddr.c ~/bluez/src/oui.c -I ~/bluez -lbluetooth
- Теперь давайте скопируем bdaddr в наш локальный каталог бинарных файлов (/usr/local/bin), чтобы мы могли использовать его в нашем скрипте из любого места (/usr/local/bin находится в переменной Linux $PATH).
sudo cp bdaddr /usr/local/bin
Наконец, мы должны загрузить BlueDucky с github.
git clone https://github.com/pentestfunctions/BlueDucky.git
cd BlueDucky
sudo hciconfig hci0 up
Запуск BlueDucky
Теперь, когда все необходимые элементы для запуска BlueDucky установлены, давайте попробуем его запустить. Если вы используете систему с внешним bluetooth-адаптером, как и я, вероятно, вам придется внести небольшие изменения в скрипт Python.
По умолчанию BlueDucky использует hci0 для сканирования устройств Bluetooth. Однако если у вас подключено внешнее устройство Bluetooth, оно, вероятно, будет распознано как hci1.
Просто откройте скрипт в вашем текстовом редакторе и измените значение по умолчанию на hci1. В моем случае, я использовал стандартный текстовый редактор GUI в Kali, который называется mousepad.
sudo mousepad BlueDucky.py
- Теперь перейдите к сохранению этого файла. Обязательно дайте себе право на выполнение.
- Теперь стоит убедиться, что ваш адаптер Bluetooth работает и активирован.
- Если ваш адаптер работает, пора запускать BlueDucky!
sudo python3 DlueDucky.py
Если у вас есть MAC-адрес устройства, введите его здесь. В противном случае просто нажмите ENTER, и BlueDucky выполнит сканирование доступных MAC-адресов.
На этом этапе вы можете выбрать "Да" и ввести MAC-адрес целевого устройства.
После этого BlueDucky выполнит все необходимые команды для компрометации устройства и, в случае успеха, передаст целевому устройству сообщение "hello there 123".
Устройства с поддержкой Bluetooth окружают нас в повседневной жизни. К ним относятся телефоны, планшеты, колонки, гарнитуры, клавиатуры и многие другие устройства.
Перед сопряжением с другим устройством устройства Bluetooth объявляют тип устройства, к которому они относятся. Это класс устройства. Злоумышленник может манипулировать этим объявлением класса, чтобы внедрить команды в устройство.
BlueDucky - это автоматизированный инструмент для эксплуатации этой уязвимости. Хотя инструмент отправляет только безобидное сообщение, его можно легко изменить, чтобы отправить на целевое устройство вредоносные команды, такие как "shutdown" или "rm -rf".