Kwampirs恶意软件与Shamoon APT黑客关联的新证据

Kwampirs恶意软件与Shamoon APT黑客关联的新证据

将 Kwampirs 恶意软件与 Shamoon APTS 相关联的新发现

自 2018 年 8 月以来,Cylera Labs 一直在积极调查 Kwampirs 恶意软件,并率先发现了与 Shamoon 的相似之处。2019 年,网络安全副总裁兼 Cylera Labs 首席研究员 Pablo Rincón Crespo 在 2019年 12 月 11 日在马德里举行的第十三届 STIC 会议上发布了第一个公开调查结果,指出了 Shamoon 和 Kwampirs 之间的重要代码相似之处。

但在工具中具有相似性并不一定意味着相同的威胁行为者支持两个恶意软件系列。因此,有必要进一步调查以消除潜在的被盗代码或虚假标记操作的可能性。在 Rincón 在 XIII STIC 会议上发表演讲后不久,发布了两份 FBI Flashes 和一份 FBI Private Industry Notification (PIN),警告 Kwampirs(2020 年 1 月 6 日、2 月 5 日和 3 月 30 日),一些研究人员还在推特上发布了关于两个恶意软件家族的相似之处。

Cylera 实验室总结

那时我们已经把所有已知的活动都搞砸了,确定了许多受害者(从小医院到“医疗城市”,再到中东国家的政府机构),已经找到了模板系统,并且已经在尝试了解所有活动的演变过程。可通过公共恶意软件存储库(主要是 VirusTotal 和 Hybrid Analysis)下载 Kwampirs 工件。我们的差异分析是在 radiff2(radiff2 工具包的一部分)和 diaphora+IDA 的帮助下完成的,然后手动查看每个版本之间的全套差异,以了解两个恶意软件家族之间的所有差异。在此过程中,我们还确定了一些其他组件,这些组件在一段时间内未被注意到,但它们将两个家庭更紧密地联系在一起。

新发布的深入的Cylera Labs Kwampirs Shamoon 技术报告用人工制品广泛解释了与 Kwampirs 的演变及其与 Shamoon 1 和 2 的联系相关的调查、分析和发现的不同阶段——Kwampirs 在这两个阶段之间开始其活动两个 Shamoon 版本。

在 Cylera Labs,我们以中等高度的信心评估 Shamoon 和 Kwapirs 是同一组或非常密切的合作者,在多年的过程中共享更新、技术和代码,这篇博文总结了我们调查的一些主要发现:

从 Shamoon 1 到 Kwampirs 

在调查过程中,Cylera 发现了一个恶意软件工件(技术报告中称为“886e7”),它是介于 Shamoon 和 Kwampirs 之间的中间版本。它基本上是一个 Shamoon Dropper,其中不包含破坏性组件,而是

仅包含两个报告器形式的计算机和网络探索代码,可能在代码重构的中间。

Dropper样本:886e7271b1a0b0b6c8b2a180c2f34b1d08d899b1e4f806037a3c15feee604d7b

886e7 与 Shamoon 1 相似的关键特性是什么?

  • Dropper 的主要架构类似于 Shamoon 1。 
  • 有一些死代码,默认情况下无法访问,表明此示例可能是在重构(或重新利用过程)的中间编译的。 
  • Payloads 嵌入在资源中,命名为 PKCS12 和 PKCS7,类似于第一个 Shamoon
Kwampirs恶意软件与Shamoon APT黑客关联的新证据
886e7 资源标识符,类似于 Shamoon 1

此示例中有两个报告模块。其中一个 Reporter 模块发送的数据与 Shamoon 1 发送的数据类似,包括类似的格式和类似的值(即缓存清除的Dropper计数)。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
886e7 用户代理,URL 格式,包括 MAC 地址和 GetTickCount() 值
  • C2 在二进制文件中以明文形式硬编码,就像 Shamoon 1 一样。
  • 传播和感染代码与Shamoon 1类似。几乎相同,就像Kwampirs一样,代码几乎一一对应。但是,Kwampirs 和 886e7 都在一个单独的线程中共享了一个小的传播方法添加,以及我们稍后解释的稍微更激进的策略。

