剖析针对工业组织的常见攻击TTP
2023-8-16 17:41:51 Author: www.freebuf.com(查看原文) 阅读量:6 收藏

2022年,卡巴斯基研究人员调查了一系列针对东欧工业组织的攻击活动。在这些活动中,攻击者的目标是建立一个永久的数据泄露渠道,包括存储在气隙(air-gapped)系统中的数据。

基于这些攻击活动与之前研究过的攻击活动(如ExCone、DexCone)存在诸多相似之处,包括使用的FourteenHi变体、特定的TTP和攻击范围,研究人员非常自信地认为,这些攻击活动背后是一个名为APT31(也被称为“Judgment Panda”和“Zirconium”)的威胁组织。

为了泄露数据并交付下一阶段的恶意软件,威胁行为者滥用基于云的数据存储(例如Dropbox或Yandex Disk)以及用于临时文件共享的服务。他们还使用部署在常规虚拟专用服务器(VPS)上的C2。此外,威胁行为者还会部署一系列植入程序,通过受感染的可移动驱动器从气隙网络收集数据。

对于大多数植入程序,威胁行为者使用了类似的DLL劫持实现(通常与Shadowpad恶意软件相关)和内存注入技术,以及使用RC4加密来隐藏有效载荷并逃避检测。libssl. dll或libcurl.dll被静态链接到植入程序以实现加密的C2通信。

研究人员总共发现了超过15个植入物及其变体。具体来说,攻击中使用的整个植入程序堆栈可以根据其作用分为三类:

  • 用于持久远程访问和初始数据收集的第一阶段植入程序;
  • 用于收集数据和文件的第二阶段植入程序;
  • 第三阶段植入程序和上传数据到C2的工具。

用于远程访问的第一阶段植入程序 

FourteenHi变体

FourteenHi是一个恶意软件家族,于2021年在一个名为ExCone的活动中被发现,自2021年3月中旬以来一直保持活跃状态,目标主要是政府实体。在2022年,研究人员发现了用于攻击工业组织的新变种。

各种各样的FourteenHi样本(包括x64和x86)在代码结构、i加载器和C2类型方面都有很大的不同。但是它们的核心特征(如C2通信协议和命令列表)几乎是相同的。

加载方案大体相同的所有变体,包括三个主要组成部分:

  1. 易受DLL劫持的合法应用程序。
  2. 通过DLL劫持加载的恶意DLL,用于从二进制数据文件中读取和解密FourteenHi有效载荷,并将其注入某些系统进程,如exe或msiexec.exe。
  3. 一个二进制数据文件,包含用RC4加密的FourteenHi二进制代码。

所有已知的FourteenHi变体都在其代码中嵌入了配置数据并使用RC4加密。配置定义了活动ID、C2地址和端口。fourenhi x64的配置还定义了它在不带参数执行时为持久化创建的Windows服务的名称和描述。

MeatBall后门

MeatBall后门是研究人员在分析攻击过程中发现的新植入程序。它具有广泛的远程访问功能,包括列出正在运行的进程、连接的设备和磁盘、执行文件操作、捕获屏幕截图、使用远程shell和自我更新。该植入存在于x86和x64的变体中。

该植入程序还使用基于DLL劫持技术的加载方案,但与许多其他植入程序不同的是,其有效载荷存储在恶意DLL加载程序本身中,而不是单独的文件中。

该植入程序与libssl.dll静态链接,以实现加密的C2通信。

植入程序使用Yandex Cloud作为C2

研究人员发现的另一个植入程序是使用Yandex Cloud数据存储作为C2。该植入程序使用基于DLL劫持的加载方案,恶意DLL将存储在单独文件中的植入程序主体解密,并将其注入合法进程的内存中。

该植入程序同样使用静态链接的libcurl.dll进行SSL加密通信,并在主机上收集以下数据:

  • 计算机名;
  • 用户名;
  • IP地址;
  • MAC地址;
  • 操作系统版本;
  • 通往%System%的路径

为了将收集到的数据上传到C2,该植入程序使用嵌入式API令牌发送一个请求,以创建一个目录,该目录的名称对受害主机来说是唯一的。

所有上传和下载的数据均采用RC4算法加密。

