Хакване на смарт четка за зъби
Оригиналът е на 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 и по време на миенето забелязах, че тя реагира на слагането на накрайника с мигането на своя светодиод. Едно бързо търсене в интернет ми сподели, че накрайникът взаимодейства с дръжката на четката, с цел да може да подсети на потребителя, че е време да купи нова..
Реших, че ще бъде забавно да изуча по какъв начин работи всичко това.
Реверсивно инженерство на моята умна четка за зъби
В основата на накрайника се вижда антенка и дребна черна кутийка, която евентуално е чип. В управлението може да се откри следната подсказка: „ Радиооборудването в този артикул работи на периодичност 13,56 MHz„. Това доста наподобява на NFC маркер и в действителност, когато държа накрайника до смарт телефона си, се отваря линк към страницата на продукта.
С помощта на приложението NFC Tools можем да разберем доста неща за този маркер:
Вижда се следното:
Това е NTAG213 Използва се NfcA Има отбрана благодарение на парола Има линк към страницата на PhilipsСъщо благодарение на NFC Tools можем да прочетем данните за положението на паметта и достъпа до нея:
Address Data Type Access0x00
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
WRITE24
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 са се справили с тази функционалност, отгатването ѝ може да се окаже съвсем невероятно