Полгода назад на пентесте IoT-инфраструктуры коллега снял дамп SPI-флеш с роутера через программатор CH341A. Binwalk отработал за минуты — в конфигах лежали три пароля открытым текстом. Два из них давали root shell по telnet без аутентификации. Устройство висело на периметре с белым IP, доступное из интернета. И это не аномалия.
Такие артефакты — норма для SOHO-роутеров. Hardcoded credentials, открытые debug-интерфейсы, UART shell без пароля. Одна дыра в Realtek SDK транслируется в сотни моделей от разных брендов — потому что десятки OEM-производителей строят прошивки на одной кодовой базе.
🔎Что по сути представляет собой роутер на периметре? Полноценный Linux-хост с root-доступом, через который идёт весь трафик сегмента. Компрометация такого устройства — это pivot во внутреннюю сеть, перехват DNS, persistence, который переживёт переустановку ОС на подключённых машинах.
Скандал вокруг запрета TP-Link в США только подсветил проблему. Суть претензий — не конкретный бэкдор, а системная непрозрачность разработки firmware, медленные патчи и факты использования устройств в ботнетах. Но те же грабли у Netgear, D-Link, Tenda, иногда у Asus. Производитель вторичен — важен процесс аудита.
Как выглядит workflow на практике:
• Получаем прошивку — скачиваем с FTP вендора, снимаем через UART/SPI или перехватываем при обновлении (да, в 2025 некоторые устройства всё ещё тянут firmware по голому HTTP)
• Распаковываем через
binwalk или unblob — вытаскиваем файловую систему• Ищем хардкод-креды, debug-эндпоинты, устаревшие компоненты — статический анализ в Ghidra
• Эмулируем в QEMU через FirmAE — фаззим веб-интерфейс, тестируем найденные точки входа
• Эксплуатируем — command injection, обход аутентификации, доступ через debug-порт
Минимальный стенд для старта — Ubuntu или Kali, 4 ГБ RAM, программатор CH341A за 500 рублей и USB-to-TTL адаптер. Никаких облачных зависимостей, всё крутится локально.
🎇Главный вывод: аудит прошивки — обязательный этап пентеста любой сети, где на периметре стоит SOHO-роутер. Не потому что TP-Link плохой, а потому что класс устройств системно недоинвестирован в безопасность. Один plaintext-пароль в конфиге — и у атакующего есть initial access без единого эксплойта.
В полной статье — детальный пошаговый разбор: от физической экстракции до готового чеклиста обнаружения бэкдоров.
https://codeby.net/threads/audit-proshivki-routera-ot-ekstraktsii-firmware-do-obnaruzheniya-b-ekdorov.94986/