好的……但是 886e7 与 Kwampirs 的连接呢?

  • 资源是可执行文件,类似于 Shamoon,但下载的组件是 DLL,加载器代码与 Kwampirs 完全相同。
  • 两位记者都使用“ItIsMe”作为用户代理,就像早期的 Kwampirs 样本一样。这似乎是 Shamoon(“you”)使用的那个的延续。我们在 sinkhole 服务器上发现了使用此用户代理的请求,这表明早期感染 kwampirs 的主机仍有一些活动。例如,参见 Kwampirs 样本:a5e5b4e6caf7ac3ac8d9b7b3527f767ff011d138246686822fea213a3b0597fc
Kwampirs恶意软件与Shamoon APT黑客关联的新证据
886e7 记者使用与 Kwampirs 活动 0 相同的用户代理字符串
  • Dropper 资源仅包含“Reporter”模块。记者是主要的有效载荷。没有清除,就像 Kwampirs 一样。
  • 在 Kwampirs 中,当记者执行下载的组件(DLL)时,它会搜索一个名为“CF”的导出函数。事实证明,这个 886 Reporter 使用相同的 DLL 加载程序代码并出于相同目的搜索回调字符串“cmdFunc”,因此“CF”可能是它演变的首字母缩写词,可能是为了逃避基于静态字符串的防病毒签名。
Kwampirs恶意软件与Shamoon APT黑客关联的新证据
886e7 DLL 加载程序搜索导出的函数名称“cmdFunc”

第二个报告器减少了 URL 格式的参数数量,并将所有内容编码为 base64 字符串,除了 GetTickCount() 的值作为缓存破坏值,其方式与 Kwampirs 非常相似。Kwampirs 在这第二个 Reporter 之上进化,取出缓存参数,只留下一个参数,里面包含多个值。Shamoon 2 也将继承这种格式。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
886e7 秒 Reporter URL 格式

C2 以 Kwampirs C2 的格式返回数据,与 Shamoon 1 不同。我们知道这一点是因为示例在收到的消息中显式查找“911:”(图 47),这是 Kwampirs C2 在下载时使用的字符串附加模块。更高版本删除了“911:”字符串的检查,但添加了加密签名检查。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据

886e7 在服务器响应中检查前缀 911
  • 该示例使用 GetExtendedTcpTable(),类似于 Kwampirs 对 GetTcpTable() 的使用。这两个功能都允许 Kwampirs(和 886e7)在网络上更积极地传播,即使它们不在同一个 IPv4 范围内,也允许在基于 Windows 的网络上传播意图,这对于供应链探索和制造商 VPN 连接上的感染意图是理想的. 另一方面,Shamoon 版本不使用任何这些传播方法。报告的 Shamoons 使用部分解释了这种限制的一些假设,但总结一下,它们只会以这种方式限制破坏性组件(擦拭器)的损坏,但他们在 Kwampirs 中使用它们来执行更激进的传播,同时进行侦察操作。

从 Kwampirs 到 Shamoon 2

我们发现并确定了 Kwampirs 和 Shamoon 2 之间的通用模板系统,该系统具有已知的时间线,最初是为 Kwampirs 开发的,然后在 Shamoon 2 中实施。

Kwampirs 未渲染模板:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据

Kwampirs Unrendered Reporter 模板错误地嵌入到 Dropper 中

首先,我们发现一个 Kwampirs 工件嵌入了一个额外的组件,该组件本身就是一个 Kwampirs 模板,带有未渲染的标签(占位符)。

开发人员或操作员为新的攻击活动配置工件(如果有任何不同)可能会错误地嵌入此模板。还有一些带有未渲染模板的 dropper(在报告中列出)。我们在下表中记录了模板的变量:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Kwampirs Reporter 模板,带有格式和占位符名称的可用字段

为什么我们认为它在 Shamoon 1 中不存在?

Shamoon 1 肯定没有这个模板系统。该系统添加辅助代码预处理呈现的占位符的值。这个辅助代码在 Shamoon 1 中根本不存在。它包括基于缓冲区中存在的数据的预处理和构建数组,其中新行作为多个配置参数的分隔符(例如,C2 列表和选项就是这样构建的)。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Kwampirs(战役 1 之后的版本)模板辅助代码,在 Shamoon 1 中不存在,

还有一些痕迹表明这些值嵌入在 ASCII 中,即使对于数字也是如此,因为您可以看到使用atoi()将它们转换为整数格式。缓冲区的大小、项目的数量等由atoi()函数调用处理,这在 Shamoon 1 中不会发生。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Kwampirs(战役 1 之后的版本),使用 atoi() 转换从模板系统呈现为字符串的数字,并从原始缓冲区构建 C2 数组和选项

