Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
nOBEX — nOBEX allows emulating the PBAP, MAP, and HFP profiles to test vehicle infotainment systems and similar devices using these profiles | Kitploit
Инструменты/GitHubGitHub/nccgroup/nobex
Embedded Systems SecurityBluetooth SecurityFuzzingWireless SecurityPenetration Testing
GitHubnccgroup/nobex

nOBEX

nOBEX allows emulating the PBAP, MAP, and HFP profiles to test vehicle infotainment systems and similar devices using these profiles

Репозиторий
96165 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

nOBEX

Введение

nOBEX позволяет эмулировать профили PBAP, MAP и HFP для тестирования автомобильных информационно-развлекательных систем и аналогичных устройств, использующих эти профили. nOBEX предоставляет клиенты PBAP и MAP для клонирования подлинных виртуальных файловых систем этих профилей с реальных телефонов. Это означает загрузку всей телефонной книги и всех текстовых сообщений. Сырые vCard, XML-списки и структуры MAP BMSG сохраняются и могут быть изменены по желанию для негативного тестирования. Затем nOBEX может выступать в качестве сервера PBAP и MAP, позволяя автомобилям и другим устройствам подключаться к нему и получать информацию о телефонной книге и сообщениях. VCard, BMSG и XML-списки отправляются точно в том виде, в котором сохранены, что позволяет пропускать через себя некорректные данные, изменённые пользователем. Поскольку большинство автомобильных головных устройств требуют поддержки HFP до того, как они начнут использовать PBAP и MAP, nOBEX также предоставляет базовую поддержку HFP. Он отправляет настраиваемые пользователем заранее заданные ответы на AT-команды, поступающие от головного устройства автомобиля. Это позволяет имитировать настоящий сотовый телефон.

nOBEX построен на основе проекта PyOBEX Дэвида Бодди (David Boddie). Этот инструмент был бы невозможен без больших усилий Дэвида, сделавших OBEX доступным и простым в работе. nOBEX расширяет PyOBEX, добавляя поддержку больших многочастных OBEX-сообщений, эмуляцию HFP, серверы PBAP и MAP, клиент MAP и улучшенный клиент PBAP.

nOBEX (и PyOBEX) используют Bluetooth-стек BlueZ для публикации через протокол обнаружения служб (SDP) и установления RFCOMM-соединений. nOBEX/PyOBEX содержат автономные реализации спецификации OBEX для ролей клиента и сервера. Поддерживаются Python 2 и 3.

В режиме клиента nOBEX использует BlueZ для запроса служб, предлагаемых сервером. Если он обнаруживает, что запрошенная служба доступна, он подключается к серверу через RFCOMM на порту, указанном через SDP. OBEX-запросы формируются и отправляются на сервер в соответствии с используемым профилем. Ответы интерпретируются и сохраняются на диск. Режимы клиента для PBAP и MAP можно использовать для клонирования реального телефона.

В режиме сервера nOBEX публикует доступные службы через SDP. Когда клиент устанавливает RFCOMM-соединение на объявленном порту, сервер принимает и обрабатывает OBEX-запросы. OBEX-ответы на запросы отправляются с использованием данных на диске. Серверы PBAP и MAP обслуживают структуры файлов/папок, соответствующие тем, которые создаются соответствующими клиентами.

Инструкции по установке

Следующие инструкции по настройке были протестированы на Fedora 24, 27 и 29. Другие свежие дистрибутивы также могут работать, но опыт может отличаться. Возможно, вам потребуется установить устаревшие инструменты bluez (включая sdptool), если ваш дистрибутив не включает sdptool. Также имейте в виду, что OBEX-серверы, как правило, не работают в виртуальных машинах с общими Bluetooth-адаптерами. Либо запускайте Linux нативно, либо используйте выделенный USB Bluetooth-адаптер, используемый только виртуальной машиной.

Попробуйте проверить объявленные локальные службы через SDP:

root@kitploit:~
sudo sdptool browse local

Если у вас свежий дистрибутив, скорее всего, это не сработает из-за некоторых критических изменений API в BlueZ 5. Вы можете исправить это, запустив bluetoothd в режиме совместимости. Для этого отредактируйте systemd-службу для bluetoothd.

root@kitploit:~
sudo vi /usr/lib/systemd/system/bluetooth.service

Добавьте --compat в строку ExecStart:

root@kitploit:~
ExecStart=/usr/libexec/bluetooth/bluetoothd --compat

Теперь перезапустите bluetoothd:

root@kitploit:~
sudo service bluetooth stop
sudo systemctl daemon-reload
sudo service bluetooth start
sudo hciconfig -a hci0 reset

