Исследователь рассказал, что в последние несколько недель он занимался реверс‑инжинирингом периферийных устройств, используя ИИ‑агентов. В результате он получил полноценную командную оболочку в текстовом формате внутри микрофона, а также смог выключать индикатор активности веб‑камеры и активировал индикатор на клавиатуре, который выдаёт команды на запись в память любому пользователю Wi‑Fi.

Процесс был практически одинаковым для каждого из устройств: исследователь брал копию прошивки и соответствующий инструмент обновления у производителя, загружал её в свою среду реверс‑инжиниринга, указывал Claude Opus 5 свои цели и запускал процесс. Он предлагал ИИ‑агенту выполнить следующие задачи:
-
реверс‑инжиниринг формата обновления прошивки и протокола обновления;
-
разработку собственной утилиты обновления;
-
определение свойств безопасности протокола обновления, включая контрольные суммы, проверку подписи, безопасную загрузку;
-
использование статического и динамического анализа для определения всех аспектов протокола и полного перечисления функциональности;
-
поиск любой скрытой или отладочной функциональности в продукте и способов доступа к ней.
В общей сложности все пять устройств обработали около 13 часов и получили 98 подсказок за две недели.
Энтузиаст задействовал в проекте веб‑камеру Insta360 Link. Он хотел узнать, можно ли обойти активность светодиода как в классическом эксплойте iSeeYou. Оказывается, что камера работает на операционной системе ThreadX от поставщика SoC Ambarella. Операционная система реального времени (RTOS) содержит несколько небольших моделей обработки изображений, которые обеспечивают такие функции, как отслеживание лица, а также распознавание жестов для управления настройками.
В интерфейсе USB Video Class есть команда XU (Extension Unit), которая переводит устройство в режим «массового хранилища». Это позволяет передавать поэтапное обновление прошивки во внутреннюю файловую систему FAT, которое затем устройство применяет к себе при перезагрузке. Этот путь требует вмешательства пользователя путём повторного подключения, но на самом деле существует другой канал команд, который предоставляет возможность произвольного чтения/записи файлов и команду перезагрузки через интерфейс USB vendor. После того, как прошивка окажется в нужном месте, фактически отсутствует защита от взлома, только добавленный хеш MD5 для обеспечения целостности.
Оказалось, что светодиодный индикатор имеет хорошо структурированный набор «шаблонов» в прошивке, которые определяют цвет, схему мигания и так далее, и индексируются для различных состояний устройства. Claude написал инструмент для исправления записи в таблице активности камеры, исправления хеша целостности и прошивки. Быстрая проверка показала, что зелёный светодиод, который обычно горит во время записи, больше не включается.
Затем исследователь перешёл к монитору ASUS ROG Swift PG42UQ, так как его раздражало всплывающее окно, которое время от времени появляется и предлагает запустить «очистку пикселей». Claude обнаружил, что прошивка фактически не имеет никакой защиты — используется двухслотовая схема A/B и простая контрольная сумма, а обновления происходят через шину I2C, подключённую через USB. Оказалось, что предупреждение об очистке пикселей не имеет встроенного способа отключения, и оно всегда будет появляться после 8 часов работы. ИИ нашёл подходящее место для патча, чтобы отключить эту функцию. Изучение интерфейса DDC/CI с помощью ИИ позволило написать скрипт оболочки, который может переключаться между некоторыми функциями, такими как аппаратный прицел или наложения масштабирования, счётчик FPS и таймер обратного отсчёта.

Прошивка микрофона Shure MV7 оказалась скрыта в программном обеспечении для Windows, MOTIV Mix, поэтому Claude установил его через Wine, нашёл сервер обновлений и загрузил. Прошивка оказалась одновременно DSP и MCU. Однако протокол обновления показал, что всё это работает по USB HID, реализующему полноценную командную оболочку в открытом текстовом формате с 48 различными командами. Доступ к HID удалось получить через WebHID с веб‑страницы в Chrome, и энтузиаст попросил Claude создать веб‑интерфейс для использования этой оболочки. Он получил возможность изучить множество интересных настроек, включая регуляторы DSP, произвольное чтение/запись памяти, управление светодиодами и 4-уровневую систему привилегий пользователя, вся аутентификация которой представляет собой сравнение строки с именем запрошенного уровня. Команда su sup позволяет отключить сенсорную панель, чтобы звук на устройстве продолжал работать, и управлять светодиодом отключения независимо от того, активирован ли микрофон.

Кроме того, исследователь обратился к Elgato Cam Link 4K — устройству захвата видео через HDMI. Его прошивка содержит образ микроконтроллера и битовый поток FPGA для фактической обработки HDMI, а защита на пути обновления отсутствует. Автору удалось извлечь всю информацию EDID, используемую для согласования параметров видео, учитывая то, какие разрешения, частоты обновления, цветовые пространства и параметры субдискретизации цветности предлагаются.

Протокол HID от производителя включает туннелированный доступ к внутренней шине I2C, что довольно интересно, поскольку можно заглядывать во внутренние регистры HDMI‑приёмника.
Наконец, он исследовал устройство, подключённое не через USB, а через Wi‑Fi, — Elgato Key Light Mini. Оно оказалось единственным с надёжной защитой целостности прошивки. Elgato подписывает обновления с помощью Ed25519, используя хеш SHA-512 полезной нагрузки. Однако мера защищает прошивку только в момент обновления.

Тогда исследователь попросил Claude поискать эксплойт, и тот обнаружил HTTP POST‑запрос, который помещает полезную нагрузку прямо во внутренний UART, включая команду «проверки памяти». Это означает, что один HTTP POST‑запрос ATSE=0200ED94,0E001009 превращает проверку подписи в пустую операцию. Автор успешно протестировал это с помощью простого патча, который изменил имя устройства.
Источник: habr.com