Оригиналът е на Cyrill Künzi Даниел Десподов преди 42 секунди

...
Оригиналът е на Cyrill Künzi Даниел Десподов преди 42 секунди
Коментари Харесай

Хакване на смарт четка за зъби

Оригиналът е на Cyrill Künzi

Даниел Десподов преди 42 секунди 2 Сподели

Най-четени

IT НовиниКалин Карабойчев - 13:13 | 03.06.2023

„ Се таа брат “ е повода съдът да спре достъпа до Zamunda и Pirate Bay

IT НовиниСветлин Желев - 20:18 | 01.06.2023

Ще блокират торент уеб страницата Zamunda след решение на съда

ТелефониЕмил Василев - 16:47 | 01.06.2023

Ето кои смарт телефони Xiaomi и POCO няма да получават повече актуализации считано от през днешния ден

Даниел Десподовhttps://www.kaldata.com/Новинар. Увличам се от модерни технологии, осведомителна сигурност, спорт, просвета и изкуствен интелект.

Само си помислете: все по-често използваме умни хладилници, коли, контакти и крушки, умни часовници и високоговорители. Заобиколени сме от умни неща и умни хора. Но какъв брой умни са те и дали тази „ просветеност “ е в действителност нужна? Също по този начин, какъв брой елементарно е да се хакнат тези неща? Един смарт часовник, да вземем за пример, не е труден  за хакване. Нека разгледаме различен образец: смарт четка за зъби.

Преди време си купих смарт четката за зъби Philips Sonicare и по време на миенето забелязах, че тя реагира на слагането на накрайника с мигането на своя светодиод. Едно бързо търсене в интернет ми сподели, че накрайникът взаимодейства с дръжката на четката, с цел да може да подсети на потребителя, че е време да купи нова..

Описанието на четката в уеб страницата на Philips. Тя в действителност наподобява доста смарт

Реших, че ще бъде забавно да изуча по какъв начин работи всичко това.

Реверсивно инженерство на моята умна четка за зъби

В основата на накрайника се вижда антенка и дребна черна кутийка, която евентуално е чип. В управлението може да се откри следната подсказка: „ Радиооборудването в този артикул работи на периодичност 13,56 MHz„. Това доста наподобява на NFC маркер и в действителност, когато държа накрайника до смарт телефона си, се отваря линк към страницата на продукта.

С помощта на приложението NFC Tools можем да разберем доста неща за този маркер:

Вижда се следното:

Това е NTAG213 Използва се NfcA Има отбрана благодарение на парола Има линк към страницата на Philips

Също благодарение на NFC Tools можем да прочетем данните за положението на паметта и достъпа до нея:

Address Data Type Access

0x00

04:EC:FC:9C

UID0-UID2/BCC0

Read-Only

0x01

A2:94:10:90

UID3-UDI6

Read-Only

0x02

B6:48:FF:FF

BCC1/INT./LOCK0-LOCK1

Read-Only

0x03

E1:10:12:00

OTP0-OTP3

Read-Only

0x04

03:20:D1:01

DATA

Read-Only

0x05

1C:55:02:70

DATA

Read-Only

0x06

68:69:6C:69

DATA

Read-Only

0x07

70:73:2E:63

DATA

Read-Only

0x08

6F:6D:2F:6E

DATA

Read-Only

0x09

66:63:62:72

DATA

Read-Only

0x0A

75:73:68:68

DATA

Read-Only

0x0B

65:61:64:74

DATA

Read-Only

0x0C

61:70:FE:00

DATA

Read-Only

0x0D…

00:00:00:00

DATA

Read-Only

0x1F

00:01:07:00

DATA

Readable, write protected by PW

0x20

00:00:00:02

DATA

Read-Only

0x21

60:54:32:32

DATA

Read-Only

0x22

31:32:31:34

DATA

Read-Only

0x23

20:31:32:4B

DATA

Read-Only

0x24

B3:02:02:00

DATA

Readable,write protected by PW

0x25

00:00:00:00

DATA

Readable,write protected by PW

0x26

00:00:00:00

DATA

Readable,write protected by PW

0x27

00:00:00:01

DATA

Readable,write protected by PW

0x28

00:03:30:BD

LOCK2 – LOCK4

Readable,write protected by PW

0x29

04:00:00:10

CFG 0

Read-Only

0x2A

43:00:00:00

CFG 1

Read-Only

0x2B

00:00:00:00

PWD0-PWD3

Write-Only

0x2C

00:00:00:00

PACK0-PACK1

Write-Only

Повторих този развой за един черен и два бели накрайника модел W DiamondClean и разбрах следното:

0x00-0x02 – съдържа неповторим идентификатор и контролна сума 0x04-0x0C – там се намира линка към магазина на Philips 0x22 – на това отместване са записани байтовете 31:32:31:34 за черните и 31:31:31:31 за белите накрайници 0x24 – тук е записано общото време на миенето Всички останали данни, които могат да бъдат прочетени са напълно идентични за всички накрайници

Декриптиране на записаното време

Нека да създадем един опит и да разберем какви промени стават с NFC маркера при потреблението на тази смарт четка за зъби:

Прочитане на NFC маркера при слагането на нов накрайник, който още не е употребен, данните на addr. 0×24 са надлежно 00:00:02:00 Ако просто сложим накрайника без да мием зъбите, нищо не се трансформира Миене Дадох на четката да работи в продължение на 5 секунди Отново прочетох данните от накрайника Данните на отместване 0×24 са се трансформирали и в този момент там има 05:00:02:00 По всичко проличава, че на addr. 0x24 се записва багра секунди, в продължение на които е употребен накрайникът на тази четка

