Вскрываем хардверный имплант. Как устроен девайс для слежки, замаскированный под кабель USB
Это перевод статьи Inside a low budget consumer hardware espionage implant. Переводчик — Андрей Письменный. Материал публикуется с разрешения автора.
Какое-то время назад Джо Фитц написал в твиттере об устройстве под названием S8 data line locator и назвал его «просачивающимся шпионажем» из-за того, что он похож на шпионское оборудование АНБ.
S8 data line locator — это подслушивающее устройство, снабженное модулем GSM, которое умещается в штепселе обычного кабеля USB для зарядки и передачи данных. Оно поддерживает частоты GSM 850, 900, 1800 и 1900 МГц.
Идея, лежащая в основе, очень напоминает продуктовую линейку COTTONMOUTH, выпускаемую по заказу АНБ и CSS, — там радиопередатчик тоже спрятан в вилку USB (см. утекший отчет на cryptome.org — PDF). Такие устройства называют имплантами.
Само устройство рекламируется как трекер геолокации, который можно использовать в машине: угонщик не примет кабель USB за маячок. Но сложно не заметить и возможность применения такого устройства во вред. Особенно учитывая, что точность определения геокоординат очень примерная (в моих тестах погрешность составляла 1,57 км). Зато можно позвонить на него и слушать аудио, передаваемое маленьким микрофоном, находящимся внутри. Либо устройство само может позвонить, если определит, что звук превышает предел в 40–45 дБ. Ну и совсем никаких сомнений в том, что шпионаж — основное применение этого гаджета, не остается, если учесть, что оно легко запаковывается обратно в фабричную упаковку после установки SIM-карты и настройки.
Возможности S8 data line locator
У устройства есть несколько возможностей для подслушивания и шпионажа. Только взгляни на лог переписки с устройством по SMS.
ПодслушиваниеЕсли звонить на S8 data line locator в течение десяти секунд, будет установлено соединение, и ты услышишь все, что слышит микрофон внутри устройства.
Обратный звонокSMS с текстом 1111 на устройство активирует обратный звонок. В подтверждение этого придет SMS с ответом:
Как только уровень звука поднимется до 40 дБ, устройство перезвонит на тот номер, с которого была прислана команда.
Для отключения обратного звонка нужно отправить SMS с кодом 0000 . Ответ будет выглядеть так:
Запрос геопозицииВ инструкции написано, что, если отправить по SMS команду dw , устройство в ответ пришлет информацию о своем местоположении. Выглядит это так:
Вместо xxxx будут символы 0–9, A–Z, a–z , а вместо строки Street, ZIP City, Country — название улицы, почтовый индекс, город и страна. По ссылке на http://gpsui.net можно перейти без авторизации, она перенаправит на Google Maps.
Получить местоположение с погрешностью меньше чем в 1,57 км у меня ни разу не вышло.
Делая запрос, устройство использует мобильный трафик для доступа к неизвестному эндпойнту (предположительно gpsui.net). Это подтверждается тем, что мой оператор снял с меня деньги за MMS/Internet. Разницы между MMS и использованием интернета он не указывает, но я беру на себя смелость предположить, что запрос был сделан во время определения местоположения. Именно это и стало отправной точкой для моего анализа.
WARNING
Поскольку устройство отправляет неизвестные данные неизвестной третьей стороне, его нельзя (по крайней мере, с чистой совестью) использовать в пентестах. Как минимум из тех соображений, что устройство уже могло быть в эксплуатации.
Дальше я попытался проанализировать и уничтожить эту «фичу» с отстуком куда-то.
Железо
Чтобы получить доступ к внутренностям устройства, сначала нужно снять металлическую защиту коннектора USB.
Теперь снимаем пластиковую крышку.
После вскрытия устройства определяем, что за чипы на нем установлены.
- MediaTek MT6261MA — низкобюджетный чип, который часто используется в умных часах китайского производства. Никакой официальной документации или информации о чипе компания MediaTek не публиковала;
- RDA 6626e — «мощный, высокоэффективный четырехканальный фронтэнд-модуль… созданный для установки в мобильные устройства с поддержкой сетей GSM850, EGSM900, DCS1800, PCS1900».
Я идентифицировал три разных способа подключиться к устройству.
USB (сквозной)Коннекторы USB A и Micro-B не подсоединены к MT6261MA. Они просто передают сигнал от одного к другому.
Следующее соединение — это UART.
Соединение с ним занимает примерно три секунды после загрузки устройства.
Вывод на этом обрывается, а ввод игнорируется.
Похоже, существует другая версия прошивки, которая может обрабатывать модемные команды AT. В приветствии этой альтернативной прошивки упомянут некто ZhiPu. Я тоже натыкался на эту строку, когда изучал файловую систему FAT12 прошивки, так что какая-то связь определенно есть.
Вот как выглядит вывод у схожего устройства.
USB (MTK)
Контакты DP и DM коннектора USB не подсоединены к линиям D+ и D-, зато V и GND подсоединены. DP и DM вместо этого подведены к MT6261MA, как показано на картинке.
Припаиваем кабель USB к коннекторам.
Теперь устройство будет распознаваться как телефон MediaTek, подключенный по USB.
Этот метод часто называют «починкой бута MTK», «флешем MTK DM DP» и так далее. Он позволит нам общаться с устройством и сделать дамп ПЗУ и флеш-памяти прошивки.
Продолжение доступно только участникам Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайтеЧленство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее