Новый rootkit для Linux подставляет вредоносный код в HTTP-трафик

Новый rootkit для Linux подставляет вредоносный код в HTTP-трафик

На ряде web-серверов обнаружен новый руткит, используемый для скрытной подстановки вредоносных вставок в отдаваемый сервером HTTP-контент. Руткит поражает 64-разрядные Linux-серверы, работающие под управлением Debian Squeeze с ядром 2.6.32-5-amd64.

После активации в ядро системы загружается специальный модуль, скрывающий следы присутствия руткита и осуществляющий подстановку в генерируемый локальным web-сервером HTTP-трафик iframe-блоков с кодом для эксплуатации уязвимостей в клиентских браузерах и установленных в них плагинах.

В отличие от обычно применяемой техники внедрения вредоносного кода в хранимые на сервере html-страницы, руткит позволяет оставить файлы в неизменном виде, осуществляя подстановку на стадии отдачи контента http-сервером. Так как компоненты руткита маскируются и скрываются от средств мониторинга, на первый взгляд вредоносная активность отсутствует. Первая информация о новом рутките была опубликована несколько дней назад в списке рассылки Full Disclosure. Администратор одной из поражённых систем привёл первичный разбор странной активности на своём сервере, из-за которой во вне данные уходили с подстановкой вредоносного iframe, но локально следов подстановки вредоносного кода не наблюдалось, в том числе используемый для отдачи контента nginx при проверке через strace отдавал в сетевой сокет корректные данные, пишет opennet.ru.

В дальнейшем один из исследователей безопасности, получивший доступ к поражённой системе, проанализировал руткит иопубликовал подробный отчёт о методах его работы. Наиболее важным выводом является то, что выявленный руткит является новой разработкой, не основанной ни на одном из ранее доступных руткитов или инструментов для их создания. При этом реализация и качество исполнения руткита свидетельствует о том, что он создавался не для проведения целевых атак, а как начальная попытка создания ещё одного средства для распространения вредоносного ПО.

После загрузки руткита он осуществляет перехват управления некоторых функций ядра Linux (vfs_readdir, vfs_read, filldir64 и filldir), скрывая необходимые для работы руткита файлы на диске. Для скрытия загрузки модуля ядра осуществляется модификация списка активных модулей в соответствующей структуре данных ядра Linux. Перехват управления производится путем перезаписи нескольких байт непосредственно в начале кода перехватываемой функций (добавляется команда jmp rel32 и копируется рассчитанное в стеке смещение). Запуск руткита производится через загрузку модуля ядра Linux. Но так как команда "insmod /lib/modules/2.6.32-5-amd64/kernel/sound/module_init.ko" добавляется в конец файла /etc/rc.local, а в Debian файл /etc/rc.local завершается вызовом exit 0, команда загрузки модуля размещается после вызова exit, т.е. после перезагрузки руткит не активируется.

Подстановка вредоносного кода в трафик осуществляется путем перехвата функции tcp_sendmsg, используемой для построения исходящих TCP-пакетов. Обработчик руткита анализирует передаваемый контент и добавляет после строки с тегом body блок iframe. Для управления руткитом предусмотрен специальный интерфейс, получающий команды от удалённого управляющего сервера. В частности, после обращения руткита к управляющему серверу, тот возвращает блок данных, который следует внедрить в трафик, а также параметры подстановки. Например, поддерживается установка правил для какого именно хоста осуществить подстановку, определяется тип внедрения (JavaScript/iframe).

Сложный бесфайловый троян ShadowHS незаметно захватывает Linux-системы

Исследователи обнаружили ShadowHS — продвинутый бесфайловый фреймворк для атак на Linux, который заметно отличается от привычных вредоносных программ. Это не очередной бинарник, который можно поймать антивирусом, а полноценный инструмент постэксплуатации, целиком работающий в памяти и рассчитанный на долгую и аккуратную работу внутри защищённых корпоративных сред.

По данным Cyble Research & Intelligence Labs, ShadowHS — это сильно модифицированная и «вооружённая» версия утилиты hackshell.

В процессе заражения вредонос вообще не пишет файлы на диск: он выполняется из анонимных файловых дескрипторов, маскирует имя процесса под легитимные приложения вроде python3 и тем самым обходит контроль целостности и классические механизмы защиты.

Цепочка заражения начинается с многоступенчатого шелл-загрузчика, в котором полезная нагрузка зашифрована с помощью AES-256-CBC. После запуска загрузчик проверяет наличие зависимостей вроде OpenSSL, Perl и gzip, определяет контекст запуска и только затем восстанавливает пейлоад через сложную цепочку декодирования. Исполнение происходит напрямую из памяти — через /proc/<pid>/fd/<fd>, без следов в файловой системе.

 

Ключевая особенность ShadowHS — его «сдержанный» характер. В отличие от массовых зловредов, он не начинает сразу майнить криптовалюту или выкачивать данные. Сначала фреймворк проводит глубокую разведку окружения: ищет средства защиты, анализирует конфигурацию системы и передаёт результаты оператору, который уже вручную решает, что делать дальше. Такой подход больше похож на работу живого атакующего, чем на автоматизированный бот.

ShadowHS активно проверяет наличие корпоративных средств защиты — от CrowdStrike Falcon и Sophos Intercept X до Microsoft Defender, Elastic Agent, Wazuh, Tanium и агентов облачных провайдеров. Для этого используются проверки файловых путей, статусов сервисов и анализ состояния системы. Параллельно вредонос «зачищает территорию»: он ищет и завершает процессы конкурирующих семейств зловредов, включая Kinsing, Rondo и печально известный бэкдор Ebury, а также выявляет следы руткитов и прежних компрометаций.

Отдельного внимания заслуживает механизм вывода данных. Вместо стандартных SSH, SCP или SFTP ShadowHS использует пользовательские туннели GSocket. Передача файлов идёт через заранее заданную точку rendezvous и маскируется под локальные соединения, которые фактически перехватываются GSocket до попадания в сетевой стек. Такой подход позволяет обходить файрволы и средства сетевого мониторинга, не создавая очевидных сетевых сессий.

Если оператор решает активировать «тяжёлые» модули, ShadowHS способен развернуть сразу несколько вариантов криптомайнинга — от XMRig и XMR-Stak до GMiner и lolMiner. Для латерального перемещения он подтягивает инструменты вроде Rustscan. В коде также заложены модули для кражи AWS-учёток, SSH-ключей, данных из GitLab, WordPress, Bitrix, Docker, Proxmox, OpenVZ и облачных метаданных-сервисов — пока они остаются «спящими».

Из-за полностью fileless-архитектуры традиционные сигнатурные средства защиты против ShadowHS почти бесполезны. Эффективное обнаружение требует анализа поведения процессов, мониторинга исполнения в памяти и телеметрии на уровне ядра. Эксперты рекомендуют уделять внимание аномальной генеалогии процессов, подмене аргументов запуска и нетипичному использованию механизмов вроде memfd.

RSS: Новости на портале Anti-Malware.ru