摩诃草(APT-Q-36)利用 WebSocket 的新木马 StreamSpy 分析
嗯,用户让我帮忙总结一篇文章的内容,控制在一百个字以内,而且不需要用“文章内容总结”这样的开头。首先,我得仔细阅读这篇文章,理解它的主要内容。 文章主要讲的是摩诃草组织的StreamSpy木马。这个组织被怀疑来自南亚,活跃了十多年,主要针对亚洲的政府、军事等机构进行网络间谍活动。最近他们发现了一种新的木马StreamSpy,它使用WebSocket和HTTP协议来通信,还和之前用的Spyder下载器有相似之处。 接下来,文章详细分析了StreamSpy的样本信息、初始化、信息收集、持久化以及C&C通信机制。木马通过伪装成PDF文件诱骗用户运行,收集设备信息,并通过WebSocket和HTTP进行指令传输和文件操作。新版本增加了“cache”接口用于下载载荷。 最后,文章还关联了其他恶意软件样本,指出摩诃草组织和其他攻击团伙之间可能存在资源共享的情况。防护建议主要是提醒用户防范钓鱼攻击和恶意文件。 所以,总结的时候要涵盖StreamSpy木马的功能、摩诃草组织的背景以及关联到其他恶意软件的情况。控制在100字以内的话,需要简洁明了地表达这些要点。 </think> 摩诃草组织开发的StreamSpy木马通过WebSocket和HTTP协议与C2服务器通信,伪装成PDF文件诱骗用户运行,并具备远程命令执行、文件上传下载等功能。该木马与摩诃草组织此前使用的Spyder下载器及肚脑虫组织样本存在关联。 2025-12-3 03:11:26 Author: www.freebuf.com(查看原文) 阅读量:4 收藏

一、团伙背景

摩诃草,又名 Patchwork、白象、Hangover、Dropping Elephant 等,奇安信内部跟踪编号 APT-Q-36。该组织被普遍认为具有南亚地区背景,其最早攻击活动可追溯到 2009 年 11 月,已持续活跃 10 余年。该组织主要针对亚洲地区的国家进行网络间谍活动,攻击目标包括政府、军事、电力、工业、科研教育、外交和经济等领域的组织机构。

二、事件概述

奇安信威胁情报中心近期发现一种与摩诃草组织有关的木马,该木马与远程服务器通信采用 WebSocket 和 HTTP 协议相结合的方式,建立 WebSocket 连接的服务器接口带有"stream"字符串,木马获取指令与回传操作结果均在该 WebSocket 通道中进行,而用 HTTP 完成一些诸如文件传输之类的操作。我们还发现这种木马与摩诃草使用的 Spyder 下载器有一些相似性,根据以上特点我们将该木马命名为 StreamSpy。

三、详细分析

相关样本信息如下:

MD5文件名说明
1c335be51fc637b50d41533f3bef2251OPS-VII-SIR.zip包含 StreamSpy 木马的 zip 文件
f78fd7e4d92743ef6026de98291e8deeAnnexure.exeStreamSpy 木马,版本 1.0.0.1
e0ac399cff3069104623cc38395bd946List of officials nominated for rewards 2025-2026.zip包含 StreamSpy 木马的 zip 文件
c3c277cca23f3753721435da80cad1eaList of officials nominated for rewards 2025-2026.exeStreamSpy 木马,版本 1.0.0.2
e4a7a85feff6364772cf1d12d8153a69-StreamSpy 木马,版本 1.0.0.2

目前发现的 1.0.0.2 版本的 StreamSpy 木马相比 1.0.0.1 版本变化不大,下面将以 1.0.0.1 版本 StreamSpy 木马为例展开分析。

压缩包 OPS-VII-SIR.zip 的下载链接为"hxxps://firebasescloudemail[.]com/reports/OPS-VII-SIR.zip",该压缩包中有两个 PDF 文件和一个用 PDF 图标伪装的 EXE 文件,后者就是 StreamSpy 木马本身,诱使受害者不加分辨地运行恶意程序。

