Фейковый мод для 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). Тем не менее, точная атрибуция группировке остаётся неопределённой. Основные выводы для пользователей: любой непроверенный код из ненадёжных источников, даже в виде мода для игры, может привести к полной компрометации системы. Регулярное резервирование данных, включение детального логирования сетевой активности и немедленная реакция на подозрительные процессы - единственные способы минимизировать ущерб от подобных атак, которые становятся всё более изощрёнными и многоступенчатыми.

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

IPv4

  • 104.16.230.132
  • 104.21.92.55
  • 162.159.138.232
  • 172.67.186.209
  • 172.67.206.54
  • 185.199.109.133
  • 185.84.98.5
  • 185.84.98.85
  • 188.114.96.1
  • 195.154.100.106
  • 198.41.192.67
  • 198.41.192.7
  • 198.41.200.13
  • 208.94.117.187
  • 208.95.112.1
  • 51.159.107.119
  • 51.75.242.210
  • 94.139.32.9

Domain

  • api.gofile.io
  • api.trycloudflare.com
  • pool.hashvault.pro
  • probe.cftunnel.com
  • region1.v2.argotunnel.com
  • region2.v2.argotunnel.com
  • release-assets.githubusercontent.com
  • store9.gofile.io
  • store-eu-par-5.gofile.io
  • www.gyan.dev

URL

  • http://ip-api.com/json
  • https://cosmoplanets.net/.well-known/pki-validation/go/boing
  • https://nomgwenya.co.za/js/settings?win=25
  • https://postprocesser.com/.well-known/pki-validation/go/boing
  • https://postprocesser.com/.well-known/pki-validation/go/python3.zip
  • https://store-eu-par-1.gofile.io/contents/uploadfile
  • https://wormhole.app/api

WebSocket Secure

  • wss://wormhole.app/websocket

MD5

  • a5ffe2141e12dc1f7e0a844fa51bd0cc

SHA1

  • e3007dfeb3d3d0d7b232200af409af387f20441d

SHA256

  • 6d9379e365a4da282531d7f234c69eefa48567c01ba173b462e907a1ddfc71b2
  • 6ff4c76b33d43b6b7cc6714db30eb10ee4c2b79430f7b4accba04ab49b62be76
  • 861ae8b9a0e41a82e47dcc7b590a811ccdbbb4784e9c055628eba64584881499
  • c506e1a058e6d1ec3df90be91817619bc3bee8a7806e34e5c1d169f999347808
  • c792b19826be17faa3164c5a77d42dcc07002080b690c8527f73c1cf000880ea
  • edcce8f1da6ac154a0e4d6fa1b4dfa4f06122e77951ea4a54c0ba91a174c5ff2
  • fd022b5cde7c1b1dd0a2ece3fdd6876ee8de81596581b72d46b8432d05dbce27

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