Исследователи нашли в npm 14 вредоносных пакетов, которые маскировались под обычные инструменты для работы с датами, календарями и сериями событий. Библиотеки действительно выполняли заявленные функции, поэтому разработчик мог подключить зависимость и не заметить ничего подозрительного. Одновременно пакет незаметно запускал в Linux имплант RedC2 4.0, через который злоумышленник получал удалённый доступ к системе.
В заражённый список вошли streak-metrics-math версий 1.0.0 и 1.0.1, а также kit-map-vim, streak-map-cache, streak-map-kit, map-streak-kit, streak-cache-map, streak-calc-metrics, streak-calc-math, streak-math-abz, streak-metricsaz, streak-math-metrics, streak-metricazbd, streak-metricsazb и streak-kit-map версии 1.0.0. Названия не указывали на вредоносное назначение и напоминали обычные небольшие npm-модули.
Авторы спрятали внутри пакетов нативный исполняемый файл и выдавали его за внутренний математический компонент. Имя менялось от библиотеки к библиотеке: math-core.bin, math-calc.bin, calc-math.dat, calc-cache.bin, calc.bin или calc-mapping.bin. Файл находился в каталоге dist/ либо dist/internal/. Во всех вариантах внутри размещался Linux-компонент RedShell из набора RedC2 4.0.
Для запуска вредоносного кода не использовались install-скрипты npm. Загрузчиком служил входной файл dist/index.mjs. При загрузке модуля код находил встроенный бинарный файл, выдавал ему право на выполнение и запускал отдельным фоновым процессом. Процесс отсоединялся от приложения и продолжал работать независимо.
Разработчику не требовалось вызывать отдельную функцию заражённой библиотеки. Достаточно было импортировать модуль. Более опасен сценарий с транзитивной зависимостью: RedC2 мог попасть в проект через другую библиотеку, которую разработчик установил напрямую. В таком случае имя вредоносного пакета могло вообще не появляться среди зависимостей, выбранных вручную.
Одновременно dist/index.mjs продолжал экспортировать заявленные функции для работы с датами. Приложение не ломалось, а библиотека сохраняла ожидаемое поведение. Поэтому простая проверка работоспособности пакета не помогала обнаружить скрытый бинарник.
После запуска RedShell подключался к командно-управляющему серверу под Windows или Linux. Через сервер оператор мог выполнять дальнейшие действия на заражённой машине. RedShell появился в RedC2 4.0 и предназначен специально для Linux, тогда как сам комплекс поддерживает Windows, macOS и Linux.
RedC2 развивается как платформа командования и управления заражёнными компьютерами. Версию 4.0 начали рекламировать на Hack Forums в начале июня 2026 года. RedC2 3.0 продавалась в январе 2026 года, а RedC2 2.0 появилась в августе 2025-го. Разработчики обновляют набор инструментов как минимум около года.
RedC2 позволяет открывать удалённый терминал, передавать файлы, доставлять дополнительные вредоносные компоненты по этапам, собирать информацию и одновременно управлять несколькими имплантами. В платформу также входят визуализация сети и туннелирование трафика между заражёнными узлами.
Отдельные компоненты можно выполнять непосредственно в памяти. RedC2 поддерживает Beacon Object Files, то есть небольшие объектные модули для выполнения дополнительных команд внутри агента, сборки .NET и шелл-код. Такой способ уменьшает необходимость сохранять каждый запускаемый модуль на диск.
Linux-версия RedShell предоставляет интерактивную командную оболочку через /bin/sh. Оператор может исследовать систему, читать и изменять файлы, запускать программы, собирать данные и закреплять вредоносный код в системе после перезагрузки. Среди доступной для кражи информации указаны SSH-ключи и сохранённые браузером учётные данные.
RedShell также умеет запускать ELF-файлы непосредственно в памяти, создавать SOCKS5-прокси и использовать заражённый компьютер для перехода к другим узлам сети. Последний механизм позволяет перенаправлять трафик через уже захваченную машину и добираться до систем, которые нельзя напрямую открыть из интернета.
При первом соединении с командно-управляющим сервером RedShell собирает базовую информацию о компьютере и отправляет регистрационное сообщение. После регистрации агент переходит в цикл ожидания команд. Полученные инструкции передаются в /bin/sh, выполняются в системе, а результат отправляется обратно оператору.
Компоненты RedC2 для Windows и macOS поддерживают похожий набор базовых функций: операции с файлами, изучение компьютера и сети, получение списка пользователей и сбор данных. Windows-версия дополнительно умеет обходить контроль учётных записей UAC, обнаруживать антивирусы и системы обнаружения и реагирования на конечных устройствах, вмешиваться в работу защитного ПО, выполнять код в памяти и перемещаться между компьютерами внутри локальной сети.
RedC2 продаётся через общедоступный сайт Red Offsec за 99,99 доллара. Создатели описывают продукт как многоязычный кроссплатформенный комплекс командования и управления для Windows, Linux и macOS, рассчитанный на уклонение от средств защиты.
В условиях использования Red Offsec запрещены несанкционированный доступ к компьютерам, взлом без разрешения владельца, эксплуатация чужих систем и причинение им вреда. Авторы позиционируют RedC2 как инструмент для специалистов по тестированию на проникновение и команд, которые имитируют действия реального противника при проверке защиты организации. Тем не менее тот же Linux-имплант оказался встроен в npm-пакеты, которые запускали RedShell автоматически при обычном импорте.
В RedC2 4.0 также встроен компонент Red Agent на базе большой языковой модели. Оператор может описать необходимое действие обычным языком, а система преобразует запрос в команды, понятные агентам RedC2. Для работы с платформой предусмотрено и расширение командной строки RedC2 EXT.
Red Agent рассчитан на многоэтапные действия после первоначального проникновения. Через текстовую команду оператор может поручить системе провести сетевую разведку или извлечь учётные данные. Языковая модель самостоятельно переводит сформулированную задачу в последовательность команд RedC2.
Подобная прослойка снижает требования к знанию внутреннего синтаксиса платформы. Оператору не обязательно вручную собирать каждую последовательность действий из отдельных команд. Часть технической работы берёт на себя языковая модель, которая получает обычное текстовое описание задачи и формирует команды для имплантов.
Способ доставки RedC2 дополняет эту автоматизацию. Вредоносный npm-пакет сам запускает RedShell при импорте, после чего заражённая машина регистрируется на командно-управляющем сервере. Дальнейшую разведку, сбор данных и запуск дополнительных действий оператор может частично передать Red Agent.
Почти одновременно исследователи обнаружили другую атаку на цепочку поставок программного обеспечения, уже в экосистеме Rust. Злоумышленники скомпрометировали легитимные пакеты arrayref 0.3.10, internment 0.8.7 и append-only-vec 0.1.9. В заражённые версии добавили вредоносную зависимость proc-macro1, которая автоматически запускала кроссплатформенную вредоносную программу во время сборки проекта через Cargo.
Вредоносная программа собирала сведения о компьютере, определяла установленные браузеры на базе Chromium, закреплялась в системе и соединялась с инфраструктурой злоумышленников. После подключения операторы могли передавать новые задания и загружать дополнительные компоненты.
Исследователи предполагают, что атакующие получили учётные данные сопровождающего пакетов и воспользовались ими для публикации заражённых версий в репозитории. Инфраструктура кампании пересекается с предыдущими атаками на цепочки поставок Mastra и Axios, которые связывали с северокорейскими злоумышленниками.
Случай с npm отличается особенно незаметным механизмом запуска. Пакеты сохраняли полезные функции, не требовали install-скрипта и активировали RedShell сразу после загрузки модуля. При попадании вредоносной библиотеки в проект через транзитивную зависимость разработчик мог не устанавливать её самостоятельно и всё равно получить работающий в фоне Linux-имплант с доступом к командно-управляющему серверу.
