Безпека дітей або троянський кінь на руці

Майже усі дитячі китайські трекери йдуть із дефолтним паролем 123456 або 523681. Знаючи номер телефону трекeра звичайною SMS можна переконфігурувати пристрій і не тільки.

При купівлі всі встановлюють SeTracker, створюють акаунт і віддають дитині. Це пряма кіберзагроза для дітей і батьків, тому знайдіть час на зміну конфігурації.

Розглянемо сценарії, які спадають на думку:

  • подзвонити або відправити SMS на платний номер, кошти із рахунку будуть списано, особливо якщо це контрактний номер, або сім пара (тому в такі пристрої тільки пріпейд карта із малою кілкьістю коштів);
  • отримати місце положення пристрою;
  • переналаштувати на свій сервер, причому сервер може проксувати дані на SeTracker і зловмисник може писати місцеположення і при потребі запускати певні сценарії;
  • Віддправити тревожне повідомлення, вимкнути пристрій і обробляти батьків (зараз є сценарії, коли дзвонять батькам і вимагають кошти, наприклад дитина в міліції і тд);
  • Прослухати обстановку навколо;
  • Лякати дитину.

Експлуатувати пристрій навіть можна із сервісів web sms. Потрібно тільки знати номер картки встановленої у трекер.

Переглянути конфігурацію пристрою

pw,123456,ts#

Якщо пароль правильний, або відправлено із номера center прийде відповідь. На фото стандартне налаштування.

ver:G610S_PL_V1.0_2017.10.16_10.05.39;
ID:1200055555;
imei:357412000555553;
ip_url:52.28.132.157;
port:8001;
center:;
slave:;
sos1:0670000011;
sos2:0670000022;
sos3:0670000033;
profile:1;
upload:600S;
bat level:66;
language:0;
zone:3.00;
GPS:NO(0);
GPRS:OK(87);

Конфігурацію з’єднання із сервером

pw,123456,tt#
У відповіді параметер ID, ZCM, ip і порт сервера:
ID:1200055555;
ZCM:012008297393478;
ip_url:52.28.132.157;
port:8001;
Отримання поточних коодинат
pw,123456,url#
У відповідь прийде смс із координатами і часом фіксування точки.
url:
http://maps.google.com/maps?q=N49.800001,E23.980001
Locate date:2019-7-6
Locate time:14:21:16

Щоб убезпечити пристрій потрібно:

Вказати номер адміністратора пристрою

pw,12346,center,+380670000011#
Підтвердження команди:
center:
+380670000011.ok!
Змінити пароль адміністрування
555555 ваш новий пароль, у відповідь смс не приходить. Тримайте у таємниці його.
pw,123456,pw,555555#
Після цього можна рахувати, що трекер умовно захищений.

Інші команди і можливості спілкування

