Взламываем «умную» зубную щётку

[ Версия для печати ]
Добавить в Telegram Добавить в Twitter Добавить в Вконтакте Добавить в Одноклассники
Страницы: (8) [1] 2 3 ... Последняя »  К последнему непрочитанному [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]
VampirBFW
8.06.2023 - 15:50
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
195
Будет 11 фото

Только задумайтесь: мы всё чаще используем умные холодильники, машины, розетки и лампочки, умные часы и колонки. Нас окружают умные вещи и умные люди. Но насколько они умные и так ли нужна эта "умность"? А ещё — насколько легко взломать эти вещи? Часы, например, несложно. Давайте посмотрим другой пример: умную зубную щётку.

Однажды я купил новую зубную щётку Philips Sonicare, и во время чистки зубов заметил, что она реагирует на установку насадки миганием светодиода. Быстрый поиск в интернете показал, что насадка взаимодействует с ручкой зубной щётки, позволяя напоминать пользователю о том, что пора купить новую.

Кажется, это стоит изучить.

Взламываем «умную» зубную щётку
 
[^]
Yap
[x]



Продам слона

Регистрация: 10.12.04
Сообщений: 1488
 
[^]
VampirBFW
8.06.2023 - 15:51
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
На основании насадки можно увидеть антенну и крошечную чёрную коробочку, предположительно являющуюся микросхемой. Следующую подсказку можно найти в руководстве: "Радиооборудование в этом продукте работает на частоте 13,56 МГц", похоже на метку NFC. И действительно, при поднесении насадки к моему телефону открылась ссылка на страницу продукта.

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:52
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
3 фото

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:52
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Используя приложение 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 меткой при использовании зубной щётки:

Считывание метки

При считывании новой насадки, которой ещё не пользовались, данные addr. 0×24 равны 00:00:02:00.

Если просто поставить насадку на ручку щётки (без чистки зубов), ничего не меняется.

Чистка

Я дал щётке поработать 5 секунд

Считываю данные с метки повторно

Данные addr. 0×24 изменились, теперь это 05:00:02:00

Похоже, что addr. 0x24 сохраняет количество секунд, в течение которых использовалась насадка щётки.

Когда щетка используется более 255 секунд, этот таймер переходит на второй бит (02:01:02:00 -> 258s). Попытка перезаписать сохранённое время, к сожалению, не увенчалась успехом, так как этот адрес памяти защищён паролем.

Подбор пароля
К счастью, оказалось, что требуемый пароль передается открытым текстом! Значит, все, что мне нужно сделать, это перехватить обмен данными между зубной щёткой и головкой. Покопавшись в своём программно-определяемом радио HackRF, методом проб и ошибок пришёл к следующему рабочему алгоритму.

Это сообщение отредактировал VampirBFW - 8.06.2023 - 16:18

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:54
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Запись радиочастотного сигнала

Откроем программу gqrx и настроим её на частоту 13,736 МГц. Теперь, если держать зубную щётку близко к антенне, можно заметить, что головка опрашивается несколько раз в секунду. Приятно удивило, что простая несимметричная антенна принимает сигнал, достаточно сильный для этих целей

Это сообщение отредактировал VampirBFW - 8.06.2023 - 16:18

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:54
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Во время чистки зубов считыватель NFC делает короткую паузу, и первая последующая пачка пакетов обновляет счётчик времени. Благодаря возможности gqrx делать I/Q-записи, мы можем записать радиочастотные сигналы пароля следующим (очень сложным) образом:

Включаем зубную щетку

Начинаем запись

Выключаем зубную щетку

Останавливаем запись

Первые пакеты в файле теперь должны содержать пароль в виде обычного текста.

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:55
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Преобразование записи

