Заброшенные роутеры оживают... И становятся идеальным 0-day оружием
NewsMakerОдин APK-файл из прошлого — и система уже под атакой.
В рамках первого соревнования DistrictCon Junkyard аналитики из Trail of Bits продемонстрировали, насколько серьёзную угрозу представляют собой устаревшие сетевые устройства, оставшиеся без обновлений. В ходе мероприятия они удалённо скомпрометировали два снятых с производства устройства — маршрутизатор Netgear WGR614v9 и Bitdefender Box V1 — и получили награду за один из наиболее нестандартных сценариев атаки. Несмотря на то, что изначально доступ к этим системам был возможен только в локальной сети, оба эксплойта обеспечили полный контроль, что реалистично в бытовых или офисных условиях. Подробности об уязвимостях, этапах анализа и демонстрации опубликованы в официальном репозитории Trail of Bits на GitHub.
Анализ Netgear начался с аппаратного вскрытия: исследователи определили расположение отладочных интерфейсов и микросхем памяти, а затем загрузили прошивку с сайта производителя. С помощью утилит binwalk и unblob они рекурсивно извлекли содержимое образа, после чего выполнили портскан и получили доступ к UART-консоли, что позволило изучить загруженное ядро, активные процессы и сервисы. Особое внимание было уделено демон-процессу UPnP (upnpd), реализующему поддержку Universal Plug-and-Play.
Через UPnP-реализацию были осуществлены три успешных атаки, основанных на цепочках уязвимостей: обходе аутентификации в SOAP-обработчике, переполнениях буфера в сегментах BSS и стека, а также внедрении команд. Один из наиболее изобретательных подходов, получивший название bashsledding, заключался в инъекции ROP-гаджетов с вызовом system(), при этом полезная нагрузка записывалась в энергонезависимую память (NVRAM) через механизм доменной блокировки. Для обхода зависимости от точных смещений в коде использовались длинные цепочки пробелов, интерпретируемые оболочкой bash до обнаружения полезной команды.
В другом варианте атаки, под названием bigfish_littlepond, использовалось переполнение BSS-сегмента для изменения указателя на строку, передаваемую в командную оболочку. Исследователи обнаружили, что upnpd вызывает вспомогательный процесс bpa_monitor. Подменив имя вызываемой команды и внедрив полезную нагрузку через отдельный SOAP-запрос, они добились выполнения произвольного кода.
Bitdefender Box V1, работающее на иной архитектуре и обладающее иной моделью безопасности, также оказалось уязвимо. Это устройство, предназначенное для защиты домашней сети и анализа трафика, имело уязвимость в системе обновлений: прошивку можно было откатить до старой версии без аутентификации. Далее использовалась уязвимость в механизме проверки контрольной суммы, что позволяло внедрить произвольную команду.
Анализ начался с аппаратного дампа содержимого SPI-чипа памяти Winbond W25Q128FV. Поскольку официальные серверы обновлений были недоступны, исследователи обратились к архивным APK-файлам мобильного приложения и с помощью VirusTotal обнаружили версию 1.3.12.869, содержащую прошивку 1.3.11.490, подписанную действительным ключом.
Сравнительный анализ выявил отсутствие фильтрации спецсимволов в параметре md5, передаваемом в HTTP-запросе к /check_image_and_trigger_recovery. Это позволило внедрить команду, добавляющую SSH-ключ исследователей в authorized_keys, обеспечивая постоянный удалённый доступ.
Цепочка атаки включала следующие шаги: вызов эндпоинта /update_auth_token (сброс конфигурации и снятие ограничений на обновление), загрузка архива прошивки через /upload_backup_firmware, проверка структуры через /decode_image и, наконец, инъекция команды на этапе /check_image_and_trigger_recovery.
Хотя в устройстве реализована проверка подписи на основе RSA, отсутствовал механизм верификации версии, что делало возможным использование устаревшего, но подписанного образа. Это позволяло системе без возражений запускать небезопасный код.
Оба инцидента — с Netgear и Bitdefender — иллюстрируют структурные уязвимости в экосистеме интернета вещей . SOAP-интерфейсы UPnP часто остаются без фильтрации, а уровень привилегий таких сервисов обычно избыточен. Совмещение уязвимостей UPnP с отсутствием защиты от откатов в системе обновлений превращает многие устройства в потенциальные точки входа.
Организаторы Junkyard подчёркивают, что цель таких мероприятий — не только демонстрация технического мастерства, но и привлечение внимания к проблеме заброшенного оборудования. В отличие от элитных конкурсов вроде Pwn2Own, Junkyard делает упор на доступность: принимаются устройства, снятые с поддержки и стоящие недорого. Исследователям рекомендуют заранее оценивать прошивки, наличие отладочных интерфейсов, анализировать сертификаты FCC и искать старые образы или приложения, содержащие нужные данные.
Вывод очевиден: прекращение официальной поддержки не означает исчезновения угроз. Любой устаревший маршрутизатор или устройство фильтрации, якобы обеспечивающее защиту, может быть легко превращено в уязвимое звено. Поэтому при выборе нового оборудования важно учитывать не только функции, но и срок безопасности, который готов гарантировать производитель.

В рамках первого соревнования DistrictCon Junkyard аналитики из Trail of Bits продемонстрировали, насколько серьёзную угрозу представляют собой устаревшие сетевые устройства, оставшиеся без обновлений. В ходе мероприятия они удалённо скомпрометировали два снятых с производства устройства — маршрутизатор Netgear WGR614v9 и Bitdefender Box V1 — и получили награду за один из наиболее нестандартных сценариев атаки. Несмотря на то, что изначально доступ к этим системам был возможен только в локальной сети, оба эксплойта обеспечили полный контроль, что реалистично в бытовых или офисных условиях. Подробности об уязвимостях, этапах анализа и демонстрации опубликованы в официальном репозитории Trail of Bits на GitHub.
Анализ Netgear начался с аппаратного вскрытия: исследователи определили расположение отладочных интерфейсов и микросхем памяти, а затем загрузили прошивку с сайта производителя. С помощью утилит binwalk и unblob они рекурсивно извлекли содержимое образа, после чего выполнили портскан и получили доступ к UART-консоли, что позволило изучить загруженное ядро, активные процессы и сервисы. Особое внимание было уделено демон-процессу UPnP (upnpd), реализующему поддержку Universal Plug-and-Play.
Через UPnP-реализацию были осуществлены три успешных атаки, основанных на цепочках уязвимостей: обходе аутентификации в SOAP-обработчике, переполнениях буфера в сегментах BSS и стека, а также внедрении команд. Один из наиболее изобретательных подходов, получивший название bashsledding, заключался в инъекции ROP-гаджетов с вызовом system(), при этом полезная нагрузка записывалась в энергонезависимую память (NVRAM) через механизм доменной блокировки. Для обхода зависимости от точных смещений в коде использовались длинные цепочки пробелов, интерпретируемые оболочкой bash до обнаружения полезной команды.
В другом варианте атаки, под названием bigfish_littlepond, использовалось переполнение BSS-сегмента для изменения указателя на строку, передаваемую в командную оболочку. Исследователи обнаружили, что upnpd вызывает вспомогательный процесс bpa_monitor. Подменив имя вызываемой команды и внедрив полезную нагрузку через отдельный SOAP-запрос, они добились выполнения произвольного кода.
Bitdefender Box V1, работающее на иной архитектуре и обладающее иной моделью безопасности, также оказалось уязвимо. Это устройство, предназначенное для защиты домашней сети и анализа трафика, имело уязвимость в системе обновлений: прошивку можно было откатить до старой версии без аутентификации. Далее использовалась уязвимость в механизме проверки контрольной суммы, что позволяло внедрить произвольную команду.
Анализ начался с аппаратного дампа содержимого SPI-чипа памяти Winbond W25Q128FV. Поскольку официальные серверы обновлений были недоступны, исследователи обратились к архивным APK-файлам мобильного приложения и с помощью VirusTotal обнаружили версию 1.3.12.869, содержащую прошивку 1.3.11.490, подписанную действительным ключом.
Сравнительный анализ выявил отсутствие фильтрации спецсимволов в параметре md5, передаваемом в HTTP-запросе к /check_image_and_trigger_recovery. Это позволило внедрить команду, добавляющую SSH-ключ исследователей в authorized_keys, обеспечивая постоянный удалённый доступ.
Цепочка атаки включала следующие шаги: вызов эндпоинта /update_auth_token (сброс конфигурации и снятие ограничений на обновление), загрузка архива прошивки через /upload_backup_firmware, проверка структуры через /decode_image и, наконец, инъекция команды на этапе /check_image_and_trigger_recovery.
Хотя в устройстве реализована проверка подписи на основе RSA, отсутствовал механизм верификации версии, что делало возможным использование устаревшего, но подписанного образа. Это позволяло системе без возражений запускать небезопасный код.
Оба инцидента — с Netgear и Bitdefender — иллюстрируют структурные уязвимости в экосистеме интернета вещей . SOAP-интерфейсы UPnP часто остаются без фильтрации, а уровень привилегий таких сервисов обычно избыточен. Совмещение уязвимостей UPnP с отсутствием защиты от откатов в системе обновлений превращает многие устройства в потенциальные точки входа.
Организаторы Junkyard подчёркивают, что цель таких мероприятий — не только демонстрация технического мастерства, но и привлечение внимания к проблеме заброшенного оборудования. В отличие от элитных конкурсов вроде Pwn2Own, Junkyard делает упор на доступность: принимаются устройства, снятые с поддержки и стоящие недорого. Исследователям рекомендуют заранее оценивать прошивки, наличие отладочных интерфейсов, анализировать сертификаты FCC и искать старые образы или приложения, содержащие нужные данные.
Вывод очевиден: прекращение официальной поддержки не означает исчезновения угроз. Любой устаревший маршрутизатор или устройство фильтрации, якобы обеспечивающее защиту, может быть легко превращено в уязвимое звено. Поэтому при выборе нового оборудования важно учитывать не только функции, но и срок безопасности, который готов гарантировать производитель.