Скинути до заводських
pw,123456,factory#
Перезавантажити пристрій
pw,123456,reset#
Вимкнути годинник
pw,123456,poweroff#
Встановити дату / час
pw,123456,time,hh.mm.ss,date,yyyy.mm.dd#
Отримувати автоматично час через NTP сервер
pw,123456,timecali#
Вибрати мову (1 – англійська) і часовий пояс (3 – GMT+3)
pw,123456,lz,1,3#
Призначити номер SOS
доступні параметри: sos1,sos2,sos3
pw,123456,sos1,+38067111111#
Або за один раз:
pw,123456,sos,+38067111111,+380672222222,+380673333333#
Встановити APN якщо немає автокорекції
pw,123456,apn,www.ab.kyivstar.net#
Встановити IMEI
pw,123456,imei,xxxxxxxxxxxxxxx#
Оновити firmware
pw,123456,upgrade,http://uaid.net.ua/share/jt_ads.bin#
Встановити номер на кнопки додзвону
якщо є кнопки, параметри tel1, tel2
pw,123456,tel1,+380678888888#
Встановити час передачі даних у секундах
pw,123456,upload,300#
Приховано прослухати обстановку
На вказаний номер трекер зробить дзвінок і не відображатиметься на екрані.
pw,123456,monitor,+380679999999#
Здійснити вихідний дзвінок
pw,123456,call,+481234567#
Відправити смс на вказаний номер
pw,123456,sms,+380670000000,Привіт#
Відключити режим дружити
pw,123456,makefriend,0#
Включити смс відповіді
pw,123456,smsonoff,1#
Включити відправку звукових повідомлень
pw,123456,tkonoff,1#
Включити блютуз
pw,123456,bt,1#
Включити wifi
pw,123456,wifi,1#
Включити датчик зняття з руки
pw,123456,removesms,1#
Виставити сердечка:
pw,123456,flower,7#
Включити крокомір
pw,123456,pedo,1#
Знайти годинник
pw,123456,find#
Версія прошивки
pw,123456,verno#
Пробудити модуль
pw,123456,cr#
Включити відправку смс при натисканні на sos кнопку
pw,123456,sossms,1#
Передати текст на трекер
Де MESAGE в hex і кодуванні UTF-16
pw,123456,message,MESAGE#
Відображати телефонну книжку
pw,123456,phbonoff,1#
Вказати номери записної книжки
Списки phb і phb2. Імена у hex і кодуванні UTF-16
pw,123456,phb,номер_1,імя_1,номер_2,імя_2,номер_3,імя_3,номер_4,імя_4,номер_5,імя_5#
Вказати номери білого списку
Списки whitelist1 і whitelist2.
pw,123456,whitelist1,номер_1,номер_2,номер_3,номер_4,номер_5#
Також, якщо подзвонити із прихованого номеру на годинник, дзвінок пройде white список.
Встановити жирний шрифт
pw,123456,bigtime,1#
Включити потрібний режим
1 – звук і вібро; 2 – звук; 3 – вібро; 4 – тихий режим;
pw,123456,profile,1#
Активувати автоматичне підняття дзвінка з білого списку
для деактивацій відправляємо 0 в параметрі.
pw,123456,gsmant,1#
відповідь
[gsmant,1#] ok!
Зміна сервера
Оскільки усі дані і керування пристроєм передається інфраструктурі Китаю, то варто змінити на інший сервер, можна свій.
pw,123456,ip,111.22.33.44,8080#
відповідь
[surl,111.22.33.44,port,8080#] ok!

Піднімаємо свій сервер

Після зміни конфігурації сервера, трекер починає підключатися до сервера. Відкриваємо порт, наприклад nc -lv 8080 і чекаємо вхідних даних. І тут до наш трекер стукає. Жодного шифрування, чи підписування даних. В 21 столітті слати нешифровані дані негарно.

[3G*1200055555*0009*LK,0,0,45]

Починаємо гуглити, і знаходимо прокол Mictrack Communication Protocol.

Розшифруємо: 3G – назва виробника, 1200055555 – ідентифікатор пристрою (10 цифр, які є у IMEI годинника), 0009 – довжина наступних даних у HEX форматі, 0 – кількість кроків, 0 – активність, 45 – заряд батареї.

Також присилаються дата, час, координати, швидкість, напрям, висота, кількість сателітів, сигнал GSM, заряд АКБ, кроки, активність, статус, кількість базових станцій (беремо при парсенні), лінк до станції, MCC, MNC, код зони GSM, код сектору, рівень сигналу, 2 вишка, 3 сота, 4 сота, 5сота, 6 сота, 7сотакількість wifi точок навколо, mac, назви точок навколо і їх рівень, невідоме значення.

[3G*1200055555*0174*UD2,060719,182953,V,49.800001,N,23.980001,E,0.00,0.0,0.0,0,30,40,0,0,00000018,7,2,255,3,10195,38222,123,10195,222,144,10195,221,132,10195,223,130,10194,133,130,10196,332,126,10195,8222,124,5,IoT_D4921C,24:7:d3:d4:92:1c,-64,СпецЗв'язок,89:3:c1:43:19:d3,-65,Vasi,39:ad:ed:32:d7:67,-85,Tenda_178D11,4:95:e6:17:8d:11,-88,UKrtelecom_161F77,18:d6:c7:16:1F:77,-89,61.8]

Далі піднімаємо свій сервер (я підняв на NodeJS), логуємо усі дані у базу даних (MySQL), парсимо, і керуємо трекером-годинником через Telegram бот (отримати позицію, останню і поточну, передати повідомлення на годинник, відправити і отримати аудіо чатом (кодування звуку AMR) ).

Специфічні функції можна відловити зробивши проксі сервер і відправляти дані на офіційний сервер.

При підключенні годинника до комп’ютера, появляється диск розміром 6,82 Мб, із наступною ієрархією:

audior - директорія, збереження аудіофайлів
├ Photos - директорія, збереження фотографій
├ Updata - директорія із прошивкою годинника
│ └ jt_ads.bin - прошивка годинника
└ mtkepo.bin - бінарник

Прошивки Q360 (G610, G51, GW600):

G610S_PL_V1.0_2017.10.16_10.05.39
G610S_PL_V1.0_2018.05.14_18.27.39

При натисканні швидко 8 разів кнопки живлення, появляється сервісне меню статусів:

UPD: Якщо закинути інший файл, то велика ймовірність що годинник зависне на заставці. Тут процесор MTK6261. Ставимо драйвер MS_USB_ComPort_Driver_exe_v1.1032.1, затискаємо кнопку SOS при виключеному годиннику і підключаємо до комп’ютера. Має появитися COM порт. FlashTool_v5.1516.00 можна вичитати флеш. Пам’ять відобразило GD25LQ128 (0x01000000). backup.cfg:

general:
config_version : alpha
platform: MT6260
boot_region:
alignment: block
rom:
- file: BOOTLOADER
- file: EXT_BOOTLOADER
control_block_region:
rom:
main_region:
alignment: block
rom:
- file: ROM
- file: VIVA

Нутрощі, виявляється є GPS – мікро антена. Акумулятор 400 мАг. Плата маркування G610S.

Процесор MT5931A, пам’ять 25LQ128CWIG.

Висновок: враховуючи дешевизну пристроїв, простоту користування навколо нас появилися тисячі пристроїв, які може експлуатувати зловмисники, і сюжети з Чорного Дзеркала можуть стати реальністю…

При написанні свого сервера на NodeJS і прийому даних з трекера виникли такі кейси:

Із трекера може прийти одна команда, тут все просто робимо парсинг regex.

[3G*1208544453*000A*LK,0,0,100]

Но в пакеті може прийти декілька команд. Ділимо на 2.

[3G*1208544453*0002*TS][3G*1208544453*0004*TKQ2][3G*1208544453*0003*TKQ][3G*1208544453*0004*TKQ2]

А може прийти неповний пакет, також помічено що вихідний буфер годинника 1024 байти. Парсимо перший пакет, залишок кладемо в локальний кеш і далі парсимо.

[3G*1208544453*0002*TS][3G*1208544453*000
3*TKQ][3G*1208544453*0004*TKQ2]
Використання фотографій або текстового контенту на інших ресурсах без клікабельного індексованого посилання заборонено.