Снова проверьте просмотр локальных SDP-служб (на этот раз должно сработать):

root@kitploit:~
sudo sdptool browse local

Получите nOBEX и установите его:

root@kitploit:~
git clone https://github.com/nccgroup/nOBEX.git
cd nOBEX
sudo python3 setup.py install

Инструкции по использованию

PBAP

Найдите MAC-адрес телефона, телефонную книгу которого вы хотите клонировать:

root@kitploit:~
hcitool scan

Клонируйте содержимое PBAP существующего телефона (используйте ваш правильный MAC и желательно пустой или несуществующий целевой каталог по вашему выбору):

root@kitploit:~
python3 examples/pbapclient.py 5C:51:88:8A:EC:5B ~/pbap_root/

В качестве альтернативы используйте пример дерева данных PBAP, расположенный в папке examples/pbap_root.

Измените vCard и XML-списки в вашем каталоге дампа PBAP по желанию. Теперь запустите PBAP-сервер, используя клонированную телефонную книгу:

root@kitploit:~
sudo python3 examples/multiserver.py --pbap ~/pbap_root/

Вам также потребуется сопрячь ваш PBAP-клиент с компьютером (PBAP-сервером).

MAP

Скачайте данные сообщений с вашего телефона, чтобы создать тестовое дерево MAP:

root@kitploit:~
python3 examples/mapclient.py 5C:51:88:8A:EC:5B ~/map_root/

В качестве альтернативы, если ваш телефон не поддерживает MAP должным образом, используйте пример дерева данных MAP, расположенный в папке examples/map_root.

Измените пример данных по желанию. Затем запустите сервер, указав, где он должен искать корень дерева MAP.

root@kitploit:~
sudo python3 examples/multiserver.py --map ~/map_root/

HFP HF

Клиент HFP (свободные руки, эмулятор Car Kit) предоставляет CLI для AT-команд для общения с вашим HFAG (телефоном/модемом). Я называю его «HFP-клиентом», несмотря на то, что это RFCOMM-сервер, потому что он является «клиентом» для HFAG (телефона/модема). Вы используете эмулятор HF («клиент») для отправки AT-команд на HFAG, несмотря на тот факт, что «сервер» (HFAG) является тем, кто инициирует RFCOMM-соединение.

Для запуска эмулятора HF:

root@kitploit:~
sudo python3 examples/hfpclient.py

Возможно, вам потребуется запустить эмулятор HF, чтобы объявить через SDP, что вы являетесь HF, до сопряжения с телефоном. Когда эмулятор HF запущен, ваш телефон инициирует RFCOMM-соединение AT-команд со скриптом эмулятора. Чтобы ускорить этот процесс, вы можете нажать на сопряжённый компьютер в настройках Bluetooth вашего телефона, чтобы инициировать подключение/переподключение.

Как только HFAG (телефон/модем) инициирует соединение, у вас обычно есть ограниченное окно (от 30 секунд до минуты) для настройки сеанса HFP. Прежде чем вы сможете отправлять полезные AT-команды (например, инициировать телефонные звонки), вам нужно отправить последовательность AT-команд в течение ограниченного окна, иначе HFAG может отключиться от вас. Следующая начальная последовательность AT-команд должна работать для большинства телефонов:

root@kitploit:~
AT+BRSF=39
AT+CIND=?
AT+CIND?
AT+CMER=3,0,0,1
AT+CHLD=?
AT+CCWA=1
AT+CLIP=1
AT+NREC=0

HFP HFAG

Сервер HFP (Audio Gateway) довольно простой, он отправляет предварительно настроенные ответы на отдельные команды. Сервер из коробки настроен на поддержку распространённых HFP-команд, но каждому автомобилю, скорее всего, потребуется несколько дополнительных команд и/или изменений в ответах. Пользовательские ответы можно настроить с помощью текстового файла с форматом пар команда и ответ в каждой строке, где команда и ответ разделены табуляцией. Примеры файлов конфигурации можно найти в папке examples/bbeast.

В отличие от других серверов, реализация nOBEX HFP AG на самом деле не принимает RFCOMM-соединения. Стандарт HFP неоднозначен в отношении того, как должны устанавливаться соединения, и поэтому и HF, и AG могут как принимать, так и инициировать соединения. Различные головные устройства ведут себя по-разному в отношении методов установления соединения. Однако большинство HF-устройств, как правило, принимают подключение со стороны AG, если AG не принимает соединения на своём собственном порту. Таким образом, «сервер» nOBEX HFP AG просто ищет среди сопряжённых устройств те, которые поддерживают службу HF, и затем nOBEX подключается к HF-устройству.

