Фейковый мод для Resident Evil 9 привёл к заражению ПК многоступенчатым стилером с функцией удалённого доступа

Stealer

Инцидент, задокументированный аналитиком по обратной разработке, демонстрирует серьёзную угрозу для пользователей, устанавливающих непроверенные модификации видеоигр. Жертва, профессионально занимающаяся реверс-инжинирингом, установила с GitHub архив Chapter.Skip.zip, замаскированный под полезный мод для Resident Evil 9, позволяющий пропускать главы. Вместо этого система получила сложную многоступенчатую инфекцию, которая оставалась незамеченной в течение одиннадцати дней. Конечным этапом стал инжектированный в память исполняемый файл на языке Go, совмещающий функции похитителя учётных данных (infostealer) и инструмента удалённого доступа (RAT).

Описание

Первым звеном цепочки стала вредоносная DLL-библиотека ChapterSkip.dll, извлечённая из архива. При запуске она выполняла команду, загружающую удалённый пакетный скрипт через curl с легитимного, но скомпрометированного сайта южноафриканской охранной компании Nomgwenya Security Services, и передавала его напрямую в cmd.exe. Этот скрипт, названный vscode-bootstrap.cmd, проверял наличие Node.js на компьютере и при отсутствии загружал его с официального сайта nodejs.org, после чего разворачивал портативную среду Node. Внутри самого скрипта был закодирован блок, маскирующийся под сертификат, который с помощью утилиты certutil декодировался в обфусцированный JavaScript. Данный JavaScript, в свою очередь, загружал портативную среду Python (python3.zip) и запускал защищённый PyArmor-скрипт exec.py.

Именно Python-стадия стала центральным звеном, поскольку она загружала из памяти финальную полезную нагрузку - исполняемый файл Go, располагавшийся по адресам /go/boing на двух доменах (postprocesser[.]com и cosmoplanets[.]net). Декодирование полезной нагрузки проходило в три этапа: сдвиг символов (шифр Цезаря с вычитанием 4), декодирование base64 и распаковка LZMA. Анализ полученного Go-файла, проведённый с помощью IDA, capa и динамической отладки, выявил широкий набор функций. Среди них - сбор сохранённых паролей, cookie-файлов, истории браузера, данных автозаполнения и банковских карт из браузеров на базе Chromium (Edge, Chrome, Brave, Opera, Vivaldi, Yandex и другие) и Firefox. Кроме того, вредоносная программа нацеливалась на криптовалютные кошельки (Coinomi, Exodus, MetaMask), данные сессий Discord, Telegram, Steam, Signal, файловые менеджеры (FileZilla), SSH-ключи, базы данных KeePass и файлы сертификатов.

Согласно телеметрии, собранной в ходе динамического анализа в песочнице Triage (доступен публичный отчёт по тому же образцу), процесс calc.exe использовался как хост для туннеля Cloudflare (calc.exe tunnel --url http://localhost:49906), что указывает на возможность организации скрытого канала управления (hVNC). Тот же отчёт зафиксировал запуск ffmpeg.exe с перечислением устройств DirectShow, что является признаком функциональности веб-камеры. При этом автор инцидента отмечает, что на его собственном ПК не обнаружено следов активации веб-камеры или передачи видеопотока. Однако сам факт наличия такого кода в финальной нагрузке подтверждён.

Отдельный тревожный сигнал - обнаружение процессов dllhost.exe с использованием большого объёма оперативной памяти (около 2,5 ГБ) и подключения к пулу для майнинга Monero pool[.]hashvault[.]pro. Это указывает на то, что помимо кражи данных, злоумышленники могли использовать ресурсы заражённой машины для криптомайнинга. Тем не менее, встроенных строк, связанных с майнером, в изученном Go-файле не найдено, что позволяет предположить отдельную загрузку и инжекцию майнера через тот же механизм, что и основная нагрузка.

Механизм эксфильтрации также был детально восстановлен. Анализ показал, что Go-полезная нагрузка взаимодействует с сервисом Wormhole.app для организации защищённых комнат-сессий. Процесс включал создание комнаты, получение токена авторизации и динамического URL для загрузки архива на Backblaze B2. Альтернативным путём выявлена загрузка на Gofile.io - в песочнице Triage зафиксирована передача 846 691 байта на store-eu-par-5.gofile.io. Автор инцидента подчёркивает, что не может однозначно утверждать, были ли украдены и загружены данные с его конкретной машины, поскольку локальные журналы межсетевого экрана и DNS-клиента не были включены. Однако доступ к данным был: на компьютере жертвы в браузере Edge хранилось 427 сохранённых логинов, в Firefox - 208, а также имелись обширные базы cookie, история просмотров и данные приложений.

Для закрепления в системе использовалась запись в реестре HKCU\...\Run с именем "Microsoft Display Driver Manager", запускающая Python-скрипт exec.py. После удаления этой записи и завершения процессов инфекция не проявляла себя вновь, но Go-нагрузка содержит код для создания задач по расписанию и перезапуска, что делает полное удаление сложной задачей.

Инцидент пересекается с публичными отчётами об угрозе Akira Stealer, а также с цепочками заражения, описанными в исследованиях Contagious Interview (Abstract Security, VS Code / Cursor). Тем не менее, точная атрибуция группировке остаётся неопределённой. Основные выводы для пользователей: любой непроверенный код из ненадёжных источников, даже в виде мода для игры, может привести к полной компрометации системы. Регулярное резервирование данных, включение детального логирования сетевой активности и немедленная реакция на подозрительные процессы - единственные способы минимизировать ущерб от подобных атак, которые становятся всё более изощрёнными и многоступенчатыми.

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

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