Хакер - Вскрываем хардверный имплант. Как устроен девайс для слежки, замаскированный под кабель USB
Содержание статьи
- Возможности 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 имеет столь низкую точность определения координат?
- Он использует BeiDou вместо ГЛОНАСС
- В него уместили только самый примитивный GPS-приемник
- Автор тестировал его в помещении
- Функция определения координат сделана для отвода глаз
Возможности 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
Поскольку устройство отправляет неизвестные данные неизвестной третьей стороне, его нельзя (по крайней мере, с чистой совестью) использовать в пентестах. Как минимум из тех соображений, что устройство уже могло быть в эксплуатации.
Дальше я попытался проанализировать и уничтожить эту «фичу» с отстуком куда-то.
Как можно определить, какие данные и куда отправляет S8 data line locator?
- Распотрошить прошивку, найти адреса серверов и связанные с ними команды
- Поднять фейковую соту и снифить трафик, не давая подключиться к реальным базовым станциям
- Никак, это «черный ящик»
Железо
Чтобы получить доступ к внутренностям устройства, сначала нужно снять металлическую защиту коннектора USB.
Теперь снимаем пластиковую крышку.
Чипы
После вскрытия устройства определяем, что за чипы на нем установлены.
Обнаруживаем:
- MediaTek MT6261MA — низкобюджетный чип, который часто используется в умных часах китайского производства. Никакой официальной документации или информации о чипе компания MediaTek не публиковала;
- RDA 6626e — «мощный, высокоэффективный четырехканальный фронтэнд-модуль… созданный для установки в мобильные устройства с поддержкой сетей GSM850, EGSM900, DCS1800, PCS1900».
Правда ли, что на MT6261MA не найти даташитов?
Коннекторы
Я идентифицировал три разных способа подключиться к устройству.
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» и так далее. Он позволит нам общаться с устройством и сделать дамп ПЗУ и флеш-памяти прошивки.
Где еще используются SoC серии MT626x?
- Только в Nokia 3310 (2017) и часах U Watch
- Это старые SoC на базе ARMv5, который китайцы используют в сотне дешевых гаджетов
- Они выпускались ограниченной серией и только для спецслужб
Дамп прошивки
Чтобы дампить прошивку, я чаще всего использую опенсорсную исследовательскую ОС Fernvale. Изначально она делалась для работы с чипом MT6260, но позже ее адаптировали для MT6261MA.