Когато това употребява не премине 255 секунди, таймерът стартира да употребява втория байт  (02:01:02:00 -> 258s). Опитът да презапиша това записано време за жалост бе несполучлив, тъй като този адрес на паметта е предпазен с ключова дума. Даа.

Получаване на паролата

Опа, оказа се, че нужната ключова дума се подава с елементарен отворен и некриптиран текст! Тоест всичкото, което би трябвало на направя е да прихвана обмена на данните сред четката за зъби и накрайника. След като си поиграх с моя профилиран правоприемник със софтуерна конфигурация HackRF, посредством метода на пробите и грешките сформирах нужния работещ логаритъм.

Запис на радиосигнала

Стартираме програмата gqrx и избираме периодичност 17,736 MHz. Сега, когато сервирам четката за зъби покрай антената се вижда, че тя на няколко пъти в секундата се пробва да реализира връзка с накрайника.

По време на миенето на зъбите NFC четецът прави къса пауза и идващият пакет от байтове обновява брояча на времето.

Преобразуване на записаното

Преди този занемарен I/O файл да бъде декодиран, той би трябвало да бъде конвертиран в малко по-различен формат, с цел да може декодерът да го прочете. Използвах периодичност на дискретизация 2 MHz. (Всичкият нужен програмен продукт и употребяваните скриптове са качени в уеб страницата на създателя (kuenzi.dev).

Декриптиране на записаното

Намерих съвършения инструмент за тази задача, наименуван NFC-laboratory. След като отворите новосъздадения WAV файл, той би трябвало да наподобява като на изображението нагоре. В този случай записът ви разрешава да видите единствено връзката, която минава от хоста към маркера (зелената стрелка). Но за подбора на пароли това е идеално. Ако разгледате спецификацията на NTAG213, можете да разберете какво се случва:

Редове #0-#6: прави се връзка към неповторимия идентификатор на тага (маркера) Ред  #7″ четката за зъби изпраща паролата (командата 0x1B = PWD_AUTH) Ред  #9: броя на времето, в който новата информация се записва благодарение на командата 0xA2 = WRITE

И по този начин паролата на моята смарт четка за зъби се оказа 67:B3:8B:98. В изображението тя се вижда доста ясно.

С тази ключова дума мога да употребявам накрайника колкото си желая дълго. Разбира се, не имам намерение да върша сходно нещо. Просто съвсем същият метод се употребява в някои принтери, тонер касети и какво ли още не.

Запис на лични данни в четката за зъби

С сполучливо получената ключова дума можем са запишем в брояча на четката за зъби каквото си желаяме значение, като изпратим съответните байтове посредством NFC. Отново  NFC Tools ни идва на помощ:

От менюто преминете към Other -> Advanced NFC commands Изберете входно/изходния клас (I/O Class) на NfcA Подайте следната поредност от байтове: 1B:67:B3:8B:98,A2:24:00:00:02:00 Наслаждавайте се на „ новия “ накрайник на четката (нали разбирате, че става дума единствено за брояча на времето?)

Ето по какъв начин наподобява последователността от команди на по-горната стъпка:

Команда Действие

1B

PWD_AUTH

67:B3:8B:98

The password

,

Package delimiter

A2

WRITE

24

To address 0x24

00:00:02:00

Timer set to 0s

И по този начин, смарт четката е сполучливо хакната и в този момент можем да си играем с таймера както си желаяме.

Ето някои забавни наблюдения:

Само първите два байта на адрес 0x24 се употребяват за отчитане на времето. След като броячът доближи FF:FF:02:00, той стопира да се усилва (18 часа непрестанно миене на зъби) Когато запаметеното време надвиши 0x5460, четката за зъби мига със светодиода, с цел да ви уведоми да промените главата. Това подхожда на 21 600 s -> 180 x 2 min -> 3 месеца миене на зъбите два пъти на ден, което е тъкмо в сходство с рекомендацията на Philips за промяна на главите на четките на всеки 3 месеца

Заключение

Ако се вгледате деликатно в наличието на 0x2A – 43:00:00:00 и страница 18 от техническото изложение, можете да видите, че маркерът е конфигуриран по този начин, че да забрани трайно достъпа до запис след три неправилни опита за въвеждане на паролата (което и направих по време на опитите си).

Това значи, че даже дръжката на четката за зъби няма да може да запише данни върху този накрайник.

Генериране на паролата

За страдание паролата на всяка глава на тази четка е неповторима и процесът на извличането ѝ благодарение на SDR е комплициран и изисква особено съоръжение. В долната част на страница 30 в осведомителния лист NXP предлага паролата да се генерира от 7-байтовия UID. По-долу са показани всички двойки UID – ключова дума, които получих от моите три четки:

UID Парола

04:79:CF:7A:89:10:90

FF:34:CE:4C

04:EC:FC:A2:94:10:90

61:F0:A5:0F

04:D7:29:0A:94:10:90

67:B3:8B:98

Всичките ми опити да отгатна каква е еднопосочната функционалност за генериране на паролите бяха несполучливи. В взаимозависимост от това какъв брой деликатно инженерите на Philips са се справили с тази функционалност, отгатването ѝ може да се окаже съвсем невероятно

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР