Мій аудіо-інтерфейс має увімкнений за замовчуванням 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, щоб ініціювати сам процес флешування.
Отже, послідовність така:
- підключити Rodecaster і увімкнути його (або навпаки)
- надіслати команду ‘M’
- монтити диск і скопіювати
archive.tar.gzтаarchive.md5на нього - виконати chmod 777 обом файлам, бо мені все одно, як правильно це зробити
- відмонтувати диск
- надіслати команду ‘U’
- очікувати перезавантаження пристрою з новою прошивкою
кастомна прошивка
Я ще працював на 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

Залишити відповідь
Щоб відправити коментар вам необхідно авторизуватись.