EtherRAT: новая малварь для Linux, использующая React2Shell и смарт-контракты Ethereum

CyberSecureFox 🦊

Всего через несколько дней после раскрытия критической уязвимости React2Shell (CVE-2025-55182) эксперты Sysdig зафиксировали ее эксплуатацию в реальных атаках на Next.js-приложения с последующей доставкой новой малвари EtherRAT. Вредонос нацелен на Linux-системы, использует смарт-контракты Ethereum для управления и внедряет сразу несколько механизмов персистентности.

React2Shell: критическая уязвимость в React и Next.js

React2Shell представляет собой уязвимость удаленного выполнения кода (RCE) в React Server Components. Она получила максимальную оценку 10.0 по CVSS и связана с небезопасной десериализацией данных. Достаточно обычного HTTP-запроса — без аутентификации и привилегий — чтобы выполнить произвольный код на сервере.

Под удар попали свежие версии React 19.0, 19.1.0, 19.1.1 и 19.2.0 в конфигурации по умолчанию, а также популярный фреймворк Next.js. Разработчики уже выпустили исправления в релизах React 19.0.1, 19.1.2, 19.2.1 и соответствующих версиях Next.js, однако множество приложений остаются не обновленными и доступны в интернет.

По данным исследователей, уязвимость активно эксплуатируют как минимум две китайские группы — Earth Lamia и Jackpot Panda. От атак уже пострадали не менее 30 организаций. Кроме того, эксперты предупреждают, что аналогичные проблемы могут существовать и в других реализациях React Server, включая Vite RSC plugin, Parcel RSC plugin, React Router RSC preview, RedwoodSDK и Waku.

Цепочка заражения: от HTTP-запроса до скрытого Node.js-окружения

Атака начинается с эксплуатации React2Shell: на сервере выполняется base64-кодированная шелл-команда, задача которой — загрузить скрипт s.sh через curl, wget или python3. Команда повторяется каждые 300 секунд до успешного скачивания, после чего скрипт получает права на выполнение и запускается.

Скрипт создает скрытый каталог в $HOME/.local/share/ и загружает оттуда легитимный бинарник Node.js 20.10.0 напрямую с официального сайта nodejs.org. Затем в ту же директорию записывается зашифрованный пейлоад и обфусцированный JavaScript-дроппер, который запускается через только что установленный Node.js. После этого s.sh удаляет сам себя, минимизируя следы.

Дроппер расшифровывает блоб с помощью жестко закодированного ключа AES-256-CBC, записывает результат в виде еще одного скрытого JS-файла и запускает его через Node.js. Именно этот компонент и является EtherRAT — полнофункциональной малварью, работающей в среде Node.js.

EtherRAT и смарт-контракты Ethereum как канал управления

Ключевая особенность EtherRAT — использование смарт-контрактов Ethereum как инфраструктуры команд и контроля (C2). Вредонос параллельно опрашивает девять публичных Ethereum RPC-провайдеров и выбирает ответ по принципу большинства. Такой подход усложняет блокировку за счет устойчивости к отравлению отдельной ноды или sinkholing’у.

Каждые 500 миллисекунд EtherRAT формирует рандомизированные URL, напоминающие адреса CDN, обращается к управляющему серверу и выполняет возвращенный JavaScript через AsyncFunction. В результате злоумышленники получают интерактивный Node.js-шелл с возможностью динамически менять полезную нагрузку без записи файлов на диск.

Аналитики отмечают, что использование блокчейна в качестве C2-канала продолжает тренд, известный как EtherHiding, ранее описанный в отчетах Google и GuardioLabs. По данным Sysdig, паттерн зашифрованного загрузчика EtherRAT совпадает с вредоносом BeaverTail, применяемым в кампании Contagious Interview, что указывает на возможную связь с северокорейской группировкой Lazarus.

Многослойная персистентность и самообновление малвари

Отдельного внимания заслуживает персистентность EtherRAT в Linux. Исследователи фиксируют использование сразу пяти параллельных механизмов закрепления, что позволяет сохранять доступ к системе даже после перезагрузок и регламентных работ администраторов. Такой многослойный подход существенно усложняет полное удаление вредоноса: одного «ручного» удаления процесса или файла оказывается недостаточно.

Еще одна уникальная особенность EtherRAT — <strongсамообновление кода. Малварь отправляет свой исходный код на специальный API-эндпоинт и получает модифицированную версию с той же функциональностью, но иной обфускацией. Затем вредонос перезаписывает себя и запускает новый процесс. Это снижает эффективность статических сигнатур, усложняет анализ и потенциально позволяет быстро внедрять новые функции под конкретные цели атак.

Что делать организациям: приоритетные шаги по защите

Компании, использующие React и Next.js, особенно в Linux-средах и облачных инфраструктурах, находятся в зоне повышенного риска. Необходимо как можно быстрее:

1. Обновить React до версий 19.0.1, 19.1.2, 19.2.1 и задействованные версии Next.js, а также провести аудит других библиотек с React Server Components на предмет небезопасной десериализации.

2. Проверить хосты на наличие скрытых каталогов в $HOME/.local/share/, неожиданных установок Node.js, файлов вроде s.sh, а также подозрительных Node-процессов, запущенных от учетных записей приложений.

3. Проанализировать системные механизмы автозапуска и фоновых задач на признаки многослойной персистентности, описанной в отчете Sysdig, и сопоставить инфраструктуру с опубликованными индикаторами компрометации (IoC).

4. Настроить мониторинг и, по возможности, ограничение Ethereum RPC-трафика, отслеживать нетипичные обращения к публичным RPC-провайдерам с серверов приложений, а также регулярно ротировать учетные данные и токены доступа.

Обнаружение и блокировка сочетания React2Shell и EtherRAT требуют совместной работы команд разработки и ИБ: внедрения безопасных практик разработки, своевременного управления уязвимостями и постоянного мониторинга поведения серверов. Чем быстрее будет выстроен такой цикл, тем ниже вероятность, что подобные гибридные атаки с использованием блокчейн-инфраструктуры приведут к долгосрочному компрометированию критически важных систем.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.