Имейте в виду, что код HFP AG будет пытаться подключиться к любому устройству, указанному в /var/lib/bluetooth/*/*, которое заявляет о поддержке роли HFP HF. Поэтому вам следует удалить любые ошибочные сопряжения в этом каталоге перед попыткой использования HFP-сервера.

Для запуска автономного HFP AG (файл конфигурации необязателен):

root@kitploit:~
sudo python3 examples/multiserver.py --hfp [config_file]

Сервер HFP (HFAG) также поддерживает интерактивный режим, в котором вы можете редактировать автоматические ответы во время выполнения или вручную отправлять AT-ответы. Сервер HFP прослушивает порт 7137 на localhost для команд. Вы можете подключиться к нему с помощью netcat, как показано ниже:

root@kitploit:~
nc localhost 7137

Для этого интерфейса есть только две простые команды:

  • send <atresp> — отправить atresp в качестве AT-ответа
  • ursp <atcmd> <atresp> — обновить/установить автоматический ответ для atcmd на atresp

Следующие примеры команд имитируют входящий телефонный звонок:

root@kitploit:~
ursp AT+CLCC +CLCC: 1,1,4,0,0,"1234567890",129
send RING

FTP

Клиент FTP (File Transfer Profile) позволяет просматривать файлы на OBEX FTP-сервере, например, на другом компьютере с запущенным nOBEX или на Android-телефоне с приложением Bluetooth File Transfer. В каталоге examples находится пример программы FTP-клиента.

root@kitploit:~
python3 examples/ftpclient.py SERVER_MAC_ADDRESS [save_directory]

Запуск примерa FTP-клиента только с Bluetooth MAC-адресом в качестве аргумента выведет рекурсивный список каталогов всех файлов, доступных через OBEX FTP на сервере. Если указан необязательный аргумент save_directory, скрипт загрузит каждый файл, доступный на сервере, и сохранит его в указанный каталог сохранения на вашем компьютере.

Сервер FTP позволяет клиенту просматривать файлы на вашем компьютере (сервере) внутри указанной папки.

root@kitploit:~
sudo python3 examples/multiserver.py --ftp PATH_TO_FTP_FOLDER

OPP

Клиент OPP (Object Push Profile) позволяет отправлять файл с вашего компьютера на OBEX OPP-сервер.

root@kitploit:~
python3 examples/pushclient.py SERVER_MAC_ADDRESS FILE_TO_PUSH

Сервер OPP позволяет клиенту отправлять файлы на ваш компьютер (сервер) внутри указанной папки.

root@kitploit:~
sudo python3 examples/multiserver.py --opp PATH_TO_OPP_FOLDER

Объединение серверов

Скрипт multiserver.py позволяет одновременно запускать любую комбинацию серверов HFP, MAP, PBAP, FTP и OPP. Просто объедините аргументы из примеров, показанных выше. Чтобы запустить HFP, MAP и PBAP одновременно:

root@kitploit:~
python3 examples/multiserver.py --map ~/map_root/ --pbap ~/pbap_root/ --hfp [config_file]

Комбинация HFP и PBAP была успешно протестирована на Ford Focus 2012 года.

Применение

Основная цель nOBEX — выполнение негативного тестирования и фаззинга клиентов PBAP и MAP в автомобильных головных устройствах. Поддержка HFP и поддержка клиентов PBAP/MAP предназначены для содействия этой цели. Ручной фаззинг можно выполнять, запуская сервер с вручную изменёнными XML-списками, vCard и BMSG. OBEX — это богатая цель для фаззинга со множеством вложенных TLV-структур, которые могут охватывать многочастные сообщения. PBAP и MAP значительно расширяют поверхность атаки за счёт парсеров vcard, BMSG и XML.

nOBEX не имеет встроенной поддержки автоматизированного фаззинга, но, поскольку он написан на Python, его легко расширить. Более мощные возможности фаззинга можно создать, объединив его с механизмом мутаций и инструментируя целевое устройство.

Помимо фаззинга MAP и PBAP в автомобильных головных устройствах, nOBEX также можно использовать для обычного позитивного тестирования PBAP, MAP и других профилей OBEX (таких как FTP) как для роли клиента, так и для роли сервера. Серверы PBAP и MAP были протестированы с приложением OBEX Commander для Android, в котором можно было вызвать множество сбоев из-за некорректной OBEX-связи и повреждённых данных, специфичных для профиля. Кроме того, поддержку HFP можно использовать для ручного фаззинга AT-команд.

Скачать инструмент