用于收集数据和文件的第二阶段植入程序

用于收集本地文件的专用植入程序

2022年5月,研究人员发现了一个用于收集本地文件的专用植入程序。该植入程序使用基于DLL劫持技术的加载方案,其中恶意DLL加载程序通过创建名为“WinSystemHost”的服务来确保持久性,解密并将作为二进制数据存储在单独文件中的有效负载注入到合法进程的内存中。

该植入程序启动“msiexec.exe”,然后从单独的文件读取和解密有效载荷,并将其注入“msiexec.exe”的内存中。

一旦负载开始在“msiexec.exe”的内存中执行,它就会进入由下述6个简单步骤组成的无限循环:

  • 创建文件存储文件夹(如果不存在的话),并找到通往“exe”的路径;
  • 解密字符串;
  • 读取配置并开始搜索所有磁盘上的文件;
  • 复制文件和写日志;
  • 将复制的文件归档并清理;
  • 等待10分钟。

为了渗漏收集到的数据,威胁行为者还使用了一系列植入程序将文档上传到Dropbox。

通过可移动驱动器从气隙网络中窃取数据的植入程序

2022年4月,研究人员发现了一款旨在通过感染可移动驱动器从气隙系统中窃取数据的恶意软件。

【植入程序与可移动介质相互作用的简化图】

第一个(主)模块负责处理可移动驱动器,包括如下操作:

  • 收集驱动器信息;
  • 将每个驱动器的文件系统结构克隆到本地临时文件夹中,并保持结构更新至最新状态;
  • 从硬盘中收集被盗文件并在新连接的硬盘上植入第二步恶意软件;
  • 捕获受感染计算机上的屏幕截图和窗口标题。

该主模块在“%TEMP%”中创建一个文件夹,它将在其中存储日志、连接驱动器的信息和驱动器的内容。

接下来,该植入程序对每个可移动驱动器都创建了一个子文件夹,其中子文件夹的名称与驱动器的序列号相同。

该植入程序还会检查这些文件夹中是否存在以下文件,这些文件可用于感染序列号与文件夹名称匹配的可移动驱动器:

  • “exe”,一个合法的McAfee可执行文件,易受DLL劫持;
  • “dll”,这是第二步有效载荷;
  • “DOC”、“PDF”或“DIR”文件,其中定义了要使用的诱饵链接文件。

上述文件存在于分配给特定可移动驱动器的文件夹中,表明攻击者首先分析了可移动驱动器的内容一段时间,然后才将用于感染特定可移动驱动器的文件复制到指定的文件夹中。

要感染可移动驱动器,主模块只需复制两个文件——“mcods.exe”和第二步恶意软件“McVsoCfg.dll”——到驱动器的根目录,并为这两个文件设置“隐藏”属性。

此外,如果存在第四步恶意软件,它也会与第二步植入程序一起复制到可移动驱动器中。

然后,主模块在可移动驱动器的根目录中生成一个诱饵链接文件。

当用户打开诱饵“.lnk”文件时,操作系统将加载“mcods.exe”,该文件又将加载“McVsoCfg.dll”,并调用其函数“McVsoCfgGetObject”。

【通过受感染的可移动媒介染隔离网段中的计算机的简化图】

之后,该植入程序通过从自己的文件(“McVsoCfg.dll”)中提取第三步恶意软件可执行文件,并将其以“msgui.exe”的名称保存到被攻击主机上的“%APPDATA%”中。

第三步植入程序“msgui.exe”非常小且简单——它被设计成使用“cmd.exe”执行批处理脚本来收集数据,并将输出保存到驱动器的“$RECYCLE.BIN”文件夹中,以便恶意软件的主模块(当连接到最初受感染的主机时)可以收集数据。然后,它会查找要执行的任何第四步文件,然后将其删除(如果存在的话)。

第四步恶意软件由两个文件组成:

  • 有效载荷的简单dropper(类似于第二步恶意软件所使用的);
  • 该有效载荷实际上是第一步模块的修改版本,也用于收集有关驱动器的信息,收集文件,捕获屏幕截图和按键(当连接到最初受感染的主机时),但没有负责感染可移动驱动器的例程。

两个模块(第一步和第四步)具有相似的配置和数据保存例程:

