Перейти к содержанию

Посты

Чуть больше года назад вышла по-настоящему мощная статья, которую я просто не мог пропуст…

14 мая 2025 г. в 18:39Max Knyazev is typing…Зеркало Telegram
Чуть больше года назад вышла по-настоящему мощная статья, которую я просто не мог пропустить (но пропустил, потому что не знал о ее существовании, а теперь наверстываю). Джеймс Уорнер опубликовал ее у себя на площадке jmswrnr.com. Если вам интересен реверс, IoT или просто хочется прокачать понимание того, как устроены умные устройства изнутри — читаем статью (и этот пост, потому что я тоже старался все по полочкам раскидать) 💯

Статья называется "Hacking a Smart Home Device", и это, без преувеличения, целая история превращения умного очистителя воздуха на базе ESP32 в полностью интегрируемый модуль для Home Assistant. Но то, как Джеймс к этому пришёл, — просто фантастика. Пожалуй, начнем 🍻

Итак, у нас есть девайс, есть кривое приложение, которое живёт только в облаке, и абсолютно никакой локальной интеграции. И вот автор решает: раз уж потратил деньги, то пусть отрабатывает их на все 100%. С этого и начинается реверс

Он пошёл по классике: анализ апкшки, поиск WebSocket-адресов, изучение сетевого трафика через Pi-hole и Wireshark. Тут, кстати, был первый нюанс — очиститель общается по UDP, и в пакетах не было ни намёка на читаемый текст. Только криптографическая мишура, которая (спойлер) оказалась кастомным ECDH+HKDF с AES-128-CBC шифрованием

Но это только начало 😅

Джеймс аккуратно вскрывает корпус, подключается по UART через Flipper Zero (ставьте 😍, если хотите обзор конкретно на мой Flipper Zero со всеми плюшками, которые у меня для него есть), и сливает прошивку. Там он увидел FAT-раздел, серийники, приватные ключи и сертификаты. Всё это находилось прямо на устройстве, без какой-либо защиты. В этот момент я подумал: «Серьёзно? В 2024?» Но ладно, поехали дальше (Бог им судья) 👏

С помощью Ghidra он разбирает бинарник, идентифицирует все основные функции, вычисляет, как работает обмен ключами, и даже патчит прошивку, чтобы устройство можно было запускать без фронтальной панели. К слову, Ghidra пришлось кастомно настроить под Xtensa, импортировать ROM-функции и SVD, чтобы хоть как-то с этим работать

Но главный кайф — это когда он расшифровывает первый пакет. То чувство, когда, наконец, все получается. В этот момент я был искренне рад за Джеймса. Дальше он строит полноценную MITM-схему. Он подменяет DNS, перехватывает пакеты, декодирует, дешифрует, логирует и… поднимает собственный сервер. Без единой строчки оригинального кода производителя. Просто по логике и анализу (это же пушка-бомба вообще) 🤩

Потом он подключает всё это к MQTT и Home Assistant. Описывает, как сделать связку в виде «девайс <—> сервер <—> Mosquitto <—> Home Assistant». Всё живёт у него локально, работает стабильно. Миссия выполнена 🥂

А теперь подведу итог и выскажу свое мнение по поводу всей его работы 😉

Во-первых, это одна из самых крутых и методичных реализаций реверса, которые я видел в open-source. В статье всё описывается максимально подробно по шагам, с объяснениями и даже скриптами. Это не просто «посмотрел трафик и написал сниффер», это прям вышка реверса с практической пользой

Во-вторых, кейс хорошо показывает, что кастомные протоколы — это почти всегда путь к беде. Да, они могут создать иллюзию безопасности, но как только хоть один человек раскопает бинарник, от защищенности не останется и следа 😵

Ну и в-третьих, всё это было сделано ради того, чтобы не запускать отдельное приложение на телефоне. Чтобы очиститель включался, когда в комнате пыль. Чтобы не думать о том, жив ли твой аккаунт в китайском облаке. Простая мотивация, но как круто получилось то

Если вам нравится reverse engineering, работать с ESP32 или хочется интегрировать непонятный китайский гаджет в свою экосистему — обязательно прочтите оригинал (статья на английском, но я не думаю, что в наше время это большая проблема). Вы увидите, насколько мощным может быть DIY, если в руках Flipper Zero, Ghidra, немного терпения, но велико желание сделать что-то крутое 🍿

Как-то так. Пишите ваше мнение и присылайте похожие истории (крутыми и полезными вещами нужно делиться). Всего вам доброго, мои дорогие айотовчане 🙏

#информационная_безопасность #интернет_вещей
Открыть исходный пост в Telegram