Прошивка маршрутизатора Zbtlink включает встроенный имплант дистанционного управления ENDLESSDOORS, присутствующий в каждой опубликованной сборке всей линейки продуктов. Это инструмент ycsunjane/rctl с открытым исходным кодом, встроенный в пакет OpenWrt (librctl.so), который запускается при загрузке и запускается от имени пользователя root под именем процесса kworker, чтобы сливаться с потоками ядра [kworker/*]. Он не открывает порт прослушивания; он звонит домой по протоколу TCP с открытым текстом на жестко запрограммированный сервер управления и контроля (командный канал 7000, обратный вызов интерактивной оболочки 7001) без аутентификации и транспортного шифрования, повторяя попытку контакта примерно каждые 35 секунд.
Его обработчик команд передает любую полученную строку в popen() как uid=0, а зарезервированная команда rctlbash возвращает интерактивную корневую оболочку. Поскольку канал не аутентифицирован и имеет открытый текст, контроль не ограничивается тем, кто его установил: любая сторона, которая отвечает по адресу C2, занимает сетевой путь (DNS или перехват маршрута) или получает жестко запрограммированный резервный домен, получает удаленное выполнение кода без аутентификации от имени пользователя root.
Показать оригинальное описание (EN)
Zbtlink router firmware ships an embedded remote-control implant, ENDLESSDOORS, present in every published build across the product line. It is the open-source ycsunjane/rctl tool built in as an OpenWrt package (librctl.so), started at boot and run as root under the process name kworker to blend in with the kernel's [kworker/*] threads. It opens no listening port; it phones home over cleartext TCP to a hardcoded command-and-control server (command channel 7000, interactive-shell callback 7001) with no authentication and no transport encryption, re-attempting contact roughly every 35 seconds. Its command handler passes any received string to popen() as uid=0, and a reserved rctlbash command returns an interactive root shell. Because the channel is unauthenticated and cleartext, control is not limited to whoever planted it: any party that answers at the C2 address, occupies the network path (DNS or route hijack), or acquires the hardcoded fallback domain obtains unauthenticated remote code execution as root.
Характеристики атаки
Последствия
Строка CVSS v4.0