【通过受感染的可移动媒体在隔离的网段中收集数据的简化图】

为了收集所有被盗数据,威胁行为者使用远程shell来运行旨在上传数据的植入程序。

第三阶段植入程序和上传数据到C2的工具

第三阶段植入程序由威胁行为者通过第一阶段植入程序和第二阶段植入程序进行部署。

第三阶段植入程序与第一阶段植入程序有很多共同之处,包括使用基于云的数据存储(例如Dropbox、Yandex Disk),代码混淆以及实施DLL劫持技术。

用于上传文件到Dropbox的植入程序

一系列用于上传文件到Dropbox的植入程序,被设计成与第二阶段的文件收集植入程序协同工作。

该恶意软件堆栈由三个植入程序组成,形成一个直接的执行链(由三个步骤组成)。

第一步用于持久化,部署和启动第二步恶意软件模块,该模块负责通过调用第三步植入程序将收集到的文件上传到服务器。

在分析中,研究人员确定了在初始攻击几个月后部署的第三步植入程序的五个变体,以及第二步植入程序的两个变体。

执行链中第二步植入的第一个变体旨在解密第三步有效载荷并将其注入合法进程(例如“msiexec.exe”)。除了C2地址外,该链中第三步有效载荷的所有变体几乎相同。

第三步变体中的C2 IP地址引起了研究人员的注意,因为它是本地IP地址。这意味着威胁行为者在公司内部部署了一台C2,并将其用作代理,从无法直接访问互联网的主机上窃取数据。

后来,攻击者部署了第二步植入程序的新变种,其功能包括查找Outlook文件夹中的文件名(即电子邮件帐户名称),执行远程命令,并通过调用第三步植入程序将本地或远程“.rar”文件上传到Dropbox。

要上传本地文件,第二步植入程序要调用第三步植入程序,后者应该已经部署在机器上的静态定义路径“c:/users/public/”或与第二步植入相同的路径上。

所有第三步变体都旨在将从本地机器的“C:\ProgramData\NetWorks\ZZ”收集到的“.rar”文件上传到Dropbox。

手动数据渗漏工具

除了各种植入程序外,研究人员还发现了威胁行为者用于手动数据渗漏的两种工具。

一个名为“AuditSvc.exe”的工具被设计用于上传和下载任意文件到Yandex Disk。OAuth令牌、文件路径和其他一些参数可以作为命令行参数传递。或者,这些参数可以在一个名为“MyLog.ini”的配置文件中定义。

第二个被发现的工具名为“transfer.exe”,旨在从16个支持的临时文件共享服务中任意上传和下载任意文件。

通过Yandex电子邮件服务上传文件的植入程序

通过Yandex电子邮件服务发送文件的植入程序是从Yandex Disk下载的。它还与libcurl.dll进行了静态链接。

该植入程序旨在窃取位于静态路径“C:\Users\Public\Downloads\111.log”的单个文件(该文件已硬编码到植入程序中)。“.log”文件作为附件发送到电子邮件。

“111.log”文件很可能是由前一阶段的植入程序之一产生的,并且可能包含CMD命令的输出或通过上述工具上传到临时数据共享服务的文件的URL。

在一次发送电子邮件的尝试之后,该植入程序就会终止。这样的直接执行流和持久化功能的缺乏可能意味该植入程序更多地被用作一种工具,而非自给自足的服务。

结语

在这项报告中,研究人员分析了威胁行为者用于远程访问、收集数据和上传数据的大量植入程序。

威胁行为者通过将有效载荷以加密形式隐藏在单独的二进制数据文件中,以及通过DLL劫持和内存注入链将恶意代码隐藏在合法应用程序的内存中,使检测和分析威胁变得更加困难。

滥用云服务(例如,Dropbox、Yandex、Google等)的趋势并不新鲜,但它仍在继续扩大,因为当组织的业务流程依赖于这些服务时,想要限制/缓解这种趋势将变得异常艰难。

与此同时,滥用流行的基于云的数据存储,一旦第三方访问威胁行为者使用的存储,就有可能导致被盗数据的二次泄露。

原文链接:

https://securelist.com/common-ttps-of-attacks-against-industrial-organizations/110319/


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