1764730884_692fa8049129429d1991e.png!small?1764730884995

(一)初始化

木马首先从资源区解密出配置数据。

1764730890_692fa80ad5e07f8105ad0.png!small?17647308914741764730896_692fa810e2b2b3a84ee44.png!small?1764730897497

解密出的配置数据为 JSON 字符串,有 network、identity 和 persistence 三部分内容,network 中出现 C2 服务器 www.mydropboxbackup[.]com:443。

1764730904_692fa818c8d36e5264fc4.png!small?1764730905315

木马配置数据还包括设置与 C2 服务器交互使用的 URL 路径,如下 URL 路径会拼接上解密配置中 network 的 prefix 字段(这里是"analytics"),形成最终的路径。值得注意的是一些 URL 路径并没有在与 C2 服务器的通信过程中使用,这可能意味着该木马仍在开发过程中。

1764730918_692fa826bd11552b0a0db.png!small?1764730919397

如果未能成功从资源区获取配置信息,则对配置数据进行如下设置。

1764730928_692fa8308ea541b53d81d.png!small?1764730929246

(二)信息收集

木马收集各类信息,包括主机名、用户名、操作系统版本、杀软信息,并通过 WMI 查询 UUID、主板序列号和处理器 ID,进而生成感染设备对应的标识。

1764730935_692fa8373f5f3c01ecf10.png!small?17647309357191764730941_692fa83d0b06f0b52d729.png!small?1764730941507

收集的设备信息和配置数据中的 identity 信息组合起来,后续将发往 C2 服务器的"/[prefix]/auth"接口。

1764730947_692fa84359a7175820888.png!small?1764730947811

(三)持久化

如果配置中 persistence 的 enable_app_path 字段为 true,或者木马的文件路径不是指定路径时,执行持久化操作。

1764730955_692fa84b17220460425d5.png!small?1764730955559

木马持久化方式有三种,由配置数据中 persistence 的 startup_method 字段的数值决定,为 1 时创建计划任务。

1764730963_692fa85396f3785455e73.png!small?1764730963996

为 2 时设置注册表的 RunOnce 键值。

1764730970_692fa85a0f298da8bf37c.png!small?1764730970444

为 3 时,在 Starup 目录创建 LNK 文件。

1764730975_692fa85fedb3538d172dd.png!small?1764730976472

(四)C&C 通信

木马与 C2 服务器通信采用结合 WebSocket 和 HTTP 协议的方式。

木马操作网络协议相关接口
与服务器建立通信连接HTTP/[prefix]/auth
向服务器发送心跳包HTTP/[prefix]/status
获取木马指令与回传结果WebSocket/[prefix]/stream
文件上传与下载HTTP多个接口

木马首先尝试与 C2 服务器建立连接,向 C2 服务器的"/[prefix]/auth"接口发送前面收集的信息,如果服务器返回指定响应内容,则说明连接建立成功。

1764730988_692fa86c721e83384c2ee.png!small?17647309889481764730993_692fa87167dcd05b996fe.png!small?1764730993790

连接建立之后,木马一方面定期向 C2 服务器的"/[prefix]/status"接口发送心跳包,数据包中的 device_token 为信息收集阶段生成的设备标识。

1764730998_692fa876b4f63d07bd2d2.png!small?1764730999263

另一方面同 C2 服务器的"/[prefix]/stream"接口建立 WebSocket 连接。

1764731007_692fa87f6af964137087b.png!small?1764731008143

通过发送 getCommand 信息获取木马指令,木马指令执行完毕发送 ack_command 信息。

1764731021_692fa88d8b89a159eaa4d.png!small?17647310219421764731027_692fa893d44b6d67629d2.png!small?1764731028209

木马指令分发函数为 sub_413EB0,该函数还可以根据传入参数决定开启或关闭获取木马指令的开关。

1764731033_692fa899278017826927b.png!small?1764731033642

木马指令与对应功能详细说明如下。

(1) 信息 type 为 terminal_input
将命令通过管道传入创建的 shell 进程,实现远程命令执行。

1764731039_692fa89fad15b42a6261c.png!small?1764731040141

(2) "F1A5C3": 从指定 URL 下载文件到指定路径,然后调用 ShellExecuteExW 打开文件。

1764731045_692fa8a5ba21f09a1db3e.png!small?1764731046311

(3) "B8C1D2": 将执行命令的 shell 设置为 cmd。

(4) "E4F5A6": 将执行命令的 shell 设置为 powershell。

(5) "FL_SH1": 关闭所有 shell。

1764731051_692fa8ab5c0d4e13a9de2.png!small?1764731051838

(6) "C9E3D4", "E7F8A9", "H1K4R8", "C0V3RT"
这 4 个指令都是从 C2 服务器下载加密 zip 压缩包,解压后调用 ShellExecuteExW 打开其中的文件。这些指令的参数有 4 个,分别是"zip_name", "zip_password", "location"和"folder"。

1764731057_692fa8b18e9574e09dcf8.png!small?1764731057967


这些指令下载的 URL 路径有所不同。

木马指令下载文件的 URL 路径
C9E3D4/[prefix]/update/[zip_name]
E7F8A9/[prefix]/package/[zip_name]
H1K4R8/[prefix]/assets/[zip_name]
C0V3RT/sniperagent/cache/[zip_name]

(7) "F2B3C4": 获取设备连接的所有磁盘信息,包括文件系统、是否可移除、总容量、空闲容量等。

1764731064_692fa8b8d702996979940.png!small?1764731065399

(8) "D5E6F7
该指令实现文件上传和下载操作,包含"file_path", "session_id"和"resume_offset"三个指令参数。文件上传到服务器使用 C2 服务器的"/[prefix]/sync"接口,从服务下载文件使用"/[prefix]/fetch"接口。

1764731071_692fa8bf0bc5ffb6957c9.png!small?1764731071566

(9) "A8B9C0"
该指令同样具备文件上传功能,包含"file_path", "session_id"和"file_size"三个指令参数,也使用"/[prefix]/sync"接口。

1764731078_692fa8c630dfcd2f2770f.png!small?1764731078556

(10) "D1E2F3": 删除文件。

1764731085_692fa8cdc1cfe8678b6c0.png!small?1764731086276

(11) "A4B5C6": 重命名文件。

1764731091_692fa8d393ea08bd87f8d.png!small?1764731092099

(12) "D7E8F9": 枚举指定目录。

1764731103_692fa8df6415767d89ace.png!small?1764731103821

(五)新版本 StreamSpy

目前发现的 1.0.0.2 版本的 StreamSpy 木马样本配置信息如下,C2 均为"www.virtualworldsapinner[.]com:443",prefix 分别为"metrics"和"insights"。

1764731108_692fa8e4cdf0f67f78385.png!small?17647311092991764731113_692fa8e9016cf7279bc19.png!small?1764731113418

相比 1.0.0.1 版本,1.0.0.2 版本的 StreamSpy 木马整体变化不大,不同之处在于 URL 路径配置中增加了"cache"接口。

1764731119_692fa8ef1b0b540718750.png!small?1764731119607

木马指令"C0V3RT"下载后续载荷的路径由"/sniperagent/cache/[zip_name]",变为"/[prefix]/cache/[zip_name]"。

1764731125_692fa8f5750c0564d0ddf.png!small?17647311259581764731131_692fa8fb1e32e5200e8bd.png!small?1764731131637

四、溯源关联

通过上述 StreamSpy 木马我们关联到其他恶意软件,包括摩诃草组织 Spyder 下载器变种和肚脑虫(Donot)组织的样本,这些样本在早些时候已被安全研究人员公开披露过[1, 2]。

(一)Spyder 变种

StreamSpy 木马的下载站点 firebasescloudemail[.]com 关联到一些 Spyder 变种,相关样本信息如下:

MD5文件名数字签名信息
0fe90212062957a529cba3938613c4davpn.exe"Fidus Software Consulting Inc."
df626ce2ad3d3dea415984a9d3839373JuD NEW MARKAZ DETAILS.exe"Fidus Software Consulting Inc."

这些样本同样从资源区 HTML 类型数据中获取配置信息,解密方式与 StreamSpy 类似,跳过第 1 字节,然后进行 AES 解密,并且解密密钥和 StreamSpy 木马相同。

1764731137_692fa901e459d77e561c3.png!small?1764731138460

解密的配置数据中除了 C2 信息"adobefileshare[.]com/getData",还有一个带有"spyder"字符串的路径。

1764731144_692fa9082417301803a37.png!small?17647311445801764731153_692fa911885af1ba4455e.png!small?1764731154030

收集设备信息,包括根据磁盘 volume 信息生成的受害者标识、主机名、用户名、操作系统版本、杀软信息,并拼接上面解密得到的配置数据中的一些信息。

1764731160_692fa918012f72c9279e4.png!small?1764731160526

将收集信息通过 POST 请求发送到"hxxp://adobefileshare[.]com/getData",服务器返回响应中会包含一个数字字符串。

(1) 如果数字为除 5 和 6 之外的非 0 值
首先向"hxxp://adobefileshare[.]com/getfilename"发送 POST 请求,请求的正文数据为受害者标识 UID。该请求用于获取待下载的加密 zip 压缩包保存在本地的文件名和解压密码,两者在响应内容中通过"!"进行分隔。再向"hxxp://adobefileshare[.]com/download"发送请求下载文件,然后执行解压操作,调用 ShellExecuteA 打开解压出的文件。这种文件下载方式和以往的 Spyder 下载器基本一致[3]。

1764731166_692fa91ede6ff5e8e939f.png!small?1764731167255

(2) 如果数字为 5,通过 powershell 或 cmd 执行命令。

1764731171_692fa923de9b6bf880a4e.png!small?1764731172335

(3) 如果数字为 6,会进行木马指令分发。

1764731176_692fa9286ba5c646b2908.png!small?1764731176877

涉及的木马指令如下。

指令说明
listDrives获取所有磁盘信息
listDirectory枚举目录信息
deleteFile删除文件
renameFile重命名文件
executeFile调用 CreateProcessW 执行文件
downloadFile下载文件
uploadFile上传文件

如果将恶意软件这三个分支的功能结合起来,可以发现与 StreamSpy 木马所具有的功能基本一致。

近期发现另一个同类型 Spyder 变种,该样本只保留了后续载荷下载功能,去掉了 shell 命令执行和木马指令分发的两个分支,C2 为"azureinternalupdates[.]com"。

MD5文件名数字签名信息
838e4d85346001dd04e11359b04c7c24Terrorist Financing through Digital Currency, Cryptocurrency 2025.exe"Fidus Software Consulting Inc."

1764731184_692fa93069c485e05e8db.png!small?1764731184866

(二)肚脑虫样本

StreamSpy 木马(MD5: f78fd7e4d92743ef6026de98291e8dee)带有的数字签名可以关联到另一个样本 20c9ac59c444625a7ee364b410da8f11。该恶意软件会收集设备信息,包括 CPU 型号、操作系统产品名称和 build number、用户名、主机名、安装的软件列表等。

1764731189_692fa935d4148cc5f650f.png!small?1764731190317

收集信息加密后拼接到"mopd="之后向"hxxps://brityservice[.]info/ZxStpliGBsfdutMawer/sIOklbgrTYULKcsdGBZxsfetmw"发送。

1764731196_692fa93cb25ebdb71caf3.png!small?1764731197232

