My audio interface has SSH enabled by default

від

у

Мій аудіо-інтерфейс має увімкнений за замовчуванням SSH

https://ift.tt/zGadyP6

минулого року я придбав Rodecaster Duo, щоб вирішити деякі аудіопроблеми: дати мені та моєй дівчині мікрофони до наших відповідних комп’ютерів під час гри разом у Discord в одній кімнаті без будь-якого еха, і щоб легко переналаштовувати це на мій робочий ПК. Rodecaster справді класний, ним легко користуватися, він гарно справляється з нашим використанням вдома. Я з радістю рекомендую його кожному, хто шукає подібне рішення.

як зазвичай для будь-якого пристрою в моєму домі, я намагаюся переконатися, що коли настав час оновлювати прошивку, у мене є достатньо інструментів, щоби захопити, як працюють оновлення прошивки, або щонайменше зафіксувати прошивальний blob, щоб спробувати зворотне інженерство та пошукати, для розваги та/або щоб побачити ту часто жахливу реальність галузі, в якій ми працюємо.

оновлення прошивки

Я відчував себе досить лінивим і думав, що Rodedump прошивку десь на моєму комп’ютері перед флешуванням пристрою, тож я налаштував інструменти на macOS, щоб захоплювати активність диска, і знайшов, де прошивка була вивантажена; на диво, це був просто gzipped tarball. Пристрій, на якому я зробив це оновлення, випадково мав вимкнену можливість писати на USB-диски, тому оновлення фактично зірвалося.

Надусунувши трохи, я знайшов виконувані файли того, що фактично працює на пристрої, а також shell-скрипт, який обробляє самі оновлення. На диску є дві розділи, щоб у разі зламу одного він завантажувався з іншого. Також немає ніяких перевірок підписів або чогось подібного на вхідну прошивку. Я звик, що багато постачальників подібних пристроїв вимагають підписані прошивки чи щось подібне, тож це досить приємно — мати пристрій, який можна модифікувати. Також помітив, що SSH за замовчуванням увімкнено, підключив Ethernet-кабель і побачив, що SSH дійсно увімкнено лише з автентифікацією за публічним ключем. Нижче ключі, які додаються за замовчуванням:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCX/bCFTDgViuPvdFL/VMMVRrw9b5S8HcDQk17qoCEYwmI+IIG8rEAsLiaeCOwyhf9IN+8/LRaN0Z5ZfU3WMbmsKEg8zd1Yvqq74nFbhO47vbtzmCi9S4ucIKkBEVOyvyN5lt9hWf5t5nZSmlfldZK3Pem5y8wHM5A+K/gSnzp4gwQ1QYfFb068uQ+ciIdOhb8SkUs8CwzotglIbp19I6ZmXmsNj/TmpbUf5rMfUAf1gysZ5j1UdRWrvWVh5daqvZRsBBPbXEeJfDU3Nr3HR14XYt9mgexrz/5oyKSj/lQYLmh9cDfsxvkGNIQ8fF9l+n2L1KZM4lLgiGk4KFBjQHaIBZx9OebCiiZCO4NTJUBDk9a+SZpiDiipADV07s7vTInYyFA6GrmKtnq3M6upT4WJBvVuL/BMnK5yY1RZtoqox2/pcCg2rH5S1GIy0v0HFJisl7kWInlaG2mdsaCx19wAjCFe/qT9LyxjQ6+0rArI55/JJFDkNeMjrewRQwNdASjCox8vqXCBfjvsR9qv70/ywcymgsnLAnq2LuYg5FYwMMDYOvVnhACC+BYTdNDTn5oeMIjQCUenY/DPCHpJkf4YOf3YCMUTEU9tExhtwW/X+m21hS3+STLtTfqbUeg9CeuPQZgfl9vc65n3tMxAdlEGEDoTaNMAgr2TzJv92Ka9iQ==
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDaNyzPfIcEeQsfzyQs/wyX6mX52kiS+4eNHfCaxFlgj

оскільки оновлення зірвалося, я перейшов на ПК з Windows і налаштував Wireshark з USBPcap, а потім запустив оновлення через застосунок rodecaster. Я приблизно поглянув на файл pcap і подивився, де почалося оновлення, оскільки через мій інший комп’ютер також йшов великий потік трафіку для аудіо. Я занотував номери пакетів, які вважав цікавими, і кинув їх у Claude Code для поглибленого аналізу pcap, поки займався іншими справами.

Пізніше (CC зайняло лише 10 хвилин, але я був зайнятий деякий час) я повернувся до розбору структури і скрипта на Python для ручного оновлення пристрою. Додаток RODECaster надсилає пристрою деякі HID-управління, одну команду для входу в режим оновлення (команда ‘M’), а потім ще одну (команда ‘U’) для ініціювання оновлення. Обидві — це лише поодинокі ASCII-символи, надіслані через HID-повідомлення 1.

Я всього лише слуга, який пише YAML, і іноді нижчий за середнього користувач GHIDRA, і не часто взаємодію з апаратним обладнанням, тому отримати допомогу від CC у відкритті було корисно, а також вказано мені на ресурси, щоб дійсно дізнатися більше про HID-пристрої.

Структура була досить простою: надсилаєте команду m, а потім копіюєте archive.tar.gz та archive.md5 (очевидно, з md5sum архіву) на щойно підключений диск, потім надсилаєте команду U, щоб ініціювати сам процес флешування.

Отже, послідовність така:

  1. підключити Rodecaster і увімкнути його (або навпаки)
  2. надіслати команду ‘M’
  3. монтити диск і скопіювати archive.tar.gz та archive.md5 на нього
  4. виконати chmod 777 обом файлам, бо мені все одно, як правильно це зробити
  5. відмонтувати диск
  6. надіслати команду ‘U’
  7. очікувати перезавантаження пристрою з новою прошивкою

кастомна прошивка

Я ще працював на Mac і хотів створити кастомну прошивку, щоб мати можливість SSH до пристрою, тому я просто використав контейнер, щоб увімкнути автентифікацію за паролем для SSH (не стріляйте в мене) та додати свій публічний ключ до авторизованих ключів, і згенерувати архів для флешування. насправді не потрібно багато чого, щоб флешнути пристрій, див. тут (приклад функцій, яких розумно не додавати інше).

запустіть свій скрипт, щоб флешнути річ, і бага-гоньо — ви можете SSH до нього

висновок

Я був дійсно здивований, що можливо так легко прошити прошивку на цьому пристрої, і це справді гарна річ, мати пристрій. Це дуже гарна річ і фактично зливається з фоном, і мені ніколи не потрібно думати про нього. Я не дуже розумію, чому SSH було увімкнено або чому саме цей ключ додавався за замовчуванням, але я подав заявку в RODE з цього приводу, бо не міг знайти явний контакт для повідомлення про безпеку. Я не отримав відповіді, але буду слідкувати, чи зміни у майбутніх оновленнях прошивки щось змінять.

Вже пройшло кілька місяців з того часу, як я щось з цим робив, і я намагаюся просто висловити свої думки у нотатку і дуже мало редагувати його, а потім просто постити. Я справді люблю весь той RODE-варіант, який маю, і знову хочеться купити ще обладнання.

якщо хочеш поставити мені запитання з цього приводу або маєш якісь питання, ти можеш зв’язатися зі мною за першою літерою цього домену, у цьому домені.

дякую, комп’ютере, до зустрічі

HI-FI News

через Hacker News https://ift.tt/H1zBU58

26 квітня 2026 року о 22:01

April 24, 2026 at 10:01PM