Вскрываем хардверный имплант. Как устроен девайс для слежки, замаскированный под кабель USB
Содержание статьи
- Возможности S8 data line locator
- Подслушивание
- Обратный звонок
- Запрос геопозиции
- Железо
- Чипы
- Коннекторы
- USB (MTK)
- Дамп прошивки
- Скачиваем нужную ветку fernly
- Дамп ПЗУ
- Дамп флеш-памяти
- Попытка записать флеш
- Анализ
- Сниффинг SIM (через SIMtrace)
- Попытка поснифать GPRS (через OpenBTS)
- Содержимое flash
- Операторские логи звонков и детализация по счету
- gpsui.net
- Как искать жучки
- Предстоящая работа
- Проблемы
- Идеи
- Приложение: факап
Крошечные жучки с SIM-картой внутри, способные передавать голос и отслеживать местоположение, можно встроить в любую электронику, в том числе — в обычный провод. В образовательных целях мы распотрошим такое устройство, изучим его прошивку, найдем скрытые команды и обнаружим, как он молча шлет данные на китайский сервис. Который еще и оказался уязвимым! Но обо всем по порядку.
INFO
Это перевод статьи 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 с ответом:
DT: Set voice monitoring, voice callback and sound sensitivity:400
Как только уровень звука поднимется до 40 дБ, устройство перезвонит на тот номер, с которого была прислана команда.
Для отключения обратного звонка нужно отправить SMS с кодом 0000
. Ответ будет выглядеть так:
DT: Voice monitoring cancelled successfully.
Запрос геопозиции
В инструкции написано, что, если отправить по SMS команду dw
, устройство в ответ пришлет информацию о своем местоположении. Выглядит это так:
Loc:Street, ZIP City, Country http://gpsui.net/u/xxxx Battery: 100%
Вместо 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
Следующее соединение — это UART.
Соединение с ним занимает примерно три секунды после загрузки устройства.
screen /dev/ttyUSB0 115200 # 8N1 F1: 0000 0000 V0: 0000 0000 [0001] 00: 1029 0001 01: 0000 0000 U0: 0000 0001 [0000] G0: 0002 0000 [0000] T0: 0000 0C73 Jump to BL ~~~ Welcome to MTK Bootloader V005 (since 2005) ~~~ **===================================================** Bye bye bootloader, jump to=0x1000a5b0
Вывод на этом обрывается, а ввод игнорируется.
Похоже, существует другая версия прошивки, которая может обрабатывать модемные команды AT. В приветствии этой альтернативной прошивки упомянут некто ZhiPu. Я тоже натыкался на эту строку, когда изучал файловую систему FAT12 прошивки, так что какая-то связь определенно есть.
Вот как выглядит вывод у схожего устройства.
F1: 0000 0000 V0: 0000 0000 [0001] 00: 1029 0002 01: 0000 0000 U0: 0000 0001 [0000] G0: 0002 0000 [0000] T0: 0000 0C73 Jump to BL ~~~ Welcome to MTK Bootloader V005 (since 2005) ~~~ **===================================================** Bye bye bootloader, jump to=0x1000a5b0 LOG: RegisterSn: LOG: ZhiPu_sock_buf_init malloc= 217780, 217180, 216940 LOG: ZhiPu_mmi_get_imsi_request LOG: ZhiPu_system_init VERSION= MTK6261M.T16.17.01.10 , build date is 2017/01/10 17:33, curtime 2004-01-01 00:00 LOG: g_zhipu_imei= LOG: ----- 0 ----- ----- -268081676 ----- ----- 2 ----- LOG: ZhiPu_sms_ready_sync LOG: ZhiPu System Language: English LOG: service_availability= 0,ChargerConnected= 1,poweron_mode= 0 LOG: sim invalid, 4 minutes later reboot LOG: ----- 0 ----- ----- 83 ----- ----- 2 ----- LOG: idle_screen_network_name:Same IMEI
USB (MTK)
Контакты DP и DM коннектора USB не подсоединены к линиям D+ и D-, зато V и GND подсоединены. DP и DM вместо этого подведены к MT6261MA, как показано на картинке.
Припаиваем кабель USB к коннекторам.
Теперь устройство будет распознаваться как телефон MediaTek, подключенный по USB.
ID 0e8d:0003 MediaTek Inc. MT6227 phone
Этот метод часто называют «починкой бута MTK», «флешем MTK DM DP» и так далее. Он позволит нам общаться с устройством и сделать дамп ПЗУ и флеш-памяти прошивки.
Продолжение доступно только подписчикам
Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.
Подпишись на «Хакер» по выгодной цене!
Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке
1 год6890 р. Экономия 1400 рублей! |
1 месяц720 р. 25-30 статей в месяц |
Уже подписан?
- Хардкорный взлом самошифрующегося HDD. Реверсим и хакаем внешний накопитель ...
- Просто бизнес. Как Apple защищает данные своих пользователей, препятствуя р ...
- Ручная распаковка. Вскрываем кастомный пакер на примере вымогателя GlobeImp ...
- Кардинг и «чёрные ящики». Разбираемся с главным на сегодня способом взлома ...
- JavaScript для умного дома. Arduino устарел, да здравствует ESP32!
Мы рекомендуем Вам зарегистрироваться и принять участие в жизни нашего интернет-сообщества, либо войти на сайт под своим именем.
Какой операционкой Вы пользуетесь?