Содержание статьи
- Возможности S8 data line locator
- Подслушивание
- Обратный звонок
- Запрос геопозиции
- Железо
- Чипы
- Коннекторы
- USB (MTK)
- Дамп прошивки
- Скачиваем нужную ветку fernly
- Дамп ПЗУ
- Дамп флеш-памяти
- Попытка записать флеш
- Анализ
- Сниффинг SIM (через SIMtrace)
- Попытка поснифать GPRS (через OpenBTS)
- Содержимое flash
- Операторские логи звонков и детализация по счету
- gpsui.net
- Как искать жучки
- Предстоящая работа
- Проблемы
- Идеи
- Приложение: факап
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. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»