Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #59, ОКТЯБРЬ 2005 г.

Узнаем по походке

Eto'o

Спецвыпуск: Хакер, номер #059, стр. 059-032-1


Обнаружение и fingerprinting BT-устройств

Прежде чем начинать атаку на какой-либо Bluetooth-девайс, расположенный по соседству, необходимо собрать как можно больше информации о супостате: BT-адрес, наименование производителя, тип этого устройства, версию его прошивки, предоставляемые сервисы и т.д. Именно с обнаружения устройства и получения наиболее полной информации о нем начинается любая атака.

Получение информации о ломаемой системе - приоритетная задача для любого взломщика. Никто не компилирует наобум и не запускает сотни эксплойтов для ftp-сервиса, не зная достоверно его версию. То же в воздушных делах. Чтобы утащить через obexapp секретный номер из телефонной книги, почитать SMS-сообщения и заставить телефон позвонить по платному номеру, необходимо разузнать как можно больше об атакуемом девайсе. На практике это не всегда просто. Но мы разберемся.

Опытное железо

Чтобы описанные мной манипуляции не казались слишком абстрактными, определимся с системой, в которой будем проводить свои опыты. Мне абсолютно все равно, какой ОС ты отдашь предпочтение, - я использовал FreeBSD 5.3 с дешевым ($10) USB BT-адаптером. Для этой системы есть полноценный BT-стэк, написанный нашим соотечественником.

Я вполне допускаю, что ты будешь использовать Linux с Bluez или вовсе Windows. Это твое дело, и пока ты обдумываешь его, мы обсудим проблему обнаружения соседних BT-устройств.

Обнаружение

Даже если ты знаешь наверняка, что по соседству находится включенный BT-девайс, это еще не означает, что для тебя открыты все двери. Для начала атаки, как минимум, нужно знать BT-адрес ломаемого девайса. Довольно часто в этом нет ничего сложного: если девайс находится в discoverable-режиме, то он отвечает на специальные broadcast-пакеты, выдавая себя с потрохами и сообщая всем окружающим свой BT-адрес. Инициировать такое сканирование можно даже с мобильного телефона, правда, далеко не все аппараты позволяют пользователю ознакомиться с BT-адресами найденных устройств, большинство показывают только лишь символические имена девайсов. Нас это не устраивает, поэтому будем использовать более мощный инструмент - в моем случае им оказалась софтина hccontrol, которая идет в поставке с BT-стэком для BSD.

Эта софтина занимается тем, что реализует все операции, связанные с интерфейсом HCI. Пользоваться этой программой чрезвычайно просто:

$ hccontrol –n имя_hci_узла команда

Тут следует заметить, что имя узла - не то же самое, что имя интерфейса. Например, интерфейсу ubt0 соответствует имя ubt0hci. В качестве команды может быть указано несколько десятков допустимых HCI-операций. Я думаю, имеет смысл выделить лишь несколько из них.

Первая осуществляет поиск в окрестностях активных discoverable-устройств и называется Inquiry. Пользуются ей вот так:

$ hccontrol –n ubt0hci Inquiry

В качестве результата работы утилита выведет информацию о найденных устройствах – нас, прежде всего, интересуют их адреса.

Следующая команда, Remote_Name_Request, получает имя устройства по известному адресу и используется таким образом:

Содержание  Вперед на стр. 059-032-2