引言
我们发现了一个从蒙古主要认证机构(CA) 官方网站下载的安装程式,该安装程式被植入了
Cobalt Strike的后门程式。2021年4月22日,我们立即通知了MonPass我们的发现,并建议他们解决其受损的伺服器问题,并通知下载了后门客户端的用户。
我们已经确认MonPass已采取措施解决这些问题,并现在呈现我们的分析结果。
我们的分析从2021年4月开始,显示MonPass托管的公共网页伺服器可能遭到入侵八次:我们发现了这个伺服器上有八个不同的WebShell和后门。我们还发现,2021年2月8日到2021年3月3日之间可供下载的MonPass客户端也被植入了后门。
这项研究提供了对我们在野外发现的相关后门安装程式及其他样本的分析。在调查过程中,我们还观察到了NTTLtd的相关研究,因此某些技术细节或IoCs可能会重叠。
所有样本高度相似,并共享相同的pdb路径:
C:\Users\test\Desktop\fishmaster\x64\Release\fishmaster.pdb
和字符串:
Bidenhappyhappyhappy
。
图1:Pdb路径和特定字符串
技术细节
这个恶意安装程式是一个未签名的PE文件。它首先从MonPass官方网站下载合法版本的安装程式。这个合法版本被放置到 C:\Users\Public\
目录并在一个新的进程下执行。这样可以保证安装程式的行为符合预期,普通用户不太可能察觉到任何可疑的情况。
在野外也发现了其他相似的安装程式,它们的SHA256哈希为:
e2596f015378234d9308549f08bcdca8eadbf69e488355cddc9c2425f77b7535
和
f21a9c69bfca6f0633ba1e669e5cf86bd8fc55b2529cd9b064ff9e2e129525e8
。
图2:这张图片看起来没有那么无辜。
攻击者决定使用隐写术将shellcode传递给受害者。执行后,恶意软件会从 http://download.google-
images[.]ml:8880/download/37.bmp 下载一个位图图像文件,如图2所示。
这个下载过程略显不寻常,分为两个HTTP请求。第一个请求使用HEAD方法以检索Content-
Length,然后发送第二个GET请求来实际下载图像。在下载图片后,恶意软件提取加密的有效负载,具体过程如下:隐藏数据预期可以达到0x76C字节。从图像数据的第三个字节开始,它复制每第四个字节。最终得到的数据表示一个ASCII字符串的十六进制字符,然后这些字符被解码成相应的二进制值。这些字节然后使用硬编码键miat_mg
进行XOR解密,最终生成Cobalt-
Strike的信标。
我们发现了多个版本的这个后门安装程式,每个安装程式中都有略微不同的解密器。
在版本(f21a9c69bfca6f0633ba1e669e5cf86bd8fc55b2529cd9b064ff9e2e129525e8
)中,XOR解密功能被移除。
在版本(e2596f015378234d9308549f08bcdca8eadbf69e488355cddc9c2425f77b7535
)中,基本的反分析技巧被去除。在图3中,你可以看到不同的时间戳和相同的丰富标头。
图3:时间戳
图4:丰富标头。
在后门安装程式中,我们还观察到了一些基本的反分析技术,用以避免被检测到。具体而言,我们发现了使用_GetSystemInfo_
函数检查处理器数量,使用_GlobalMemoryStatusEx_
函数检查物理记忆体的数量,以及使用IOCTL_DISK_GET_DRIVE_GEOMETRY
IOCTL调用检查磁碟容量。如果获得的任何值异常偏低,恶意软件会立即终止。
图5:恶意软件所使用的反分析技巧
图6:测试磁碟容量的反分析技术
其中一个样本(9834945A07CF20A0BE1D70A8F7C2AA8A90E625FA86E744E539B5FE3676EF14A9
)使用了一种不同的已知技术执行shellcode。首先,它使用_UuidFromStringA_
API从
UUID 列表中解码,然后使用EnumSystemLanguageGroupsA
执行。
图7:从UUID列表中解码及执行shellcode。
在我们发现客户中有一个后门安装程式后,我们开始在VT和我们的用户基础中搜索其他样本,以确定是否还观察到了其他后门安装程式。在VT中我们发现了一些有趣的样本:

