Пользователь рассказал, что он приобрёл компактную аудиостудию для подкастов, стриминга и контента Rodecaster Duo, чтобы решить некоторые проблемы со звуком на микрофонах, подключённых к компьютерам при общении и стриминге в Discord. Он заметил, что протокол для удалённого управления сервером через командную строку SSH был уже включён с аутентификацией по открытому ключу.
«Как обычно для любого устройства в моем доме, я стараюсь убедиться, что когда приходит время обновления прошивки, у меня достаточно инструментов, чтобы понять, как они работают, или, по крайней мере, получить файл прошивки, чтобы попытаться реконструировать его и покопаться в нём ради интереса и/или увидеть зачастую ужасающую реальность индустрии, в которой мы работаем», — отметил юзер.
Пользователь предположил, что Rode скопирует прошивку на его компьютер перед установкой на устройство, поэтому он настроил Instruments на macOS для захвата активности диска. На устройстве, на котором он выполнял обновление, была отключена возможность записи на USB-диски, поэтому обновление фактически не удалось. Пользователь обнаружил бинарные файлы того, что фактически работает на устройстве, а также скрипт оболочки, который обрабатывает сами обновления. «На диске два раздела, так что если один выйдет из строя, загрузка будет производиться с другого. Также отсутствуют проверки подписи или что-либо подобное в отношении входящей прошивки. Я привык к тому, что многие производители подобных устройств сейчас требуют подписанных прошивок или чего-то подобного, и приятно иметь устройство, которое можно модифицировать. Я также заметил, что SSH, похоже, включён по умолчанию, и, подключив кабель Ethernet, убедился, что SSH действительно включён только с аутентификацией по открытому ключу», — пишет он.
Вот ключи, которые добавляются по умолчанию:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCX/bCFTDgViuPvdFL/VMMVRrw9b5S8HcDQk17qoCEYwmI+IIG8rEAsLiaeCOwyhf9IN+8/LRaN0Z5ZfU3WMbmsKEg8zd1Yvqq74nFbhO47vbtzmCi9S4ucIKkBEVOyvyN5lt9hWf5t5nZSmlfldZK3Pe m5y8wHM5A+K/gSnzp4gwQ1QYfFb068uQ+ciIdOhb8SkUs8CwzotglIbp19I6ZmXmsNj/TmpbUf5rMfUAf1gysZ5j1Ud RWrvWVh5daqvZRsBBPbXEeJfDU3Nr3HR14XYt9mgexrz/5oyKSj/lQYLmh9cDfsxvkGNIQ8fF9l+n2L1KZM4lLgiGk4 KFBjQHaIBZx9OebCiiZCO4NTJUBDk9a+SZpiDiipADV07s7vTInYyFA6GrmKtnq3M6upT4WJBvVuL/BMnK5yY1RZtoqox2/pcCg2rH5S1GIy0v0HFJisl7kWInlaG2mdsaCx19wAjCFe/qT9LyxjQ6+0rArI55/JJFDkNeMjrewRQwNdASjCox 8vqXCBfjvsR9qv70/ywcymgsnLAnq2LuYg5FYwMMDYOvVnhACC+BYTdNDTn5oeMIjQCUenY/DPCHpJkf4YOf3YCMUTEU9tExhtwW/X+m21hS3+STLtTfqbUeg9CeuPQZgfl9vc65n3tMxAdlEGEDoTaNMAgr2TzJv92Ka9iQ==
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaNyzPfIcEeQsfzyQs/wyX6mX52kiS+4eNHfCaxFlgj
Поскольку обновление не удалось, пользователь переключился на компьютер с Windows, настроил Wireshark с USBPcap, а затем запустил апдейт через приложение Rodecaster. Он просмотрел файл pcap и заметил большой трафик, записал номера пакетов, которые показались интересными, и передал их в Claude Code, чтобы ИИ проанализировал файл.
Затем пользователь вернулся к анализу структуры и скрипту на Python для ручного обновления устройства. Приложение RODECaster отправляет на устройство некоторые управляющие данные HID: одну команду для перехода в режим обновления (команда «M») и другую (команда «U») для запуска апдейта. Обе команды представляют собой отдельные символы ASCII, передаваемые через отчёт HID 1.
«Я всего лишь пользователь YAML-файлов и иногда пользователь Ghidra ниже среднего уровня, и редко взаимодействую с аппаратными устройствами, поэтому помощь от CC в Discovery была полезна, как и указание на ресурсы для более глубокого изучения HID-устройств», — поясняет юзер.
По его словам, для запуска прошивки нужно:
-
подключить Rodecaster, включить устройство;
-
отправить команду ‘M’;
-
смонтировать диск и скопировать на него archive.tar.gz и archive.md5;
-
изменить права доступа к обоим файлам с помощью команды chmod 777;
-
отмонтировать диск;
-
отправить команду ‘U’;
-
дождаться перезагрузки устройства с новой прошивкой.
Пользователь хотел создать кастомную прошивку, чтобы иметь возможность подключаться к устройству по SSH, поэтому он просто использовал контейнер для включения аутентификации по паролю для SSH, а также добавил свой собственный открытый ключ к авторизованным и выгрузил архив для прошивки.


Юзера удивило, как легко ему удалось изменить прошивку. Он отправил запрос по поводу SSH в службу поддержки RODE, но пока не получил ответа.
ссылка на оригинал статьи https://habr.com/ru/articles/1028024/