Прежде чем этот необработанный I/Q файл будет декодирован, его нужно преобразовать в немного другой формат, чтобы программа декодирования могла его прочитать. Я создал небольшой скрипт-компаньон для gnuradio, который применяет фильтр низких частот и преобразует данные в wav-файл с двумя каналами, содержащими действительную и мнимую составляющие комплексного сигнала. Убедитесь, что подставили правильные пути в блоки источник/приемник и проверьте частоту дискретизации (я использовал 2МГц).

Это сообщение отредактировал VampirBFW - 8.06.2023 - 15:55

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:55
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Декодирование записи

Я нашел идеальный инструмент для этой задачи под названием NFC-laboratory. После открытия только что созданного WAV-файла он должен выглядеть примерно так, как показано на рисунке выше. В этом случае запись позволяет только увидеть связь, которая идет от хоста к метке (зелёная стрелка). Но для подбора пароля это идеальный вариант. Если посмотреть на спецификацию NTAG213, то можно увидеть, что происходит:

Строка #0-#6 — устанавливается связь с уникальным ID метки

Строка #7 — зубная щётка отправляет пароль (команда 0x1B = PWD_AUTH)

Строка #9 — счётчик времени обновляется до нового значения (команда 0xA2 = WRITE).

Все строчки ниже — это повторный опрос без аутентификации по паролю или записи чего-либо

Итак, пароль для этой насадки 67:B3:8B:98 (подчёркнуто на картинке).

Это сообщение отредактировал VampirBFW - 8.06.2023 - 16:19

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:56
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Запись на щетку

С успешно полученным паролем можно установить счётчик на головке щетки на любое нужное нам значение, отправив соответствующие байты по NFC. NFC Tools снова приходит на помощь:

Перейдите в «Другое» -> «Дополнительные команды NFC» (Other -> Advanced NFC commands)

Установите класс ввода-вывода (I/O Class) на NfcA

Установите данные на 1B:67:B3:8B:98,A2:24:00:00:02:00

Наслаждайтесь обновлённой насадкой щётки (вы же понимаете, что это касается только счётчика времени?)

Вот разбивка команды на шаге 3:

Команда Описание

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

Ниже вы можете увидеть память насадки щетки до и после пользовательских команд NFC:

Обратите внимание, как меняется таймер 0x24

Это сообщение отредактировал VampirBFW - 8.06.2023 - 16:19

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:56
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
10.

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:56
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
11

Взламываем «умную» зубную щётку
 
[^]
VampirBFW
8.06.2023 - 15:56
Статус: Online


Главный Сапиосексуал Япа.

Регистрация: 20.02.10
Сообщений: 18399
Ну что, зубная щётка успешно взломана, и мы можем играть с таймером по своему усмотрению.

Вот несколько интересных наблюдений:

Только первые два байта по адресу 0x24 используются для хронометража. Как только счетчик достигает FF:FF:02:00, он перестаёт расти (18 часов непрерывной чистки зубов).

Когда сохраненное время превышает 0x5460, зубная щетка мигает светодиодом, чтобы уведомить вас о необходимости смены головки. Это соответствует 21 600 с -> 180 x 2 мин -> 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 отнеслись к этой функции, угадать ее может быть практически невозможно. Но если вам удастся разгадать эту загадку, не стесняйтесь, напишите мне.

Спасибо за внимание!


спер прям тут

Это сообщение отредактировал VampirBFW - 8.06.2023 - 15:56
 
[^]
Nok78
8.06.2023 - 15:57
605
Статус: Online


Приколист

Регистрация: 30.10.14
Сообщений: 393
Да ты ебанутый)))
 
[^]
glumator
8.06.2023 - 15:57
12
Статус: Offline


Юморист

Регистрация: 17.06.13
Сообщений: 520
Новые данные записываются в насадку просто добавлением к старым или полностью заменяются?
если просто заменяются, то можно же записать данные которые отправляются при первом использовании насадки и отправлять их-же, когда щетка посчитает, что насадку пора заменять?

Это сообщение отредактировал glumator - 8.06.2023 - 15:58
 
