Крошечные жучки с SIM-картой внутри, способные передавать голос и отслеживать местоположение, можно встроить в любую электронику, в том числе — в обычный провод. В образовательных целях мы распотрошим такое устройство, изучим его прошивку, найдем скрытые команды и обнаружим, как он молча шлет данные на китайский сервис. Который еще и оказался уязвимым! Но обо всем по порядку.
Это перевод статьи 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-карты и настройки.
У устройства есть несколько возможностей для подслушивания и шпионажа. Только взгляни на лог переписки с устройством по 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 и использованием интернета он не указывает, но я беру на себя смелость предположить, что запрос был сделан во время определения местоположения. Именно это и стало отправной точкой для моего анализа.
Поскольку устройство отправляет неизвестные данные неизвестной третьей стороне, его нельзя (по крайней мере, с чистой совестью) использовать в пентестах. Как минимум из тех соображений, что устройство уже могло быть в эксплуатации.
Дальше я попытался проанализировать и уничтожить эту «фичу» с отстуком куда-то.
Чтобы получить доступ к внутренностям устройства, сначала нужно снять металлическую защиту коннектора USB.
Теперь снимаем пластиковую крышку.
После вскрытия устройства, определяем, что за чипы на нем установлены.
Обнаруживаем:
Я идентифицировал три разных способа подключиться к устройству.
Коннекторы USB A и Micro-B не подсоединены к MT6261MA. Они просто передают сигнал от одного к другому.
Следующее соединение — это 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
Контакты 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 статей в месяц |
Уже подписан?
Читайте также
Последние новости