图8:VT命中
我们分析了样本,发现该样本与我们客户中发现的受感染安装程式非常相似。该样本包含使用相同的XOR解密的反分析技术,并且还包含与先前后门安装程式相似的C2伺服器地址(hxxp://download.google-
)。这个样本还包含指向链接(
images.ml:8880/download/x37.bmphxxps://webplus-cn-
)的引用和档案路径
hongkong-s-5faf81e0d937f14c9ddbe5a0.oss-cn-
hongkong.aliyuncs[.]com/Silverlight_ins.exe
C:\users\public\Silverlight_ins.exe
;但是这些似乎并未被使用。样本名称也非常不寻常——Browser_plugin
——我们推测这可能是演员上传的一个测试样本。
(8).exe
在VT中我们还看到另一个哈希(4a43fa8a3305c2a17f6a383fb68f02515f589ba112c6e95f570ce421cc690910
),同样以名为Browser_plugin.exe
。根据VT,该样本是从hxxps://jquery-
下载的。它从
code.ml/Download/Browser_Plugin.exehxxp://37.61.205.212:8880/dow/Aili.pdf
下载了一个名为Aili.pdf
的PDF。
图9:Aili.pdf的内容。
随后它的功能类似于VT中之前提到的样本。这意味著它从hxxp://micsoftin.us:2086/dow/83.bmp
下载和解密CobaltStrike信标。
在我们的资料库中,我们再次发现了类似的样本,但名称为Browser_plugin
。该样本是从
(1).exehxxp://37.61.205.212:8880/download/Browers_plugin.exe
下载的,我们在2021年2月4日见到了它。它不安装任何合法软件,只是显示一个消息框。它包含C&C地址(hxxp://download.google-
),(注意:目录名称有一个打字错误:downloa)。
images.ml:8880/downloa/37.bmp
受损的网路伺服器内容
在被入侵的网路伺服器上,您可以下载到后门安装程式,我们发现了两个执行档DNS.exe
(456b69628caa3edf828f4ba987223812cbe5bbf91e6bbf167e21bef25de7c9d2
)和再次出现的Browser_plugin.exe
(5cebdb91c7fc3abac1248deea6ed6b87fde621d0d407923de7e1365ce13d6dbe
)。
DNS.exe
它从C&C伺服器(hxxp://download.google-
)下载bat文件,并将其保存在
images.ml:8880/download/DNSs.batC:\users\public\DNS.bat
。其中包含这个脚本:
图10:DNS.bat脚本
在实例的第二部分,它包含与我们之前提到的后门安装程式相似的功能和相同的C&C伺服器地址。
Browser_plugin.exe
(5cebdb91c7fc3abac1248deea6ed6b87fde621d0d407923de7e1365ce13d6dbe
)
这个样本与这一个(4a43fa8a3305c2a17f6a383fb68f02515f589ba112c6e95f570ce421cc690910
)非常相似,相同的C&C伺服器地址,但它不下载任何额外的文档。
C&C伺服器分析
我们检查了恶意网路伺服器hxxps://jquery-
,从中下载了(
code.ml4A43FA8A3305C2A17F6A383FB68F02515F589BA112C6E95F570CE421CC690910
)的Browser_plugin.exe
。这个恶意网路伺服器看起来与合法的https://code.jquery.com/
一模一样,唯一的区别在于证书。合法伺服器https://code.jquery.com
由SectigoLimited签名,而恶意伺服器则由Cloudflare, Inc.签名。
图11:对比两个网站
结论
这篇博客文章概述了我们对MonPass客户端被植入 Cobalt Strike 后门的调查结果。
在我们的研究中,我们在VirusTotal上发现了除了受损的MonPass网路伺服器外的其他变种。
在我们对受损客户端和变种的分析中,我们表明了该恶意软件使用隐写术来解密Cobalt Strike信标。
目前,我们无法以合适的信心水准对这些攻击进行归因。然而,很明显攻击者明确意图通过入侵一个可靠来源来向蒙古用户散播恶意软件,在这种情况下,就是蒙古的一个CA。
最重要的是,任何在2021年2月8日至2021年3月3日之间下载了MonPass客户端的人应该采取措施找寻并移除该客户端及其安装的后门。
我特别感谢对我这项研究的帮助。
沟通时间表:
- 2021年3月24日 – 发现后门安装程式
- 2021年4月8日 – 透过与Monpass进行初步联系,提供调查结果。
- 2021年4月20日 – MonPass与Avast Threat Labs分享了感染的网页伺服器取证映像。
- 2021年4月22日 – Avast在与MonPass和MN CERT/CC的通话中提供了事件信息和取证映像的发现。
- 2021年5月3日 – Avast通过电子邮件与MonPass进行后续联系。未获得回应。
- 2021年5月10日 – Avast发送了额外的后续电子邮件。
- 2021年6月4日 – MonPass回复询问已于2021年4月22日提供的信息。
- 2021年6月14日 – Avast再次跟进MonPass,未获回应。
- 2021年6月29日 – 向MonPass发送最后一封电子邮件,表明我们计划发布并将草稿发送给他们以供反馈。
- 2021年6月29日 – MonPass回复表示他们已解决问题并通知受影响的客户。
- 2021年7月1日 – 发布博客。
妥协指标 (IoC)
- 存储库: https://github.com/avast/ioc/tree/master/MpIncident
- SHA-256列表: https://github.com/avast/ioc/blob/master/MpIncident/samples.sha256
编译时间戳时间表:
日期和时间 (UTC)| SHA256
—|—
2021年2月3日 07:17:14|
28e050d086e7d055764213ab95104a0e7319732c041f947207229ec7dfcd72c8
2021年2月26日 07:16:23|
f21a9c69bfca6f0633ba1e669e5cf86bd8fc55b2529cd9b064ff9e2e129525e8
2021年3月1日 07:56:04|
e2596f015378234d9308549f08bcdca8eadbf69e488355cddc9c2425f77b7535
2021年3月4日 02:22:53|
456b69628caa3edf828f4ba987223812cbe5bbf91e6bbf167e21bef25de7c9d2
2021年3月12日 06:25:25|
a7e9e2bec3ad283a9a0b130034e822c8b6dfd26dda855f883a3a4ff785514f97
2021年3月16日 02:25:40|
5cebdb91c7fc3abac1248deea6ed6b87fde621d0d407923de7e1365ce13d6dbe
2021年3月18日 06:43:24|
379d5eef082825d71f199ab8b9b6107c764b7d77cf04c2af1adee67b356b5c7a
2021年3月26日 08:17:29|
9834945a07cf20a0be1d70a8f7c2aa8a90e625fa86e744e539b5fe3676ef14a9
2021年4月6日 03:11:40|
4a43fa8a3305c2a17f6a383fb68f02515f589ba112c6e95f570ce421cc690910
标记为,
,
,,
分享:XFacebook