恶意软件根据 C2 服务器的响应决定是否下载后续载荷,下载后续的 URL 为"hxxps://brityservice[.]info/ZxStpliGBsfdutMawer/lkhgBrPUyXbgIlErAStyilzsh/N1/SA"。

1764731203_692fa943ed81afde3d5d3.png!small?1764731204505

该样本与肚脑虫组织以往攻击活动使用的样本[4]高度相似,而肚脑虫与摩诃草组织的攻击样本共用数字签名的情况之前也出现过[5]。

1764731215_692fa94f7d49b9f11c793.png!small?1764731216214

五、总结

摩诃草组织 StreamSpy 木马和 Spyder 变种的出现表明该组织在不断迭代自己的攻击武器库。在 StreamSpy 木马中,攻击者试图用 WebSocket 信道进行木马指令下发和结果回传,以避开对 HTTP 报文的检测和审查。另外关联到的样本再次印证了摩诃草和肚脑虫两个攻击团伙在资源共享方面有一些联系。

六、防护建议

奇安信威胁情报中心提醒广大用户,谨防钓鱼攻击,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的 APP。做到及时备份重要文件,更新安装补丁。

七、IOC

MD5

(摩诃草)

1c335be51fc637b50d41533f3bef2251

e0ac399cff3069104623cc38395bd946

f78fd7e4d92743ef6026de98291e8dee (StreamSpy 木马)

c3c277cca23f3753721435da80cad1ea (StreamSpy 木马)

e4a7a85feff6364772cf1d12d8153a69 (StreamSpy 木马)

0fe90212062957a529cba3938613c4da (Spyder 变种)

df626ce2ad3d3dea415984a9d3839373 (Spyder 变种)

838e4d85346001dd04e11359b04c7c24 (Spyder 变种)

(肚脑虫)

20c9ac59c444625a7ee364b410da8f11

C&C

(摩诃草)

firebasescloudemail[.]com

mydropboxbackup[.]com

virtualworldsapinner[.]com

adobefileshare[.]com

azureinternalupdates[.]com

(肚脑虫)

scrollzshare[.]info

brityservice[.]info

URL

(摩诃草)

wss://www.mydropboxbackup[.]com/analytics/stream

wss://www.virtualworldsapinner[.]com/metrics/stream

wss://www.virtualworldsapinner[.]com/insights/stream

hxxps://www.mydropboxbackup[.]com/analytics/

hxxps://www.virtualworldsapinner[.]com/metrics/

hxxps://www.virtualworldsapinner[.]com/insights/

hxxp://adobefileshare[.]com/getData

hxxp://adobefileshare[.]com/getfilename

hxxp://adobefileshare[.]com/download

hxxp://azureinternalupdates[.]com/getData

hxxp://azureinternalupdates[.]com/getfilename

hxxp://azureinternalupdates[.]com/download

(肚脑虫)

hxxps://scrollzshare[.]info/eeCetyUo8Tr

hxxps://brityservice[.]info/ZxStpliGBsfdutMawer/sIOklbgrTYULKcsdGBZxsfetmw

hxxps://brityservice[.]info/ZxStpliGBsfdutMawer/lkhgBrPUyXbgIlErAStyilzsh/N1/SA

八、参考链接

  1. https://x.com/malwrhunterteam/status/1985321347279626438
  2. https://x.com/malwrhunterteam/status/1986334542123159792
  3. https://ti.qianxin.com/blog/articles/analysis-of-new-variants-and-components-of-patchwork-spyder-downloader-cn/
  4. https://ti.qianxin.com/blog/articles/analysis-of-the-attack-activity-of-the-apt-q-38-using-pdf-document-decoys-cn/
  5. https://ti.qianxin.com/blog/articles/patchwork-attack-weapons-reuse-the-infrastructure-of-the-donot-cn/

文章来源: https://www.freebuf.com/news/460156.html
如有侵权请联系:admin#unsafe.sh