猜猜他们为什么使用 atoi()…?因为为了将占位符放入二进制文件中,他们将占位符作为字符串文字插入,让项目使用那些未渲染的占位符(ASCII,还不是数字)进行编译,而不会导致编译失败。这也表明模板系统是在源代码级别设计和实现的,而不是直接覆盖二进制可执行文件的值。

这个模板系统如何与 Shamoon 2 关联?

仔细观察 Shamoon 264bit Dropper,

(具有 sha256 哈希61c1c8fc8b268127751ac565ed4abd6bdab8d2d0f2ff6074291b2d54b0228842的那个),例如,针对 GACA 的那个,可以找到以下未渲染的占位符:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据

64 位 Dropper 中的 Shamoon 2(和 3)占位符
Kwampirs恶意软件与Shamoon APT黑客关联的新证据
由于开发人员错误,Shamoon 2(和 3)占位符出现在 64 位 Dropper 中

###AV1###和###AV2###

这些占位符与访问payload所需要的资源嵌入参数相关,也就是Reporter组件,不同的是Kwampirs还会添加一个简单的隐写层最重要的是,更多地隐藏有效载荷。但是这两个占位符都与 Kwampirs 占位符的格式相匹配。有了这个,我们可以更好地了解整个过程。

首先渲染报告器,然后将它们嵌入到投递器中,投递器也使用另一个用于投递器的模板,以及要丢弃的有效负载的正确参数。唯一的区别是 Shamoon 有更多的组件(Wiper 可执行文件加上驱动程序),并且所有组件都有 32 位版本以及所有组件的 64 位版本,封装在 64 位 Dropper 中,该 64 位 Dropper 嵌入在 32 位 Dropper 中。

使用带有构建器的模板系统对于避免配置新广告系列的步骤失败是有意义的。两个恶意软件系列的渲染过程如下图所示:

Shamoon 2 新战役构建过程:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Shamoon 新的活动构建流程、渲染模板、将 32 位和 64 位组件嵌入到最终的 32 位 Dropper 中

Kwampirs 新战役建设流程:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Kwmapirs 新的活动构建流程、渲染模板、将兼容 32 位和 64 位架构的组件嵌入到最终的 32/64 位 Dropper

但这不是模板。为什么 Shamoon 2 占位符未渲染?

当你有太多的组件携带其他组件并且不同的架构携带其他架构组件时,控制错误是很复杂的。也许运气甚至没有让你知道。Shamoon 有 32 位和 64 位组件,但它们不会复制代码,例如它们有一个用于 32 位的代码库和另一个用于 64 位的代码库。

我们相信它们共享相同的代码并使用 C 宏、编译器的预处理器选项来启用和禁用特定于架构的东西。其中之一是检查架构并删除和执行 64 位 Dropper 组件的过程,这仅在执行检测到系统基于 64 位时才会发生。

但是当 64 位 Dropper 开始执行时,它不应该执行相同的检查,也不应该丢弃任何其他有效负载。并没有,但是模板系统错误地嵌入了与 64 位 dropper 相关的部分代码,并且在模板系统的辅助代码中它留下了未渲染的占位符,这些占位符并没有真正使用,这就是程序的原因在执行过程中不会崩溃。这样,开发人员可能没有意识到他们嵌入了未渲染的占位符,从而泄露了他们的格式。

综上所述,###AV1###和###AV2###与64位版本的Dropper的payload drop有关,64位版本本身不使用(否则会drop自己的另一个副本!),并且它们没有使用基于架构的宏正确包装,因此它们被嵌入到模板系统的辅助代码中……这成为了它们自己的指纹!糟糕 – 现在有问题!

为什么在 Shamoon 2 之前是 Kwampirs 而不是相反? 

在 Shamoon 2(在所有“Shamoon 2”活动中)中发现了辅助代码的痕迹以及占位符,流程图略有不同,可能是为了绕过防病毒签名和自动集群系统,但它仍然可以很容易用模板系统的辅助代码标识。

我们相信 Shamoon 2 继承了 Kwampirs 的所有这些代码,而不是相反,因为 Shamoon 1 早在 2012 年就没有这个模板系统,并且在 Shamoon 2 攻击2016 年 11 月。

