Новая кампания по распространению вредоносного ПО Remcos: многостадийная атака через JavaScript и LuaJIT

remote access Trojan

В середине декабря 2025 года специалисты по информационной безопасности зафиксировали волну атак, нацеленных на государственные учреждения, медицинские организации, банковский сектор и другие критически важные отрасли. Злоумышленники применяют многоступенчатую цепочку заражения, которая в итоге доставляет на компьютер жертвы троян удаленного доступа Remcos. Изначально этот инструмент разрабатывался как легитимное средство для удаленного администрирования, но давно перекочевал в арсенал киберпреступников.

Описание

Первичным вектором атаки служит вредоносный JavaScript-файл размером около 8,84 мегабайта. Его обнаружили на платформе VirusTotal 16 декабря 2025 года. Несмотря на крупный объем, скрипт сильно запутан: в него добавлены тысячи бесполезных переменных, повторяющиеся строки и фиктивные функции, которые не влияют на выполнение. Это стандартная техника обфускации, призванная затруднить анализ. После очистки становится ясно, что скрипт проверяет, существует ли в папке C:\Users\Public\Libraries\ файл со случайным именем. Если такого файла нет, вредоносная программа копирует туда себя и через планировщик задач Windows настраивает запуск каждые десять минут. Так достигается закрепление в системе - даже после перезагрузки компьютера атака возобновляется.

На следующем этапе JavaScript сохраняет в ту же директорию три файла: обфусцированный Lua-скрипт, загрузчик на основе LuaJIT и библиотеку lua51.dll. LuaJIT - это быстрая среда выполнения языка Lua, которая позволяет вызывать функции языка C напрямую без дополнительных оберток. Вредонос использует эту возможность для низкоуровневых манипуляций с памятью. Загрузчик запускает легитимный процесс Windows colorcpl.exe (панель управления цветом), открывает его с полными правами доступа, выделяет область памяти, записывает туда раскодированную полезную нагрузку и запускает ее через удаленный поток. Этот метод внедрения кода в доверенный процесс помогает обходить сигнатурные детекторы.

Полезная нагрузка внутри Lua-скрипта защищена тремя слоями: сначала строка переворачивается, затем декодируется из Base64, после чего к каждому печатному символу применяется сдвиг ROT14. После расшифровки получается шеллкод, упакованный инструментом Donut. Donut генерирует позиционно-независимый код, который может выполняться полностью в памяти без записи на диск. Внутри этого шеллкода содержится сам троян Remcos версии 7.1.0 Pro, выполненный в формате PE32 на языке C++.

Аналитики обнаружили, что конфигурация Remcos хранится в зашифрованном виде в ресурсе PE-файла под именем SETTINGS. Для шифрования используется алгоритм RC4, а ключ задается первым байтом. Расшифрованные параметры раскрывают адреса командных серверов: laboratery.ydns.eu на порту 63099 с поддержкой TLS и laboratery1.ydns.eu на порту 63921 без шифрования. Также в конфигурации указаны имя ботнета RemoteHost, название исполняемого файла remcos.exe, мьютекс Rmc-AFAZ9F, папки для хранения скриншотов, аудиозаписей и логов клавиатуры. Интересно, что встроен лицензионный ключ C16F3DF974E930853974A85A2987E8B7, что подтверждает коммерческий характер распространения.

После запуска Remcos проверяет свои привилегии. Он различает три контекста: обычный пользователь, администратор и системная учетная запись LOCAL SYSTEM. Затем создает мьютекс, чтобы исключить одновременную работу нескольких копий. Для хранения собственного состояния троян использует ветку реестра, имя которой берется из мьютекса. При стандартных правах запись идет в HKCU\Software, при повышенных - в HKLM\Software. В реестр сохраняются путь к исполняемому файлу (зашифрованный), лицензия, метка времени, уникальный идентификатор жертвы, а также PID основного процесса для работы сторожевого модуля.

Установка и закрепление в системе зависят от уровня доступа. В любом случае вредоносная программа копирует себя в папку %ProgramData%\Remcos\remcos.exe, применяя к файлу и каталогу атрибуты "только чтение", "скрытый" и "системный", чтобы затруднить обнаружение пользователем. Для автозапуска при старте системы используется запись в соответствующую ветку реестра: для обычного пользователя - HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, для администратора - HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run.

Активные возможности данного образца включают кейлоггер, съемку скриншотов и запись звука с микрофона. Кейлоггер устанавливает системную hook-функцию через SetWindowsHookExA, перехватывая все нажатия клавиш, а также периодически опрашивает буфер обмена. Все данные сохраняются в файл logs.dat внутри папки %AppData%\Remcos. Скриншоты создаются путем копирования содержимого экрана в память и последующего сохранения в папку Screenshots с именами вида wnd_YYYYMMDD_HHMMSS. Аудиозапись ведется через Windows Multimedia API (WaveIn) непрерывными частями; каждый буфер при заполнении сохраняется как WAV-файл в папку MicRecords.

Помимо этого, в Remcos заложены и другие функции, хотя в данном образце они не активированы: сторожевой процесс, внедрение в другие процессы, отключение контроля учетных записей (UAC), маскировка под explorer.exe, удаленная смена обоев, загрузка DLL, очистка сохраненных паролей в браузерах, управление мышью, клавиатурой, монитором и дисководом.

Для связи с командным сервером троян использует обычные TCP-сокеты с опциональным шифрованием TLS. Каждый пакет начинается с трехбайтовой магической последовательности 0xFF 0x04 0x24, за которой следуют размер пакета, идентификатор команды и данные, разделенные разделителем \x1E\x1E\x1F. После установления соединения Remcos отправляет подробные сведения о системе: версия агента, имя компьютера, имя пользователя, географическое положение, версия и архитектура ОС, объем ОЗУ, модель процессора, путь к запущенному процессу, заголовок активного окна, время бездействия и другие параметры. В ответ сервер может отдавать команды для управления файлами, процессами, службами, окнами, реестром, а также запускать скрипты, выгружать данные, управлять питанием, проводить восстановление паролей, управлять прокси и даже взаимодействовать с жертвой через диалоговые окна.

Данная кампания демонстрирует высокий уровень подготовки злоумышленников. Использование многослойной обфускации, промежуточных загрузчиков на LuaJIT, упаковщика Donut и выполнение финальной нагрузки только в памяти делает атаку трудно обнаружимой для традиционных антивирусных решений. Закрепление через планировщик задач и запись в реестр обеспечивает устойчивость к перезагрузкам. Нацеленность на широкий спектр отраслей, включая правительство и здравоохранение, повышает потенциальный ущерб: похищенные учетные данные, финансовая информация и внутренние документы могут быть использованы для мошенничества, шпионажа или продажи в даркнете. Организациям следует усилить контроль за исполнением скриптов на рабочих станциях, ограничить запуск подозрительных процессов из папок пользователей и настроить мониторинг аномальной активности в памяти.

Индикаторы компрометации

SHA256

  • 5343326fb0b4f79c32276f08ffcc36bd88cde23aa19962bd1e8d8b80f5d33953
  • 6bed90bbdb00ffb3704410c6a7b16751cd8fdc100acf47130783477750c33c8b
  • e0a69eff836709cbefee1079d647d50d55f558e5f8c7bf18a8056361cd5116f3

Комментарии: 0