[^]
SlavaKrueger
8.06.2023 - 15:58
166
Статус: Offline


Хохмач

Регистрация: 6.04.19
Сообщений: 711
Взломал зубную, мать его, щетку!
Знаете, я думаю, с этим парнем нужно быть осторожнее!
 
[^]
MiKor
8.06.2023 - 15:58
13
Статус: Offline


Твори хуйню, мы тут проездом

Регистрация: 6.10.20
Сообщений: 20
И всё это зачем?
Чтобы не менять насадку? Так её надо регулярно менять, иначе зубам карачун
 
[^]
asey80
8.06.2023 - 15:59
44
Статус: Offline


Ярила

Регистрация: 22.04.21
Сообщений: 3759
ебать ты псих тс
 
[^]
ReisiLind
8.06.2023 - 15:59
16
Статус: Offline


EST

Регистрация: 10.09.20
Сообщений: 4016
Да пиздец, какая то щётка будет блокировать головку?
 
[^]
DogfoxSPb
8.06.2023 - 15:59
11
Статус: Offline


ингерманландец

Регистрация: 13.07.21
Сообщений: 1590
Зубная щетка рассказала кто победит на выборах в Америке ?
 
[^]
lofasup
8.06.2023 - 16:00
35
Статус: Offline


Уставший

Регистрация: 27.09.22
Сообщений: 1305
Удивительно, столько придумано ради того что бы заставить покупать новые насадки..
Но что можно сделать с такой щеткой имея полный доступ?
Эмулировать окончание срока сменной насадки посылая радиосигнал и этим удаленно отключать двигатель щетки?
Т.е. щетка будет как робот ползти по поверхности и останавливаться в нужное время!

Недавно разобрал старую электробритву в которой кроме трансформатора и сердечника на пружинках нет ничего интересного)
Думал ее мощности хватит что бы сделать микропилу. Но оказалось что амплитуда вибрации слишком мала. Можно как шлифовальной станок использовать.

Это сообщение отредактировал lofasup - 8.06.2023 - 16:11

Взламываем «умную» зубную щётку
 
[^]
exxorior
8.06.2023 - 16:00
10
Статус: Offline


Весельчак

Регистрация: 23.01.23
Сообщений: 169
молодец какой!
а, фаллоимитатор так можно?
если чё, это не мне и жены у меня нет
 
[^]
nikolkas
8.06.2023 - 16:01
35
Статус: Offline


Слабоумие и отвага!

Регистрация: 28.11.19
Сообщений: 4210
Скоро щетка просто будет отключаться по истечении таймера.
Ну и платные подписки как в бмв. Саорость вращения там, режимы всякие.
Заебись буржуи.

Размещено через приложение ЯПлакалъ
 
[^]
Kisskissmay
8.06.2023 - 16:01
35
Статус: Offline


Добрый

Регистрация: 10.09.12
Сообщений: 2373
Я увидел кучу цифр и незнакомых слов)
Поэтому нихуя ничего не понял rolleyes.gif
 
[^]
DogfoxSPb
8.06.2023 - 16:01
3
Статус: Offline


ингерманландец

Регистрация: 13.07.21
Сообщений: 1590
Данные передаваемые зубной щеткой изменяются в зависимости от того, кто её изучает ?
 
[^]
Feolon
8.06.2023 - 16:01
24
Статус: Offline


Ярила

Регистрация: 4.03.09
Сообщений: 3645
как ахуенно удобно придумано. Хуяк и тебе заблокировали зубную щетку! Будь добр покупай новую!
 
[^]
Понравился пост? Еще больше интересного в Телеграм-канале ЯПлакалъ!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста, или зарегистрируйтесь, если не зарегистрированы.
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) Просмотры темы: 33462
0 Пользователей:
Страницы: (8) [1] 2 3 ... Последняя » [ ОТВЕТИТЬ ] [ НОВАЯ ТЕМА ]


 
 



Активные темы






Наверх