例如,哈希
值为 6f7173b7ae87b5f3262e24a5177dbbd4413d999627f767754f08d8289f359bb3的样本属于
Kwampirs 活动 E,首次提交日期为 2016 年 6 月 23 日 15:40:12 上传到 VirusTotal,比 2016 年 11 月发生的“已知的 Shamoon 2 回归”早 6 个月(据 OSINT 所说我们)。

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
具有此模板系统的 Kwampirs 样本的 VirusTotal 提交日期

我们无法找到证据表明模板系统已被 Kwampirs 或 Shamoon 2 恶意软件家族中的其他调查人员正确识别。一些研究人员表示,由于未使用的值或填充了愚蠢的数据,威胁参与者可能正在使用构建器,这是正确的。但是我们还没有提到与 Kwampirs 的这种关联。

Kwampirs 和 Shamoon 1、2、3 时间线:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Shamoon 和 Kwampirs 进化时间表,具有功能转移

除了模板系统还有其他共享更新吗? 

Shamoon 2 开发人员基于 Kwampirs 改进进行了许多更改。Shamoon 2 和 Kwampirs Reporters 都收集相同的初始数据集以构建对其命令和控制服务器的第一个请求:

  • MAC地址
  • 系统和版本信息
  • 键盘布局列表

Shamoon 2 报告:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据
Shamoon 2(和 3)收集与 Kwampirs 相同的主机信息,也用作机器人 ID(mac、系统和版本信息、键盘布局列表)

Kwampirs 报告:

Kwampirs恶意软件与Shamoon APT黑客关联的新证据

Kwampirs 收集与 Shamoon 2(和 3)相同的主机信息,但也为此值使用加密缓存文件

数据通常使用与 Kwampirs 相同的过程进行打包,使用模板系统指定的字段分隔符,然后使用 xor 循环算法对整个缓冲区进行加密,然后使用 base64 进行编码。

在 Kwampirs 中,最终 URL 将如下所示:

hxxp://18.25.62[.]70/groupgroup/default.php?q=[ base64_string ]

在 Shamoon 2 中,URL 看起来像:

hxxp://server/category/page.php?shinu=[ base64_string ]

技术报告中还有什么?

  • 我们发现了一个独立创建并嵌入在 Reporter 资源中的恶意软件组件,充当代理,利用explorer.exe进程的用户令牌,ala mimikatz 风格。该功能后来作为 Kwampirs dropper 的一部分嵌入,为 Kwampirs dropper 组件添加了不同的运行模式。与该组件(正如我们稍后所说的 dropper 本身)的通信是使用 Pipes 执行的。 
  • 我们进一步提供了一些有关使用开放目录列表配置错误的 C2 的详细信息,以及我们能够从中收集到的信息。 
  • 我们解释了为什么我们认为 Kwampirs 不是基于 Open-Shamoon 的一些技术原因,Open-Shamoon 是一个已经存在一段时间的 Shamoon 的逆向工程版本。 
  • 我们还讨论了使用 Yara 规则在 VirusTotal 中发现的一些实时狩猎样本,以及一些据称与 Shamoon 活动相关的伊朗 APT。

所有这些细节和更多细节都在更扩展的Cylera Labs Kwampirs 技术报告中得到了很好的介绍。

那么归因和我们的最终结论呢?

我们以中高信心相信 Kwampirs 和 Shamoon 2 由同一组黑客维护。但 Shamoon 2 已经归属于一组基于代码、受害者和公共基础设施的 actor,它是 APT33/APT34/Magic Hound 的一个子组,这似乎与 Shamoon 1 没有什么不同。如果有一天 Shamoon 2 是据说是来自不同国家或 APT 组织的虚假标记操作,那么 Kwampirs 的归属也需要重新评估。 

根据我们现在收集的数据,Kwampirs 很可能是一个伊朗 APT,至少自 2015 年以来,它一直针对全球多个国家的医疗保健和供应链,没有明确的意图,控制着这些工件的旋转位置(甚至如果他们还没有采取破坏性的方向)。 

各种类型的网络犯罪分子以及一系列攻击媒介和恶意软件变种都针对医疗保健行业和供应链。动机可能多种多样,从工业间谍活动(知识产权、科学研究)、PHI 记录的泄露和暴露(持不同政见者或关键人物)到破坏性的极端,即在事情发生时通过擦除器攻击造成严重的网络物理影响在网络战场景中真的很难看。医疗保健行业是一个有价值的优先目标,需要注意以确保防御措施到位,就像任何其他关键基础设施一样。

完整报告 (PDF):Cylera Labs Kwampirs 技术报告

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。