ESET 研究人员对先前未公开的与中国结盟的威胁行为者(我们将其命名为 Blackwood)进行的攻击进行了分析,我们认为该攻击者至少自 2018 年以来一直在运作。攻击者通过对手提供了复杂的植入程序,我们将其命名为 NSPX30中间人 (AitM) 攻击劫持来自合法软件的更新请求。
这篇博文的要点:我们发现 NSPX30 植入程序是通过腾讯 QQ、WPS Office 和搜狗拼音等合法软件的更新机制部署的。我们在针对中国和日本公司以及针对中国、日本和英国个人的针对性攻击中检测到了该植入。我们的研究将 NSPX30 的演变追溯到 2005 年的一个小后门,我们将其命名为 Project Wood,旨在从受害者那里收集数据。NSPX30 是一个多级植入程序,包括多个组件,例如植入程序、安装程序、加载程序、协调器和后门。后两者都有自己的插件集。该植入程序是围绕攻击者进行数据包拦截的能力而设计的,使 NSPX30 运营商能够隐藏其基础设施。NSPX30 还能够将自己列入多个中国反恶意软件解决方案的允许名单中。我们将此活动归因于一个新的 APT 组织,我们将其命名为 Blackwood。
Blackwood简介
Blackwood 是一个与中国结盟的 APT 组织,至少自 2018 年以来一直活跃,从事针对中国和日本个人和公司的网络间谍活动。Blackwood 有能力进行中间对手攻击,通过合法软件更新来传递我们命名为 NSPX30 的植入程序,并通过拦截植入程序生成的流量来隐藏其命令和控制服务器的位置。
活动概览
2020 年在位于中国的目标系统上检测到恶意活动激增。该机器已成为我们通常所说的“威胁磁铁”,因为我们检测到攻击者尝试使用与不同 APT 组织相关的恶意软件工具包:Evasive Panda、LuoYu以及我们追踪的第三个威胁参与者 LittleBear。
在该系统上,我们还检测到不属于这三个组织的工具包的可疑文件。这促使我们开始研究一种名为 NSPX30 的植入物;我们能够将其演变一直追溯到 2005 年。
根据 ESET 遥测,在少数系统上检测到了该植入程序。受害者包括:
位于中国和日本的身份不明的个人,
一位身份不明的讲中文的人连接到英国一所知名公立研究型大学的网络,
中国一家大型制造和贸易公司,
一家日本工程和制造垂直公司在中国的办事处。
我们还观察到,如果访问丢失,攻击者会尝试重新破坏系统。
图 1 是根据 ESET 遥测数据显示的 Blackwood 目标的地理分布。
图 1. Blackwood 受害者的地理分布
NSPX30的演变
在我们对 NSPX30 植入物的研究过程中,我们将其进化映射到了一个早期祖先——一个简单的后门,我们将其命名为 Project Wood。我们能找到的最古老的 Project Wood 样本是在 2005 年编译的,它似乎已被用作创建多个植入程序的代码库。NSPX30 就是由这样一种植入物演变而来,其作者于 2008 年将其命名为 DCM。
图 2 根据我们对收集的样本和 ESET 遥测以及公共文档的分析,展示了这些发展的时间表。然而,此处记录的事件和数据仍然是对未知数量的威胁行为者近二十年的开发和恶意活动的不完整描述。
图 2. Project Wood、DCM 和 NSPX30 主要变体的时间表
在以下部分中,我们将描述有关 Project Wood、DCM 和 NSPX30 的一些发现。
Project Wood
这些植入程序演变的起点是 2005 年 1 月 9 日编译的一个小型后门,根据其两个组件(加载程序和后门)的 PE 标头中存在的时间戳。后者能够收集系统和网络信息,以及记录击键和截屏。
我们根据重复出现的互斥体名称将后门命名为 Project Wood,如图 3 所示。
图 3. 在大多数示例中具有重复主题的 Project Wood 代码
编译时间戳是不可靠的指标,因为它们可能被攻击者篡改;因此,在这种具体情况下,我们考虑了额外的数据点。首先,加载器和后门样本的 PE 标头的时间戳;参见表1。两个组件的编译时间仅相差17秒。
表 1. 2005 年样本组件中的 PE 编译时间样本
第二个数据点来自使用UPX压缩的滴管样本。该工具将其版本(图 4)插入到生成的压缩文件中 - 在本例中为 UPX 版本 1.24,该版本于 2003 年发布,早于示例的编译日期。
图 4. 滴管示例中带有工具版本的 UPX 字符串
第三个数据点是来自 PE 丰富标头的有效元数据(图 5),这表明该示例是使用1998 年发布的Visual Studio 6.0 编译的,早于该示例的编译日期。
图 5. 来自 dropper 示例的 PE 丰富标头
我们评估时间戳、丰富标头元数据和 UPX 版本不太可能全部被攻击者操纵。
公共文档
根据 SANS Institute 于 2011 年 9 月发表的一篇技术论文,一个未命名且未注明来源的后门(Project Wood)被用来通过鱼叉式网络钓鱼电子邮件针对来自香港的政治人物。
2014 年 10 月,G DATA 发布了一份名为“Operation TooHash”的活动报告,此后该活动被归咎于Gelsemium APT 组织。名为 DirectsX 的 Rootkit G DATA 加载了 Project Wood 后门的变体(见图 6),具有 DCM 和后来的 NSPX30 中看到的一些功能,例如将自身列入网络安全产品的许可名单(稍后在表 4 中详细介绍)。
图 6. Operation TooHash 的示例中也出现了重复出现的主题
DCM又名Dark Specter
早期的 Wood 项目作为多个项目的代码库;其中之一是作者称为 DCM 的植入物(见图 7)。
图 7. 在 DCM 植入中使用新互斥体名称的代码
腾讯 2016 年的报告描述了一种更成熟的 DCM 变体,该变体依赖攻击者的 AitM 功能,通过将 DCM 安装程序作为软件更新提供来危害受害者,并通过 DNS 请求向合法服务器泄露数据。我们上次观察到攻击中使用 DCM 是在 2018 年。
公共文档
DCM 于2012 年由中国江民公司首次记录,但当时尚未命名,后来于 2016 年被腾讯命名为 Dark Spectre 。
NSPX30
我们发现的最古老的 NSPX30 样本编译于 2018 年 6 月 6日。 NSPX30 的组件配置与 DCM 不同,因为它的操作分为两个阶段,完全依赖攻击者的 AitM 能力。DCM 的代码被分成更小的组件。
我们根据插件示例中找到的 PDB 路径命名植入程序:
Z:Workspacemm32NSPX30Pluginspluginb001.pdb
Z:WorkspaceCodeMMX30ProtrunkMMPluginshookdllReleasehookdll.pdb
我们认为 NSP 指的是其持久性技术:持久性加载程序 DLL,在磁盘上名为msnsp.dll,内部名为mynsp.dll(根据导出表数据),可能是因为它是作为 Winsock名称安装的配速提供商(NSP)。
最后,据我们所知,在此发布之前 NSPX30 尚未公开记录。
技术分析
使用 ESET 遥测技术,我们确定当合法软件尝试使用(未加密的)HTTP 协议从合法服务器下载更新时,计算机就会受到损害。被劫持的软件更新包括腾讯QQ、搜狗拼音、WPS Office等热门中文软件的更新。
图 8 显示了 ESET 遥测中的执行链图解。
图 8. 观察到的执行链的图示
在表 2 中,我们提供了下载时在用户系统上将域解析到的 URL 和 IP 地址的示例。
表 2. 观察到的合法下载程序组件的 URL、服务器 IP 地址和进程名称
根据 ESET 遥测和被动 DNS 信息,在其他案例中观察到的 IP 地址与合法软件公司的域相关联;我们在其中一些上注册了多达数百万个连接,并且我们已经看到从这些 IP 地址下载合法的软件组件。
网络植入猜想
我们仍然不知道攻击者究竟如何以恶意更新的形式提供 NSPX30,因为我们尚未发现使攻击者能够首先危害其目标的工具。
根据我们对表现出这些能力的与中国结盟的威胁行为者(Evasive Panda和TheWizards)的经验,以及最近对BlackTech和Camaro Dragon(又名Mustang Panda)的路由器植入的研究,我们推测攻击者正在部署受害者网络中的网络植入,可能是在路由器或网关等易受攻击的网络设备上。
我们没有发现通过 DNS 进行流量重定向的迹象,这一事实可能表明,当假设的网络植入程序拦截与更新相关的未加密 HTTP 流量时,它会以 DLL、可执行文件或 ZIP 存档的形式回复 NSPX30 植入程序的植入程序包含 DLL。
之前,我们提到 NSPX30 植入程序利用攻击者的数据包拦截功能来匿名化其 C&C 基础设施。在下面的小节中,我们将描述他们是如何做到这一点的。
HTTP拦截
为了下载后门,协调器使用伪装成 Windows 98 上的 Internet Explorer 的特殊用户代理向百度网站(一个合法的中国搜索引擎和软件提供商)执行 HTTP 请求(图 9)。来自服务器的响应被保存到从中提取后门组件并将其加载到内存中的文件。
图 9. 协调器发送的 HTTP 请求
Request -URI是自定义的,包含来自协调器和受感染系统的信息。在非拦截请求中,向合法服务器发出此类请求会返回 404 错误代码。后门使用类似的过程来下载插件,但使用略有不同的Request-URI。
网络植入只需使用特定的旧用户代理查找对www.baidu.com 的HTTP GET 请求,并分析请求 URI以确定必须发送哪些有效负载。
UDP拦截
在初始化过程中,后门会创建一个被动 UDP 侦听套接字,并让操作系统分配端口。使用被动后门的攻击者可能会遇到麻烦:例如,如果使用 NAT 的防火墙或路由器阻止来自网络外部的传入通信。此外,植入程序的控制器需要知道受感染机器的确切 IP 地址和端口才能联系后门。
我们认为,攻击者通过使用后门侦听命令的同一端口来泄露收集到的数据,从而解决了后一个问题,因此网络植入程序将确切地知道将数据包转发到哪里。默认情况下,数据泄露过程在创建套接字后开始,其中包括对microsoft.com域的 DNS 查询;收集到的数据被附加到 DNS 数据包中。图 10 显示了后门发送的第一个 DNS 查询的捕获。
图10.后门发送的DNS查询;收集到的信息以明文形式附加
第一个 DNS 查询发送到180.76.76[.]11:53(在撰写本文时,该服务器未公开任何 DNS 服务),对于以下每个查询,目标 IP 地址均更改为后续地址,如图 11 所示。
图11.后门发送的DNS消息;请注意,IP 地址随着每个请求而增加 1
180.76.76.0/24网络属于百度所有,有趣的是,这些IP地址上的一些服务器确实暴露了DNS服务,例如180.76.76.76,这是百度的公共DNS服务。
我们认为,当 DNS 查询数据包被拦截时,网络植入程序会将其转发到攻击者的服务器。植入程序可以通过组合多个值来创建指纹来轻松过滤数据包,例如:
目的IP地址
UDP 端口(我们观察到53、4499和8000),
匹配0xFEAD的 DNS 查询的事务 ID ,
域名,并且,
附加了无关数据的 DNS 查询。
最后的想法
使用攻击者的 AitM 能力拦截数据包是隐藏其 C&C 基础设施位置的巧妙方法。我们观察到位于中国境外(即日本和英国)的受害者,策划者能够针对他们部署后门。然后攻击者向后门发送命令以下载插件;例如,来自英国的受害者收到了两个旨在收集腾讯QQ信息和聊天记录的插件。因此,我们知道 AitM 系统已经就位并正在运行,我们必须假设渗透机制也是如此。
某些服务器(例如,在180.76.76.0/24网络中)似乎是任播的,这意味着世界各地可能有多个服务器来回复(合法的)传入请求。这表明网络拦截可能是在靠近目标的地方而不是靠近百度网络的地方进行的。来自中国 ISP 的拦截也不太可能,因为百度的部分网络基础设施位于中国境外,因此中国境外的受害者可能不会通过任何中国 ISP 来访问百度服务。
NSPX30
在以下部分中,我们将描述恶意软件执行的主要阶段。
阶段1
图 12 说明了合法组件加载恶意植入程序 DLL 并在磁盘上创建多个文件时的执行链。
图 12. 由释放器 DLL 启动的执行链
该植入程序执行RsStub.exe,这是中国反恶意软件产品瑞星杀毒软件的合法软件组件,该组件被滥用来旁加载恶意comx3.dll。
图 13 说明了该组件执行期间采取的主要步骤。
图 13. RsStub.exe加载恶意comx3.dll时启动的加载链
当RsStub.exe调用ExitProcess时,将执行 shellcode 中的加载函数,而不是合法的 API 函数代码。
加载程序从文件comx3.dll.txt中解密安装程序 DLL ;然后 shellcode 将安装程序 DLL 加载到内存中并调用其入口点。
安装程序动态链接库
安装程序使用来自开源实现的 UAC 旁路技术来创建新的提升进程。使用哪一种取决于几个条件,如表 3 所示。
表 3. 应用 UAC 旁路技术必须满足的主要条件和相应的子条件
这些条件验证了两个进程的存在:我们认为avp.exe是卡巴斯基反恶意软件的组件,rstray.exe是瑞星杀毒软件的组件。
安装程序尝试禁用 Windows Defender 提交示例,并为加载程序 DLL msnsp.dll添加排除规则。它通过 cmd.exe 执行两个 PowerShell 命令来实现此目的:
cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Set-MpPreference -SubmitSamplesConsent 0
cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath “C:Program Files (x86)Common Filesmicrosoft sharedTextConvmsnsp.dll”
然后,安装程序将持久加载程序 DLL 放入C:Program Files (x86)Common Filesmicrosoft sharedTextConvmsnsp.dll并使用 API WSCInstallNameSpace为其建立持久性,以将 DLL 安装为名为msnsp的Winsock 命名空间提供程序,如图14所示。
图 14. 安装恶意 Winsock 命名空间提供程序的代码
因此,只要进程使用 Winsock,DLL 就会自动加载。
最后,安装程序将加载程序 DLL mshlp.dll和加密的协调器 DLL WIN.cfg放入C:ProgramDataWindows。
第二阶段
此阶段从执行msnsp.dll开始。图 15 显示了第 2 阶段的加载链。
图 15. 系统加载恶意 Winsock 命名空间提供程序时启动的加载链
Orchestrator
图 16 说明了协调器执行的主要任务,其中包括获取后门和加载插件。
图 16. Orchestrator 组件的执行链及其主要任务
加载后,协调器会创建两个线程来执行其任务。
Orchestrator thread 1
Orchestrator 从磁盘中删除原始的 dropper 文件,并尝试从msfmtkl.dat加载后门。如果该文件不存在或无法打开,编排器将使用 Windows Internet API 打开与中国百度公司合法网站的连接,如前所述。
来自服务器的响应被保存到临时文件中,并经过验证过程;如果满足所有条件,文件内的加密有效负载将写入新文件并重命名为msfmtkl.dat。
使用加密的有效负载创建新文件后,编排器读取其内容并使用 RC4 解密有效负载。生成的 PE 被加载到内存中并执行其入口点。
Orchestrator thread 2
根据当前进程的名称,编排器执行多项操作,包括加载插件以及添加排除项以将三个中国反恶意软件产品的本地数据库中的加载程序 DLL 列入白名单。
表 4 描述了当进程名称与安全软件套件的名称匹配时所采取的操作,其中协调器可以将其加载程序列入白名单。
表 4. 在具有特定安全软件名称的进程中执行时的 Orchestrator 操作
表 5 描述了当进程名称与所选即时消息软件的名称匹配时所采取的操作。在这些情况下,协调器从磁盘加载插件。
表 5. 在具有特定即时消息传递软件名称的进程中执行时的 Ochestrator 操作
完成相应的动作后,线程返回。
Plugins group “c”
根据我们对 Orchestrator 代码的分析,我们了解到“c”组中至少可能存在六个插件,但目前我们只知道其中三个。
表 6 描述了已识别插件的基本功能。
表 6. “c”组插件的描述
后门
我们已经分享了有关后门基本目的的一些细节:与其控制器进行通信并窃取收集到的数据。与控制器的通信主要基于将插件配置数据写入名为license.dat的未加密文件,并从加载的插件调用功能。表 7 描述了后门处理的最相关命令。
表 7. 后门处理的一些命令的说明
插件组“a”和“b”
后门组件包含自己的嵌入式插件 DLL(参见表 8),这些插件会写入磁盘并为后门提供基本的间谍和信息收集功能。
表8. 后门中嵌入的插件组“a”和“b”的说明
结论
我们分析了一个名为 Blackwood 的威胁行为者的攻击和能力,该威胁行为者对来自中国、日本和英国的个人和公司进行了网络间谍活动。我们将 NSPX30(Blackwood 部署的定制植入程序)的演变映射到了一个我们命名为 Project Wood 的小型后门,一直追溯到 2005 年。
有趣的是,考虑到所实施的技术,2005 年的 Project Wood 植入似乎是具有恶意软件开发经验的开发人员的作品,这让我们相信我们尚未发现有关原始后门的更多历史。
如果对我们在 WeLiveSecurity 上发布的研究有任何疑问,请通过 Threatintel@eset.com联系我们。ESET Research 提供私人 APT 情报报告和数据源。有关此服务的任何疑问,请访问 ESET 威胁情报页面。
IOC
文件
网络
参考链接: https://www.welivesecurity.com/en/eset-research/nspx30-sophisticated-aitm-enabled-implant-evolving-since-2005/
图片来源网络目标可联系删除