Microsoft 威胁情报中心 (MSTIC) 和 Microsoft 安全响应中心 (MSRC )在针对欧洲和中美洲客户的有限且有针对性的攻击。PSOA(MSTIC 跟踪为 KNOTWEED)开发了名为 Subzero 的恶意软件,用于这些攻击。

此博客详细介绍了 Microsoft 对观察到的 KNOTWEED 活动以及用于针对我们客户的针对性攻击的相关恶意软件的分析。此信息将与我们的客户和行业合作伙伴共享,以改进对这些攻击的检测。鼓励客户加快部署 2022 年 7 月的 Microsoft 安全更新,以保护其系统免受使用 CVE-2022-22047 的攻击。Microsoft Defender Antivirus 和 Microsoft Defender for Endpoint 还实施了针对 KNOTWEED 的恶意软件和工具的检测。

微软也将其称为网络雇佣军的PSOA通过各种商业模式销售黑客工具或服务。这种类型的参与者的两种常见模型是访问即服务和黑客出租。在访问即服务中,参与者出售完整的端到端黑客工具,购买者可以在操作中使用这些工具,而 PSOA 不参与任何针对操作的目标或操作。在 hack-for-hire 中,购买者将详细信息提供给演员,然后演员进行有针对性的操作。根据观察到的攻击和新闻报道,MSTIC 认为 KNOTWEED 可能会融合这些模型:他们将 Subzero 恶意软件出售给第三方,但也观察到在某些攻击中使用 KNOTWEED 相关的基础设施,这表明他们有更直接的参与。

谁是 KNOTWEED?

KNOTWEED 是一家总部位于奥地利的 PSOA,名为 DSIRF。DSIRF网站[网络档案链接] 称,他们“为技术、零售、能源和金融领域的跨国公司”提供服务,并且他们拥有“一套收集和分析信息的高度复杂的技术。” 他们公开提供多项服务,包括“通过深入了解个人和实体来加强尽职调查和风险分析流程”“高度成熟的红队挑战贵公司最关键的资产”。


然而,多条 新闻 报道已将 DSIRF 与名为 Subzero 的恶意软件工具集的开发和尝试销售联系起来。MSTIC 发现 Subzero 恶意软件通过多种方法部署,包括 2021 年和 2022 年在 Windows 和 Adob​​e Reader 中的 0-day 攻击。作为我们对该恶意软件实用性调查的一部分,微软与 Subzero 受害者的通信显示,他们没有委托任何红队或渗透测试,并确认这是未经授权的恶意活动。迄今为止,观察到的受害者包括奥地利、英国和巴拿马等国家的律师事务所、银行和战略咨询公司。需要注意的是,一个国家/地区的目标识别并不一定意味着 DSIRF 客户居住在同一个国家/地区,因为国际定位很常见。

MSTIC 发现 DSIRF 与这些攻击中使用的漏洞和恶意软件之间存在多个链接。其中包括直接链接到 DSIRF 的恶意软件使用的命令和控制基础设施、在一次攻击中使用的与 DSIRF 相关的 GitHub 帐户、颁发给 DSIRF 的代码签名证书用于签署漏洞利用以及其他开源新闻报道将 Subzero 归因于 DSIRF。

观察到的演员活动

KNOTWEED 初始访问

MSTIC 发现 KNOTWEED 的 Subzero 恶意软件以多种方式部署。在随后的部分中,Subzero 的不同阶段由它们的 Microsoft Defender 检测名称来表示:Jumplump表示持久加载程序,Corelump表示主要恶意软件。

KNOTWEED 在 2022 年的利用

2022 年 5 月,MSTIC 发现一个 Adob​​e Reader 远程代码执行 (RCE) 和一个 0-day Windows 权限提升利用链被用于导致部署 Subzero 的攻击。这些漏洞被打包成一个 PDF 文档,通过电子邮件发送给受害者。微软无法获得漏洞利用链的 PDF 或 Adob​​e Reader RCE 部分,但受害者的 Adob​​e Reader 版本于 2022 年 1 月发布,这意味着使用的漏洞利用要么是 1 月至 5 月开发的 1 天漏洞利用,要么是0天漏洞利用。基于 KNOTWEED 对其他 0-day 漏洞的广泛使用,我们以中等信心评估 Adob​​e Reader RCE 是一个 0-day 漏洞利用。MSRC 分析了 Windows 漏洞利用,发现它是一个 0-day 漏洞利用,然后在 2022 年 7 月修补为 CVE-2022-22047。有趣的是,

CVE-2022-22047 漏洞与Windows 上客户端服务器运行时子系统 (CSRSS) 中的激活上下文缓存问题有关。在较高级别,该漏洞可能使攻击者能够提供精心制作的程序集清单,这将在激活上下文缓存中为任意进程创建恶意激活上下文。这个缓存的上下文会在下一次进程产生时使用。

CVE-2022-22047 被用于 KNOTWEED 相关的权限提升攻击。该漏洞还提供了逃避沙箱的能力(有一些警告,如下所述)并实现系统级代码执行。漏洞利用链首先从沙盒 Adob​​e Reader 渲染器进程将恶意 DLL 写入磁盘。然后,CVE-2022-22047 漏洞利用通过提供具有未记录属性的应用程序清单来针对系统进程,该属性指定了恶意 DLL 的路径。然后,下一次产生系统进程时,使用恶意激活上下文中的属性,从给定路径加载恶意DLL,实现系统级代码执行。

需要注意的是,利用 CVE-2022-22047 需要攻击者能够将 DLL 写入磁盘。然而,在沙盒的威胁模型中,例如 Adob​​e Reader 和 Chromium,在攻击者无法控制路径的情况下写出文件的能力并不被认为是危险的。因此,这些沙盒并不是利用 CVE-2022-22047 的障碍。

KNOTWEED 在 2021 年的利用

2021 年,MSRC 收到报告称两个 Windows 提权漏洞(CVE-2021-31199CVE-2021-31201)与 Adob​​e Reader 漏洞(CVE-2021-28550)一起使用,所有这些漏洞都在 6 月修补2021. MSTIC 能够确认在用于部署 Subzero 的漏洞链中使用了这些。

我们后来能够将 Subzero 的部署与第四个漏洞相关联,该漏洞与 Windows Update Medic 服务 ( CVE-2021-36948 ) 中的 Windows 提权漏洞有关,该漏洞允许攻击者强制服务加载任意签名的动态链接库。攻击中使用的恶意 DLL 由“DSIRF GmbH”签名。

图 1. DSIRF 对 Medic Service 漏洞利用 DLL 的有效数字签名

恶意 Excel 文档

除了漏洞利用链,导致部署 Subzero 的另一种访问方法是伪装成房地产文档的 Excel 文件。该文件包含一个恶意宏,该宏被来自 Kama Sutra 的大量良性评论、字符串混淆和 Excel 4.0 宏的使用所混淆。

图 2:KNOTWEED Excel 宏混淆的两个示例

在运行时对字符串进行去混淆处理后,VBA 宏使用ExecuteExcel4Macro函数调用本机 Win32 函数以将 shellcode 加载到使用VirtualAlloc分配的内存中。在调用 CreateThread执行 shellcode之前,使用memset将每个操作码单独复制到新分配的缓冲区中。

图 3:复制操作码

图 4:在 shellcode 上调用 CreateThread

以下部分描述了宏执行的 shellcode。

KNOTWEED 恶意软件和策略、技术和程序 (TTP)

Corelump 下载器和加载器 shellcode

下载器 shellcode 是从漏洞利用链或恶意 Excel 文档执行的初始 shellcode。shellcode 的目的是从参与者的命令和控制 (C2) 服务器中检索Corelump第二阶段恶意软件。下载器 shellcode 下载 JPEG 图像,该图像包含附加到文件末尾的额外加密数据(经过表示 JPEG 文件结尾的0xFF 0xD9标记)。然后将 JPEG 写入用户的%TEMP%目录。

图 5:嵌入了加载器 shellcode 和 Corelump 的图像之一

下载器 shellcode 搜索紧跟 JPEG 结尾的 16 字节标记。找到标记后,下载器 shellcode RC4 使用接下来的 16 个字节作为 RC4 密钥解密加载器 shellcode。最后,加载器 shellcode RC4 使用第二个 RC4 密钥解密Corelump恶意软件,并将其手动加载到内存中。

Corelump 恶意软件

Corelump是主要的有效载荷,专门驻留在内存中以逃避检测。它包含多种功能,包括键盘记录、捕获屏幕截图、泄露文件、运行远程 shell 以及运行从 KNOTWEED 的 C2 服务器下载的任意插件。

作为安装的一部分,Corelump会复制合法的 Windows DLL 并用恶意代码覆盖其中的部分。作为此过程的一部分,Corelump还修改了 PE 标头中的字段以适应恶意更改,例如添加新的导出函数、禁用Control Flow Guard以及使用来自CheckSumMappedFile 的计算值修改图像文件校验和。这些木马化的二进制文件 ( Jumplump ) 被放到磁盘的C:\Windows\System32\spool\drivers\color\中,并且修改了 COM 注册表项以保持持久性(有关 COM 劫持的更多信息,请参阅行为部分)。

Jumplump装载机

Jumplump负责将Corelump从 %TEMP% 目录中的 JPEG 文件加载到内存中。如果Corelump不存在,Jumplump 会尝试从 C2 服务器再次下载它。Jumplump和下载shellcode 都被严重混淆,使分析变得困难,大多数指令后跟一个 jmp 到另一个指令/jmp 组合,在整个程序中提供了一个复杂的控制流。

图 6:反汇编显示 Jumplump 中使用的 jmp/指令混淆

墨西哥和 PassLib

还使用定制的实用工具 Mex 和 PassLib 观察了 KNOTWEED。这些工具由 KNOTWEED 开发,并具有源自公开来源的功能。例如,Mex 是一个命令行工具,其中包含从 GitHub 复制的几个红队或安全插件(如下所列):

PassLib 是一个自定义密码窃取工具,能够从各种来源转储凭据,包括 Web 浏览器、电子邮件客户端、LSASS、LSA 机密和 Windows 凭据管理器。

妥协后行动

在使用 KNOTWEED 恶意软件的受害者中,观察到了各种攻击后行为:

  • UseLogonCredential设置为“1”以启用明文凭据:
  • 注册添加 HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
  • 通过comsvc​​s.dll转储凭证:
  • rundll32.exe C:\Windows\System32\comsvc​​s.dll, MiniDump
  • 尝试使用来自 KNOTWEED IP 地址的转储凭据访问电子邮件
  • 使用 Curl 从公共文件共享(例如vultrobjects[.]com)下载 KNOTWEED 工具
  • 直接从与 DSIRF 关联的帐户创建的 GitHub gist 运行 PowerShell 脚本

KNOTWEED 基础设施连接到 DSIRF

以 MSTIC 识别的已知命令和控制域acrobatrelay[.]com为中心,RiskIQ 扩展了 KNOTWEED 攻击基础设施的视野。利用 SSL 证书和特定于该组并与该域相关联的其他网络指纹使用的独特模式,RiskIQ 确定了 KNOTWEED 控制下的大量额外 IP 地址。该基础设施主要由 Digital Ocean 和 Choopa 托管,至少自 2020 年 2 月以来一直在积极为恶意软件提供服务,并一直持续到撰写本文时。

RiskIQ 接下来利用被动 DNS 数据来确定这些 IP 在恶意时解析到哪些域。这个过程产生了几个直接链接到 DSIRF 的域,包括demo3[.]dsirf[.]eu(公司自己的网站),以及几个似乎已用于恶意软件开发的子域,包括debugmex[.]dsirflabs[.] eu(可能是用于使用定制实用工具 Mex 调试恶意软件的服务器)和szstaging[.]dsirflabs[.]eu(可能是用于暂存 Subzero 恶意软件的服务器)。

检测与预防

Microsoft 将继续监控 KNOTWEED 活动并为我们的客户实施保护措施。下面详述的当前检测和 IOC 已到位,并通过我们的安全产品保护 Microsoft 客户。下面还提供了其他高级搜索查询,以帮助组织扩展对这些攻击的保护和调查。

行为

CorelumpJumplump加载程序 DLL 放到C:\Windows\System32\spool\drivers\color\。这是恶意软件以及一些合法程序使用的常用目录,因此应监视 PE 文件到该文件夹​​的写入。

Jumplump使用 COM 劫持实现持久性,修改 COM 注册表项以指向C:\Windows\System32\spool\drivers\color\中的Jumplump DLL 。应监视对默认系统 CLSID 值的修改以检测此技术(例如,HKLM\SOFTWARE\Classes\CLSID\{GUID}\InProcServer32 默认值)。下面列出了Jumplump使用的五个 CLSID及其在 Windows 11 上的原始干净值:

  • {ddc05a5a-351a-4e06-8eaf-54ec1bc2dcea} = “ %SystemRoot%\System32\ApplicationFrame.dll ”
  • {1f486a52-3cb1-48fd-8f50-b8dc300d9f9d} = “ %SystemRoot%\system32\propsys.dll ”
  • {4590f811-1d3a-11d0-891f-00aa004b2e24} = “ %SystemRoot%\system32\wbem\wbemprox.dll ”
  • {4de225bf-cf59-4cfc-85f7-68b90f185355} = “ %SystemRoot%\system32\wbem\wmiprvsd.dll ”
  • {F56F6FDD-AA9D-4618-A949-C1B91AF43B1A} = “ %SystemRoot%\System32\Actioncenter.dll ”

可以根据命令行检测到许多妥协后操作。客户应监控可能的恶意活动,例如 PowerShell 从 Internet 位置执行脚本、修改经常滥用的注册表项(例如HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest)以及通过小型转储转储 LSASS 凭证。

建议的客户操作

参与者使用并在观察到的参与者活动部分中描述的技术可以通过采用下面提供的安全考虑来缓解:

  • 所有客户都应优先修补CVE-2022-22047
  • 确认 Microsoft Defender Antivirus 已更新至安全智能更新1.371.503.0或更高版本,以检测相关指标。
  • 使用包含的入侵指标来调查它们是否存在于您的环境中并评估潜在的入侵。
  • 更改 Excel 宏安全设置以控制运行哪些宏以及在什么情况下打开工作簿。客户还可以通过确保反恶意软件扫描接口 ( AMSI ) 的运行时宏扫描处于打开状态来阻止恶意 XLM 或 VBA 宏。如果宏运行时扫描范围的组策略设置设置为“对所有文件启用”或“对低信任文件启用”,则此功能(默认启用)处于启用状态。
  • 启用多因素身份验证 (MFA) 以减轻可能受到破坏的凭据,并确保对所有远程连接强制执行 MFA。注意: Microsoft 强烈建议所有客户下载并使用Microsoft Authenticator等无密码解决方案来保护帐户。
  • 查看远程访问基础架构的所有身份验证活动,特别关注配置了单因素身份验证的帐户,以确认真实性并调查任何异常活动。

检测

Microsoft Defender 防病毒软件

Microsoft Defender 防病毒软件检测 KNOTWEED 使用的恶意软件工具和植入物,从签名版本 1.371.503.0开始,其名称如下:

  • 后门:O97M/JumplumpDropper
  • 木马:Win32/Jumpump
  • 木马:Win32/Corelump
  • 黑客工具:Win32/Mexlib
  • 木马:Win32/Medcerc
  • 行为:Win32/SuspModuleLoad

用于终结点的 Microsoft Defender

Microsoft Defender for Endpoint 客户可能会看到以下警报,表明可能存在攻击。这些警报不一定表明 KNOTWEED 受到威胁:

  • COM 劫持– 检测多种行为,包括JumpLump恶意软件持久性技术。
  • 使用 CTF 模块进行可能的权限提升 - 检测与 CVE-2022-2204 相关的可能的权限提升行为;还检测通过启动提升的进程并加载不受信任的模块以执行恶意活动来执行本地权限提升的尝试
  • 检测到 KNOTWEED 演员活动– 检测 KNOTWEED 演员活动
  • WDigest 配置更改- 检测可能从UseLogonCredential注册表项更改中检索明文密码
  • 敏感凭证内存读取– 通过小型转储检测 LSASS 凭证转储
  • 可疑的 Curl 行为- 检测到使用 Curl 从公共文件共享下载 KNOTWEED 工具
  • 可疑的屏幕捕获活动- 检测Corelump捕获受感染系统屏幕截图的行为