WWW
Подробнее о Fernvale ты можешь узнать из доклада bunnie и xobs на 31-м CCC, он называется «Fernvale: открытая хардверная платформа на основе (номинально) закрытого чипа mT6260». Есть слайды в PDF и видео.
Скачиваем нужную ветку fernly
Для начала скачиваем подходящую версию Fernvale — это форк, созданный пользователем urjaman (Urja Rannikko) и работающий с MT6261.
$ git clone https://github.com/urjaman/fernly
$ git clone https://github.com/robertfoss/setup_codesourcery.git
$ sudo setup_codesourcery/setup.sh
$ /usr/local/bin/codesourcery-arm-2014.05.sh
$ cd fernly
$ git checkout fernly6261
$ make CROSS_COMPILE=arm-none-eabi-
$ exit
$ cp 95-fernvale-simple.rules /etc/udev/rules.d/.
Дамп ПЗУ
Теперь можем делать дамп ПЗУ. Для этого выполняем:
$ echo "data = [" > rom.py
$ fernly/build/fernly-usb-loader /dev/fernvale fernly/build/dump-rom-usb.bin >> rom.py
$ echo "
]
f = open('rom.bin','wb')
for s in data:
f.write(chr(int(s,16)))
f.close()
" >> rom.py
$ python rom.py
Теперь файл rom.bin будет содержать дамп ПЗУ устройства (по крайней мере, если верить документации в репозитории fernly).
Дамп флеш-памяти
Чтобы сделать дамп флешки, нужно пропатчить flash ROM.
$ git clone https://github.com/flashrom/flashrom
$ cd flashrom/
$ git checkout c8305e1dee66cd69bd8fca38bff2c8bf32924306
$ patch -p0 < ../fernly/flashrom-fernvale.patch
Без приключений патч не встает, так что придется вручную поправить мейкфайл (Makefile.rej). Когда закончишь с этим, можно загружать прошивку в оперативную память, написав:
$ fernly/build/fernly-usb-loader -w /dev/fernvale fernly/build/stage1.bin fernly/build/firmware.bin
Теперь можем использовать программатор fernvale_spi, который мы патчем превратили во flash ROM. Для начала даем ему опознать флеш следующей командой:
$ flashrom/flashrom --programmer fernvale_spi:dev=/dev/fernvale
А теперь читаем флеш:
$ flashrom/flashrom --programmer fernvale_spi:dev=/dev/fernvale -c "MX25L3205(A)" --read flash.dat
Содержимое флеш-памяти устройства окажется в файле flash.dat.
Попытка записать флеш
Запись производится вот такой командой:
$ flashrom/flashrom --programmer fernvale_spi:dev=/dev/fernvale -c "MX25L3205(A)" --write flash.dat
Но флеш защищен от записи, и бит защиты нельзя отключить через flashrom. Других возможных способов отключить защиту я пока не нашел.
На альтернативной версии устройства вывод flashrom выглядит следующим образом:
$ flashrom/flashrom --programmer fernvale_spi:dev=/dev/fernvale
flashrom v0.9.9-86-ge1a960e-dirty on Linux 4.13.2-1.el7.elrepo.x86_64 (x86_64)
flashrom is free software, get the source code at https://flashrom.org
Using clock_gettime for delay loops (clk_id: 1, resolution: 1ns).
Found GigaDevice flash chip "GD25LQ32" (4096 kB, SPI) on fernvale_spi.
No operations were specified.
Анализ
В основном ради самообразования я решил проанализировать дамп фирмвари.
Сниффинг SIM (через SIMtrace)
Первым делом я поснифал действия с SIM-картой. Интересно, что устройство получает доступ ко всем записям телефонной книги и SMS. Если точнее, то оно читает следующие файлы (чего совершенно не нужно для его функционирования):
ADF
- EF(ECC)
- EF(EXT2)
- EF(SMS)
DF(TELECOM) → DF(PHONEBOOK)
- EF(ADN)
- EF(ANRA1)
- EF(SMS)
Другие операции с SIM-картой вопросов не вызвали.
Вряд ли это какая-то мощная схема по сбору телефонных номеров и их отправке в Китай, скорее какой-то стандартный код для работы с SIM, который не сократили с учетом функций устройства. Тем не менее я нахожу небезынтересным то, что устройство дотягивается вообще до всего, что есть на SIM-карте.
Попытка поснифать GPRS (через OpenBTS)
Следующее, что я попробовал сделать, — это поснифать сетевой трафик, чтобы понять, что передается по мобильной связи. Для этого я использовал Ettus B100 с OpenBTS.
К сожалению, S8 data line locator не подключается к GPRS. Когда я попытался отправить команду dw, чтобы запросить координаты, в ответ пришло вот что:
Loc:Please link:http://gpsui.net/smap.php?lac=1000&cellid=10&c=901&n=70&v=7100 Battery:67%
Содержимое flash
Все самое интересное нашлось в дампе флеша.
ОС
Судя по строкам во flash.dat, устройство работает на Nucleus RTOS.
$ strings -a flash.dat
Copyright (c) 1993-2000 ATI - Nucleus PLUS - Version ARM 7/9 1.11.19
Вот другие строки, которые помогают идентифицировать ОС.
$ strings -a flash.dat | grep "\.c"
psss\components\src\bl_Secure_v5.c
psss\components\src\SSS_secure_shared_v5.c
hal\system\bootloader\src\bl_Main.c
hal\system\bootloader\src\bl_Main.c
hal\system\bootloader\src\bl_FTL.c
hal\system\bootloader\src\bl_FTL.c
hal\system\bootloader\src\bl_FTL.c
hal\storage\flash\mtd\src\flash_disk.c
hal\system\bootloader\src\bl_Main.c
hal\peripheral\src\dcl_pmu6261.c
hal\system\cache\src\cache.c
hal\peripheral\src\dcl_rtc.c
hal\peripheral\src\dcl_pmu6261.c
hal\system\bootloader\src\bl_FTL.c
hal\system\bootloader\src\bl_FTL.c
hal\peripheral\src\rtc.c
hal\peripheral\src\rtc.c
hal\peripheral\src\rtc.c
hal\peripheral\src\rtc.c
hal\peripheral\src\rtc.c
hal\peripheral\src\rtc.c
hal\storage\flash\mtd\src\flash_mtd_sf_dal.c
hal\peripheral\src\dcl_pmu_common.c
hal\peripheral\src\dcl_f32k_clk.c
hal\peripheral\src\dcl_f32k_clk.c
hal\peripheral\src\dcl_gpio.c
hal\peripheral\src\dcl_pmu_common.c
hal\system\cache\src\cache.c
hal\peripheral\src\dcl_f32k_clk.c
hal\peripheral\src\dcl_gpio.c
hal\peripheral\src\gpio.c
hal\system\bootloader\src\bl_FTL.c
hal\peripheral\src\rtc.c
hal\peripheral\src\bmt_hw.c
hal\peripheral\src\dcl_pmu6261.c
hal\storage\flash\mtd\src\flash_mtd.c
hal\peripheral\src\gpio.c
custom\common\hal\combo_flash_nor.c
hal\peripheral\src\dcl_rtc.c
hal\peripheral\src\dcl_rtc.c
hal\storage\flash\mtd\src\flash_disk.c
custom\common\hal\combo_flash_nor.c
hal\storage\flash\mtd\src\flash_mtd_sf_dal.c
hal\system\emi\src\emi.c
sss\components\src\SSS_secure_shared_common.c
alice.c
ddload.c
plutommi\Framework\GDI\gdisrc\gdi.c
C.cKi
hal\audio\src\v1\audio_service.c
ddload.c
ddload.c
plutommi\Framework\GDI\gdisrc\gdi_image_hwjpg_v2.c
plutommi\Framework\GDI\gdisrc\gdi_image_hwjpg_v2.c
plutommi\Framework\GDI\gdisrc\gdi_util.c
plutommi\Framework\GDI\gdisrc\gdi_util.c
hal\audio\src\v1\audio_service.c
ddload.c
Файловые системы FAT12
Апдейт: когда я писал этот текст, я пропустил слой трансляции флеш-памяти, поэтому файловая система FAT12 оказалась битой. Спасибо @viperbjk за то, что указал на это. Я попытаюсь все же восстановить флеш и дополнить текст, когда получится. А пока что вот отчет о моей первоначальной попытке выцепить файловую систему.
Два раздела не похожи на валидные системы FAT12.
$ fls -o 5646 flash.dat -f fat12
Invalid magic value (Not a FATFS file system (magic))
$ fls -o 5826 flash.dat -f fat12
v/v 6531: $MBR
v/v 6532: $FAT1
v/v 6533: $FAT2
d/d 6534: $OrphanFiles
$ fls -o 5853 flash.dat -f fat12
Invalid magic value (Not a FATFS file system (magic))
В середине блок FAT12 тоже, кажется, поврежден, сплошные файлы-сироты.
$ fls -o 5826 flash.dat -rp -f fat12
v/v 6531: $MBR
v/v 6532: $FAT1
v/v 6533: $FAT2
d/d 6534: $OrphanFiles
-/r * 469: $OrphanFiles/MP0B_001
-/r * 470: $OrphanFiles/ST33A004
-/r * 471: $OrphanFiles/ST33B004
[...]
Я попробовал извлечь файлы:
fls -o 5826 flash.dat -Frp -f fat12 | while read line; do
path=$(echo "$line" | awk -F':' '{print $2}')
mkdir -p $(dirname $path);
icat -o 5826 flash.dat $(echo "$line" | grep -oE "[0-9]+" | head -n1) > $path
done
Но большинство оказались пустыми. Причем результаты очень неконсистентные: если сменить SIM-карту, то в файлах, которые показывает The Sleuthkit, находится масса различий. Получается, что это либо не FAT12, либо какой-то его сильно модифицированный вариант.
Замечу еще раз, что я пропустил слой трансляции флеш-памяти (FTL). Существуют проприетарные утилиты, которые могут с ним справиться.
Я же хочу придерживаться только опенсорсных утилит, поэтому дальнейшее исследование было сделано при помощи hexdump.
Данные конфигурации
На флеше, помимо прочего, обнаружились настройки. Это в первую очередь IMSI находящейся внутри симки и номер, который использовался для удаленного управления.
В сегменте выше ты можешь видеть ссылки на gpsui.net. Предположительно это удаленный сервер, который используется, чтобы превращать коды MCC, MNC, LAI и CID в названия улицы, города и страны, а также для получения ссылки на gpsui.net, которая перенаправляет на Google Maps. Но поскольку записать флеш у меня не вышло, эта гипотеза так и осталась непроверенной.
Скрытые команды
В какой-то момент мне все же удалось найти кое-что, что оправдало потраченные усилия. Поискав в файле flash.dat строки dw, 1111 и 0000, я обнаружил скрытые команды.
Однако большинство этих команд не работают как положено. Видимо, эта прошивка используется в нескольких похожих устройствах, на это указывают команды, связанные со светодиодами и карточкой TF, — ни того, ни другого у девайса нет. Но у других устройств, продающихся в интернете, — есть.
Вот неполный список найденных мной команд и их ответов.
- help: отвечает следующим списком команд:
- dw: Локатор
- qqq: Привязка устройства
- 1111: Включить звук сигнализации
- 0000: Выключить звук сигнализации
- ddd: Сбросить все треки
- aqb: Получить имя пользователя и пароль
- eee: Запись сохранена
- dde: Очистить карту TF
- hhh: Статус устройства
- loc: то же, что и dw
- imsi: Запрос IMEI и IMSI
- faa: «DTMG: успешно включено отслеживание голоса, ответ по SMS и чувствительность:40», «DMTG: детектирован необычный звук»
- fff: «DT: успешно включено реагирование на голос и обратный звонок, чувствительность:40»
- 1111: «DT: Успешно включено реагирование на голос и обратный звонок, чувствительность:400»
- 0000: «DT: Отслеживание голоса успешно отменено»
- gbrpt: «Report:Location the continuous escalation has been closed» (вероятно, «продолжительное отслеживание локации остановлено» на китайском английском. — Прим. пер.)
- track: «Track: Режим ответа на звонки переведен на сообщение локации»
- hbton: «Hbt: Устройство переведено на постоянное подключение»
- hbtoff: «Hbt: Постоянное подключение устройства закрыто»
- esionow: “…” ?
- esioaddr: «Ошибка сохранения адреса esio и порта!»
- esiolocatetype: «Esio:Тип отчета о локации обновлен и выставлен в 0»
- server: «Ошибка настройки адреса сервера и порта!»
- reg: “…” ?
- monitor: «Monitor: Режим ответа на звонки настроен на автоматический ответ»
- eee: «Ошибка при проверке карты TF, либо недостаточно свободного места!»
- sndstop: «Cam:Нет запущенных задач, ошибка отмены!»
- e81: “…” ?
- e80: “…” ?
- soson, sosoff, sos, qcsos: ?
- ledon, ledoff: ?
- flighton, flightoff: ?
- aqe: «Ошибка сохранения apn!»
- imeiset: “…” кажется, не устанавливает IMEI
- restore: «Восстановление прошло успешно!»
- formattf: ?
- time: “…” ?
- timezone: «Успешно изменена временная зона. Текущая зона 0»
- age: “…” ?
- 3646655: запрашивает информацию о версии
- reboot: перезагружает устройство
Интересно, что ответных строк нет во флеше в плейнтексте. Это значит, что данные сжаты.
Дальше привожу свой лог, где я пробую найденные скрытые команды, которые я привел в списке выше в том же порядке.
![]() |
![]() |
Похоже, с помощью esioaddr мы можем менять адрес, используемый при запросе дополнительной информации о геолокации. Однако когда я попробовал задать это значение, никакого соединения с указанным IP не последовало. Девайс просто ответит the addr invalid в отчете о местоположении.
Команда server назначает другой сервер. Его смена не приводит к ответу the addr invalid, как видно из моего лога.
Операторские логи звонков и детализация по счету
Поскольку затея со сниффингом GPRS провалилась, мне осталось только изучать детализацию, которую предоставляет мой оператор, чтобы получше понять привычки S8 data line locator.
Очевидно, что за ответы по SMS снимаются деньги. Но гораздо интереснее паттерны доступа к интернету.
Команды dw и loc, а также доступ при простое
Во время запросов, связанных с местоположением, устройство использует сервис «MMS/интернет». На скриншоте ниже приведен сегмент, в котором сначала несколько раз делаются запросы, а затем устройство остается в состоянии покоя.
Но даже во время простоя девайс иногда использует сервис «MMS/интернет».
Даже несмотря на то, что я отключил все функции трекинга, которые я мог случайно активировать во время тестирования, я не могу на 100% поручиться, что это не что-то активированное мной, быть может, при изучении сайта gpsui.net. Тем не менее независимо от того, я активировал эту «фичу» или нет, хотелось бы знать, что за данные передаются и как это пресечь.
gpsui.net
Если покопаться на gpsui.net поглубже, то можно, наверное, написать еще одну статью. Это огромный наблюдательный центр: просто поменяй xxxx в адресе http://gpsui.net/u/xxxx на какие-нибудь буквы и цифры, и увидишь местоположение случайных людей.
Также на сайте встречается упоминание ZhiPu. Похоже, это компания, которая делает эти трекеры.
Получить данные учетной записи можно, отправив текстовое сообщение aqb на S8 data line monitor. Имя пользователя и пароль — это шестизначные цифры. Они, кстати, помещаются во флеш-память прямо перед IMSI.
Веб-интерфейс позволяет получить доступ к нескольким фичам. Я не могу гарантировать, что они будут работать, — мне они неинтересны, и я их не тестировал.
Интерфейс
Вот как выглядит чистый интерфейс сразу после логина.
Я лишь передвинул карту на океан, чтобы скрыть свое местоположение. Оно отмечается на карте небольшим изображением машины и поп-апом с координатами GPS и датой последнего апдейта.
Настройки
Можно менять некоторые настройки.
Оповещения
Можно настроить оповещения.
Риалтаймовое отслеживание местоположения
Можно включить непрерывный трекинг.
История
Интересно, что веб-интерфейс позволяет проиграть все запросы местоположения.
Я нахожу это в особенности неприятным, потому что в руководстве к S8 data line locator не упомянуто ни создание учетной записи, ни способ заполучить ее. И конечно, я не ожидал, что история запросов будет где-то храниться.
Фенсинг
Можно назначить геофенсинг — оповещение о пересечении определенных координат.
Пуш-команды
Сервис позволяет отправлять команды устройству.
Это означает, что любой, кто имеет доступ к учетной записи на gpsui.net, может управлять твоим устройством. Ни упаковка, ни руководство которого вообще не сообщали о существовании этого сайта.
Управление устройствами
Ты можешь собрать парк своих устройств в один аккаунт для более удобного управления.
Уязвимости
После публикации этой статьи @evstykas нашел несколько уязвимостей типа «небезопасные прямые ссылки на объекты с байпасом авторизации» (Insecure Direct Object References with Authorization bypass), которые ведут к горизонтальной эскалации привилегий: пользователь может просматривать и менять информацию всех 615 817 других пользователей gpsui.net.
Так что мои изначальные подозрения насчет gpsui.net оказались верными: отправлять сюда свои данные — плохая идея.
Затем мы изучили несколько других веб-сервисов для отслеживания геолокации. То, что нам удалось найти, вызывает некоторые опасения, об этом ты можешь прочитать здесь: 0x0.li/trackmageddon/.
Я же хочу подчеркнуть, что обычный пользователь (насколько мне известно) никак не информируется о создании учетной записи на сайте.
Точно так же его не информируют и о том, что его запросы логируются и хранятся. Или о том, что его устройством можно управлять с этого сайта.
Как искать жучки
Во время передачи данных S8 data line locator можно определить при помощи недорогого китайского радиолокатора CC308+.
Девайс, похоже, плохо экранирован, и запрос локации командой dw вызовет заметный электромагнитный шум. Да и в целом устройство генерирует много радиопомех.
Предстоящая работа
Несмотря на то что мне (пока что) не удалось достигнуть своей основной цели — отключить функцию «отстука» на базу, это был занятный опыт. Я надеюсь, ты найдешь его полезным или как минимум поучительным.
Проблемы
Мне пока что не удалось создать собственную прошивку при помощи flashrom, поскольку я (пока что) не могу снять защиту от записи. Возможно, другим подходом к прошиванию может стать утилита SPFlash и/или Flash. Хоть это и не опенсорсные решения. Если тебе удалось прошить S8 data line locator, обязательно напиши мне об этом со всеми подробностями!
Далее я попытался выловить данные, передаваемые по GPRS, но мне это не удалось. Устройство просто не использовало GPRS, когда я подключил его к своей сети. Я не знаю, как сконфигурирован APN. Отслеживание сим-карты не дает информации о доступе к EF(ACL). Тем не менее конфигурацию APN удалось найти во флеш-памяти устройства — это говорит о том, что оно получило ее из сервисной SMS, присланной оператором.
Идеи
Плату можно обточить, так как коннектор USB тебе не пригодится. S8 data line locator превратится в «модульного» жучка, который можно установить куда угодно, где есть источник тока с характеристиками 5 В и 1 А.
Приложение: факап
Куда же без описания факапа! Во время использования S8 data line locator совместно с OpenBTS я навводил воображаемых номеров. После смены сим-карты я забыл выключить обратный вызов, активируемый голосом.
В общем, какой-то чувак с номером 3333333 слушал меня две минуты.
Оказалось, что это какой-то «сервисный» номер, так что звонок вышел недешевым. Но важнее то, что я ничего не заметил, пока не посмотрел логи.
Так что мое заключение о шпионских хардверных имплантах: они незаметны и до фига опасны!
Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei

