更新版Shadowpad恶意软件导致勒索软件部署
关键发现
- 欧洲最近两起事件响应案例涉及Shadowpad,这是一个与多个中国威胁行为体相关的恶意软件家族。我们的研究表明,该恶意软件家族在过去7个月内至少针对了15个国家的21家公司,覆盖欧洲、中东、亚洲和南美洲。
- 异常的是,在某些事件中,威胁行为体部署了未报告的勒索软件家族。
- 威胁行为体通过远程网络攻击获得访问权限,利用弱密码并绕过多因素认证机制。
事件概述
2024年11月,我们在欧洲处理了两起事件响应案例,具有相似的C&C服务器和其他TTP(战术、技术和程序),表明背后是同一威胁行为体。两起事件都涉及Shadowpad,这是一个被多个高级中国威胁行为体用于进行间谍活动的恶意软件家族。
通过追踪类似TTP,我们发现在过去7个月中,共有21家公司成为类似恶意软件工具包的目标。其中9家在欧洲,8家在亚洲,3家在中东,1家在南美洲。受影响行业达八个,超过一半的目标属于制造业。详细信息见受害者分析部分。
在两起案例中,威胁行为体部署了先前未报告的勒索软件家族。这对使用Shadowpad的威胁行为体来说是不常见的举动,尽管有报道称APT41曾使用Encryptor RaaS。我们不清楚为何该威胁行为体仅对部分目标部署勒索软件。
感染向量
在两起调查的事件中,威胁行为体最初通过远程网络攻击入侵目标。他们使用弱密码的管理员账户连接到VPN后访问了受害者的网络。在一起案例中,威胁行为体通过未知手段绕过了基于证书的多因素认证机制,可能是在入侵前获取了有效证书。另一起案例中没有多因素认证,且有暴力破解攻击的痕迹,但我们无法确认这与威胁行为体的成功连接有关。
获得内部网络访问权限并拥有管理员权限后,威胁行为体部署了Shadowpad恶意软件,有时在域控制器中部署。
了解这种级别行为体的更新方法和目标定位对于可能认为自己是此类对手目标的公司至关重要。鉴于勒索软件的使用以及可能的知识产权盗窃兴趣,我们建议制造业特别是利用其安全平台提供商扫描此活动的指标。
受害者分析
我们发现21家公司成为该威胁行为体的目标,分布在15个不同国家和9个不同行业。
图1. 目标国家地图
[下载]
受影响行业 | 目标数量 |
---|---|
制造业 | 11 |
交通运输 | 2 |
出版业 | 2 |
能源 | 1 |
制药 | 1 |
银行业 | 1 |
矿业 | 1 |
教育 | 1 |
娱乐 | 1 |
我们不清楚威胁行为体的最终目标。然而,部分目标可能与知识产权盗窃有关。此外,我们知道一些案例中威胁行为体部署了勒索软件家族。在两起事件中,我们观察到Active Directory信息转储和RAR归档文件的创建,随后被删除。
恶意软件工具包
Shadowpad
Shadowpad是一个模块化恶意软件家族,2017年在针对NetSarang软件的供应链攻击中发现。它曾被归因于中国威胁行为体APT41,后在2019年被多个中国威胁行为体共享。我们监控了多个与APT41相关的组织,如Earth Baku、Earth Longzhi、Earth Freybug。
它具有典型的间谍功能插件,如键盘记录、屏幕截图抓取和文件检索。代码通过自定义算法混淆,仅在内存中解码。混淆在2020年底发生了重大变化,Earth Lusca是我们看到使用此类版本的第一个组织。2022年2月,该第二版本的混淆略有更新。Mandiant最近发布了关于此类混淆及如何规避的详细博客文章。
本案例中的版本类似于2022年2月版本,但具有一些迄今未报告的附加功能:
- 简单且知名的反调试技术,防止恶意软件被正常调试(更多细节见下文专用部分)
- 使用卷序列号(对受害者机器唯一)加密注册表中的Shadowpad有效负载
- 配置格式及其解析更改,但内容保持不变(见下文部分)
- 使用DNS over HTTPS(DoH),导致网络连接监控更困难。我们不再看到解析C&C域名的请求,仅看到连接到与该域名相关的IP地址
虽然这些功能不是恶意软件本身的重大增强,但它们表明恶意软件正在积极开发,且其开发人员愿意使恶意软件分析更困难。我们不知道该威胁行为体是否是唯一使用此增强版Shadowpad的组织。我们于2023年11月首次遇到它 targeting 印度的关键基础设施,当时无法归因该样本。
通常,Shadowpad分为三个不同的文件:
- 易受DLL侧加载攻击的合法签名可执行文件
- 滥用上述漏洞的恶意DLL,用于解码并在内存中加载有效负载
- 包含编码的Shadowpad有效负载的二进制文件
一旦DLL解码并在内存中加载Shadowpad有效负载,它会使用从卷序列号派生的密钥再次在注册表中编码,并从文件系统中删除二进制文件。这防止无法访问受害者注册表或RAM的研究人员检索最终有效负载,尤其是包含C&C的配置文件。
在调查过程中,我们注意到以下合法文件被滥用:请注意,截至此时,大多数这些文件已有数年历史:
SHA256 | 合法文件名 | 侧加载DLL | 签名者 | 签名日期 |
---|---|---|---|---|
9df4624f815d9b04d31d9b156f7debfd450718336eb0b75100d02cb45d47bd9a | SentinelMemoryScanner.exe | SentinelAgentCore.dll | SentinelOne Inc. | 2023-07-30 |
28d78e52420906794e4059a603fa9f22d5d6e4479d91e9046a97318c83998679 | Logger.exe | logexts.dll | Microsoft Corporation | 2010-02-01 |
bdf019bc6cfb239f0beae4275246216cd8ae8116695657a324497ec96e538aac | nvAppBar.exe | nView64.dll | NVIDIA Corporation | 2016-01-06 |
41128b82fa12379034b3c42bdecf8e3b435089f19a5d57726a2a784c25e9d91f | FmApp.exe | FmApp.dll | Fortemedia Inc. | 2015-10-22 |
c8268641aecad7bd32d20432da49bb8bfc9fe7391b92b5b06352e7f4c93bc19e | U3BoostSvr64.exe | ASUSTeK Computer Inc. | 2013-05-10 | |
e06710652fa3c8b45fd0fece3b59e7614ad59a9bc0c570f4721aee3293ecd2d1 | syncappw.exe | syncapp.dll | Botkind, Inc. | 2013-07-02 |
f4e8841a14aa38352692340729c3ed6909d7521dd777518f12b8bd2d15ea00c5 | EPSDNLMW32.EXE | SEIKO EPSON CORPORATION | 2021-09-28 | |
aa1233393dded792b74e334c50849c477c4b86838b32ef45d6ab0dc36b4511e3 | RoboTaskBarIcon.exe | roboform-x64.dll | Siber Systems | 2023-12-05 |
反调试
开发人员实施了多种技术来检测恶意软件的调试。虽然这些技术是知名的,但Shadowpad代码高度混淆使它们更难以发现。
技术如下:
- 检查进程环境块(PEB)的第三个字节(如果进程正在被调试则为1,否则为0)
- 检查PEB的NtGlobalFlag字段值。如果进程由调试器创建,其值将为0x70,否则为零
- 在两个不同时刻检索CPU周期数并比较两者之间的差异。如果经过的周期数大于开发人员固定的值,恶意软件认为正在被调试。此技术通过两次调用RDTSC指令并将周期数与10000000比较来执行
- 通过两次在不同位置调用GetTickCount Windows API检索自系统启动以来经过的毫秒数,并将差异与开发人员固定的值(本例中为3000)比较
- 通过GetThreadContext Windows API检索当前线程的上下文并检查是否设置了任何调试寄存器
- 通过调用NtQueryInformationProcess Windows API检查ProcessDebugPort字段的值,当进程被调试时等于0xffffffff
如果任何这些检查导致调试器检测,恶意软件终止自身。其中一些技术在DLL加载器、有效负载或两者中实施。
配置
与我们在2023年7月讨论的结构相比,配置的结构发生了变化。
图2. 配置文件结构
[下载]
开头仍然有一个4字节的配置头(红色突出显示)。 现在,每个项目都有一个三字节标识符(黄色突出显示)和一个一字节类型(绿色突出显示)。 我们确定了以下类型:
项目类型 | 描述 |
---|---|
0x1 | 一字节值 |
0x2 | 两字节值 |
0x3 | 四字节值 |
0x5 | 加密位流 |
0x6 | 加密字符串 |
如果是加密字符串或位流,项目后跟4字节长度(粉色突出显示)和加密数据本身(蓝色突出显示)。 还有包含值的项目,要么是一字节(橙色突出显示)、2字节、4字节(棕色突出显示)。 我们确定了以下ID:
ID | 描述 |
---|---|
0x10300 | 互斥体名称 |
0x10400 | “campaign note” |
0x30100 | 服务名称 |
0x30200 | 服务显示名称 |
0x30300 | 服务描述 |
0x30400 | 用于持久性的注册表键 |
0x30500 | 用于持久性的注册表键值 |
0x40100 | 到0x40103启动时运行的进程路径 |
0x40200 | 侧加载DLL名称 |
0x40300 | 到0x40303代码注入的进程路径 |
0x40500 | 到0x40503 C&C |
0x40700 | 到0x40701 DNS服务器 |
0x40800 | 到0x40806 C&C通信的HTTP头 |
勒索软件
我们发现了一个未报告的勒索软件家族,我们认为与该威胁行为体相关。尽管有报道称APT41在过去部署了Encryptor RaaS勒索软件,但被描述为不常见,且我们未看到任何其他威胁行为体使用如Shadowpad这样的高级恶意软件部署勒索软件。
与Shadowpad类似,加载机制涉及三个文件:
- 由北京火绒网络科技有限公司签名的合法usysdiag.exe文件
- 被usysdiag.exe侧加载的恶意sensapi.dll
- 名为usysdiag.dat的编码有效负载
一旦在内存中加载,恶意软件加密受影响系统上的所有文件,以下除外:
- 具有以下扩展名的文件:.EXE、.DLL和.SYS
- 以下文件夹中的文件:Windows、Program Files、Program files (x86)、ProgramData、AppData和Application Data
对于每个加密文件,勒索软件生成一个随机的32字节AES密钥用于加密文件。密钥然后与0x3F进行XOR操作,并使用样本中硬编码的公钥RSA加密。生成的加密blob附加到加密文件,意味着拥有私钥RSA的人可以解密blob以检索AES加密密钥并解密文件。
每个加密文件被重命名为.locked扩展名。 然后一个HTML文件以以下名称之一被放入每个包含加密文件的目录:
- locked.html
- unlock_please_view_this_file.html
- unlock_please_view_this_file_unlock_please_view_this_file_unlock_please_view_this_file_unlock_please_view_this_file_unlock_please_view_this_file_unlock_please_view_this_file_unlock_please.html
图3. 勒索说明内容
[下载]
HTML文件包含一个引用销售Kodex Evil Extractor工具的网站,该工具包含一个过去报道过的勒索软件功能。勒索说明与Evil Extractor文档中显示的相同。
然而,Evil Extractor文档中的算法描述与我们观察到的完全不符。
图4. Evil Extractor文档文本
[下载]
我们还在VirusTotal中找到了两个不同的Evil Extractor样本,验证了它们丢弃了具有相同外观的HTML文件,并确认行为与我们的恶意软件完全不同。它实际上匹配了Kodex文档描述的内容。
因此,我们认为威胁行为体复制了Kodex勒索软件HTML文件结构,以误导分析人员相信这是Kodex勒索软件,而我们分析的勒索软件家族完全不同。
无论攻击者的意图如何,攻击的这一部分并不盈利:我们注意到在这些勒索说明中发现的任何加密货币地址都没有交易。这表明没有受害者实际支付赎金。
后期利用工具
CQHashDumpv2
在两起案例中,我们看到Shadowpad运行一个名为cq.exe的文件,带有–samdump参数。我们发现该文件是CQTools的一部分,这是一个在2019年BlackHat由CQure介绍的渗透测试工具包。
图5. BlackHat论文中CQHashDumpv2.exe的文档
[下载]
Impacket
Impacket是一个用于处理网络协议的Python类集合。我们注意到使用Impacket工具包中的WmiExec连接到远程主机。
转储Active Directory数据库
虽然我们没有证据表明使用了哪种工具(可能是NTDSUtil),但威胁行为体创建了名为aaaa.dit的文件,可能包含Active Directory数据库内容,然后可用于离线密码破解。
基础设施
在我们进行的两起事件响应调查中,只有一个域名被Shadowpad用作C&C服务器。对于我们发现的所有其他Shadowpad加载器,我们无法检索相关的编码有效负载,因此也无法获取相关的C&C信息。
该域名是updata.dsqurey[.]com。通过基础设施透视,我们能够识别更多IP地址。我们找到了3个额外的域名,如果计算子域名则多达10个。
其中一些域名链接到其他Shadowpad样本,并链接到一篇提到与我们观察到的类似TTP的博客文章,加强了它们与该威胁行为体相关的信念。
这些域名在IOC部分列出。
归因
我们没有找到足够强的证据将此活动与旧操作或已知威胁行为体联系起来。我们找到了两个低置信度链接指向Teleboyi威胁行为体,我们将在下面解释。
PlugX代码重叠
PlugX是一个至少自2008年存在的恶意软件家族,通常在定向攻击中被中国威胁行为体使用,尽管随着时间的推移其使用扩展到更广泛的攻击类型。据信Shadowpad是PlugX的继任者。
我们在Virus Total中找到了一个连接到bcs[.]dsqurey[.]com域名的PlugX样本。与此案例相关的一个Shadowpad样本连接到updata[.]dsqurey[.]com。
PlugX样本使用自定义算法进行字符串解密。
在JSAC演示(幻灯片27)中,TeamT5将TeleBoyi自定义PlugX加载器描述为使用类似算法进行字符串解密。TeamT5还将“Operation Harvest”列为与Teleboyi相关。Operation Harvest博客文章中列出的McUtil.dll PlugX加载器(SHA-256: f50de0fae860a5fd780d953a8af07450661458646293bfd0fed81a1ff9eb4498)显示了类似的字符串解密算法。另一个相似之处是PlugX样本的PE图标,它是TeamT5列出的图标的一部分。基于所有这些发现,我们以高置信度评估该PlugX样本属于Teleboyi。
然而,我们发现dsqurey[.]com域名最初于2018年3月27日注册,于2022年3月底过期,并于2022年6月23日重新注册。我们不知道是否是同一威胁行为体收回了他的域名,或者是由不同的威胁行为体注册。我们认为此与Teleboyi的链接较弱。
基础设施重叠
2024年1月,108.61.163[.]91解析到dscriy.chtq[.]net,一个我们链接到此威胁行为体的域名。
2022年5月,它解析到sery.brushupdata[.]com,一个在Operation Harvest中列出的域名。
我们认为此与Teleboyi的链接较弱,因为两次解析之间有一年半的时间。
致谢
感谢我们的欧洲事件响应和APT-OPS团队以及Fernando Mercês在此调查中的帮助。
感谢Orange Cyberdefense CERT提供关于勒索软件家族的信息。
Trend Vision One™
Trend Vision One™是一个企业网络安全平台,通过整合多个安全功能,实现对