深入了解 Evilnum 及其工具集

Andrew2020-07-10 16:25:26

对Evilnum的运作进行了分析,该恶意软件背后的APT集团此前曾对金融科技公司发起攻击。尽管该恶意软件至少从2018年起就被发现,之前也有文件记录,但很少有关于其背后的组织及其运作方式的报道。

在本文中,我们将两点联系起来,并详细介绍Evilnum的活动。该组织的目标仍然是金融科技公司,但其工具集和基础架构已经发展,现在包括定制的自制恶意软件以及从Golden Chickens购买的工具,Golden Chickens是恶意软件即服务(MaaS)提供商,其臭名昭著的客户包括FIN6和Cobalt group。

目标

根据遥测技术,目标是金融技术公司-例如,提供在线交易平台和工具的公司。尽管大多数目标都位于欧盟国家和英国,但我们也看到了澳大利亚和加拿大等国家的袭击。通常,目标公司在多个位置设有办事处,这可能解释了攻击的地域多样性。

Evilnum集团的主要目标是监视其目标并从目标公司及其客户那里获取财务信息。该小组窃取的一些信息包括:

  • 带有客户清单,投资和交易操作的电子表格和文档
  • 内部报告
  • 交易软件/平台的软件许可和凭证
  • 来自浏览器的Cookies和会话信息
  • 电子邮件凭证
  • 客户信用卡信息和地址/身份证明文件

根据我们在调查中看到的信息,该小组还获得了与IT相关的信息的访问权限,例如VPN配置。

攻击概述

通过包含电子邮件指向在Google云端硬盘中的ZIP文件链接的鱼叉式电子邮件来接近目标。该档案文件包含几个LNK(又名快捷方式)文件,这些文件在显示诱饵文档时会提取并执行恶意的JavaScript组件。这些快捷方式文件具有“双扩展名”,以试图诱骗用户打开它们,认为它们是无害文档或图片(在Windows中,默认情况下隐藏已知文件类型的文件扩展名)。其中一个ZIP文件的内容如图1所示。

fsHajKS9TM.png!large

一旦打开快捷方式文件(不管是哪个快捷方式,它们都做相同的事),它就会在自己文件的内容中查找带有特定标记的行,并将其写入.js文件。然后执行该恶意JavaScript文件,它编写并打开一个诱饵文件,该诱饵文件的名称与快捷方式相同,但扩展名正确。它还删除快捷方式文件。用作诱饵的文件主要是信用卡,身份证件或带有地址证明的票据的账单,因为根据规定,许多金融机构要求客户在加入时提供这些文件(这被称为“了解客户”)。其中一个诱饵如图2所示(为了隐私而进行了模糊处理)。

DXgREyY0JC.png!large

这些诱饵文件似乎是真实的,我们认为这些文件是这个组织在多年的行动中收集到的。在该组织的当前运营中积极收集文件,因为它的目标客户是技术支持代表和客户经理,他们定期从客户那里收到这类文件。除非目标来自不同的区域,否则该组将在不同的目标上重用文档。

JavaScript组件是攻击的第一阶段,可以部署其他恶意软件,例如C#spy组件,Golden Chickens组件或几种基于Python的工具。过去,其他研究人员将Evilnum命名为C#组件,但JS组件也被称为Evilnum。我们将组Evilnum命名为这是其旗舰恶意软件的名称,并且我们将各种恶意软件片段称为组件。这些概述如图3所示。

zRCke6YkdH.png!large

每个组件都有自己的C&C服务器,并且每个组件独立运行。恶意软件的操作员手动发送命令来安装其他组件,并在必要时使用危害后的脚本和工具。

恶意软件使用的大多数服务器都是通过IP地址引用的;域名尚未使用。唯一的例外是Golden Chickens组件使用的C&C服务器。如稍后所述,从MaaS提供商处购买的恶意软件。

IP地址引用的内容可以根据托管服务提供商分为两组。它们中的大多数由乌克兰提供商FreeHost托管。其余的与Dotsi一起在荷兰托管。

JS组件:第一个妥协

该组件与C&C服务器通信,无需任何其他程序即可充当后门。但是,在我们看到的大多数攻击中,攻击者会根据需要部署其他组件,并且仅在第一阶段使用JS恶意软件。

该pwncode文章于2018年5月首次提及此JavaScript恶意软件。从那时起,恶意软件发生了变化,我们在图4中说明了这些变化。

HLHoYTLj1m.png!large

1.3版与其他版本之间的差异值得注意,因为C&C的服务器端代码已更改,并且命令也有所不同。在早期版本中,不可能将文件上传到C&C,而只能将文件下载到受害者的计算机。另外,随着新版本的出现,该恶意软件通过一些Python脚本和外部工具例如ChromeCookiesView进行了扩展。

尽管存在差异,但所有版本的核心功能均保持不变,包括从为此目的而专门创建的GitHub,GitLab或Reddit页面检索C&C服务器的地址。图5显示了Reddit页面的示例,该页面由恶意软件解析以检索C&C地址。

8wL6DyUuyF.png!large

该组件通过“运行”注册表项实现持久性,并具有完整的后门功能:它可以下载和执行二进制文件,运行任意命令或将文件从受害计算机上传到C&C服务器。我们不会详细介绍该组件的技术方面,因为Prevailion最近发布了对最新版本的很好的分析。

C#组件:邪恶,不是那么邪恶

2019年3月,Palo Alto Networks描述了与JS组件功能非常相似的恶意软件,但使用C#编码。该版本(2.5)通过将数字除以666获得了C&C的地址,因此被Palo Alto Networks研究人员命名为Evilnum。从那时起,出现了新版本的C#恶意软件,其中最新的是4.0版本,我们在2020年4月首次看到该数字。不再使用数字666,可执行文件的PDB路径显示开发人员将其恶意软件称为“奇迹”。但是,我们将继续命名恶意软件Evilnum,以避免造成混乱。

最新版本捆绑在MSI文件(Windows Installer)中,并且独立于JS组件运行。此外,它具有与JS组件不同的C&C。但是,在我们已经看到的所有情况下,在JavaScript恶意软件获得初始访问权限后,都下载并执行了C#组件。该组件的结构如图6所示。

u7Sf5W3K6r.png!large

执行MSI文件时,会将三个恶意组件以及一些.NET Framework库文件写入%LOCALAPPDATA%\ Microsoft \ Mediia中的磁盘。文件复印机是第一个被执行的文件,它的唯一目的是将文件移动到%LOCALAPPDATA%中的另一个位置。然后执行加载程序,并加载和解密文件System.Memmory.dll的内容,该文件是C#组件的实际恶意有效负载(DLL代理)。AES加密用于DLL和混淆有效负载中的字符串。相同的密钥和初始化向量用于加密所有不同版本中的字符串。

C&C服务器的IP地址采用硬编码和纯文本格式。发送针对/ Validate / valsrv的GET请求,如果响应体包含文本,您将找不到它,则服务器将被接受。否则,将分析GitLab页面以获取第二台服务器的IP地址。

4.0版中具有以下功能:

  • 如果在一段时间内移动了鼠标,请截取屏幕截图,然后将其发送到base64编码的C&C。图像存储在一个名为SC4.P7D的文件中
  • 运行命令
  • 通过cmd.exe运行其他二进制文件
  • 发送信息,例如计算机名称,用户名和已安装的防病毒软件
  • 通过创建注册表项在受感染的系统中保留

指令

可以发送给恶意软件的命令是:

  • killme:停止恶意软件并消除持久性
  • mouse:移动鼠标。通过此操作将截取屏幕截图
  • Cookies:将Chrome Cookie发送到C&C
  • 密码:发送Chrome保存的密码。我们认为他们关注Chrome并不是基于市场份额(毕竟,这些都是针对性的攻击),而是因为处理Cookie和检索存储的密码都很容易
  • 使用cmd.exe直接运行的其他命令

2.5版是C#组件的第一个文档版本。然后我们看到v2.7.1(2019年11月),v3(2019年12月)和v4.0(2020年4月)。最新版本的恶意软件与先前版本之间最重要的区别是:

  • 主要有效载荷是32位DLL。以前,它是一个64位EXE文件。
  • 最新版本的HTTPS通信
  • 不再有“反向”命令。在以前的版本中使用它来打开反向外壳。现在,其他脚本也可以做到这一点。

JS和C#组件相互连接:后者捕获屏幕截图,而前者不捕获屏幕截图,但是它具有用于查找屏幕快照文件并将其发送到其C&C服务器的代码。C#组件还会删除%LOCALAPPDATA%\ Temp文件夹中所有带有.lnk扩展名的文件,从而清除JS组件最初破坏时的剩余内容。因此,即使C#组件的功能有限(无法下载或上传文件),它也可以在其他C&C服务器上提供冗余,它也提供了一个不同的C&C服务器的冗余和额外的持久性,以防JS组件被检测到或从受害者的计算机中删除。

Golden Chickens组件:TerraLoader系列

在少数情况下,Evilnum组还部署了一些从“恶意软件即服务”提供商那里购买的工具。该术语用于描述恶意软件作者,他们不仅提供其恶意二进制文件,还提供任何必要的基础结构(例如C&C服务器),甚至为其犯罪客户提供技术支持。

在这种情况下,MaaS提供商被称为Golden Chickens,并拥有其他客户除此组之外,例如FIN6和Cobalt Group。Visa在2019年2月对Visa归因于FIN6的电子商务商人的攻击中,先前看到了我们在以下各节中描述的所有组件的较旧版本。我们认为,尽管它们的工具集有重叠,FIN6, Cobalt Group和Evilnum Group并不相同。他们只是碰巧共享同一个MaaS提供商。

Golden Chickens工具作为ActiveX组件(OCX文件)提供,并且都包含TerraLoader代码,该代码充当Golden Chickens客户可用的各种有效负载的通用加载器。Evilnum使用这些工具的方式如下:

  • 攻击者手动向JS或C#组件发送命令,让它们从其中一个服务器删除并执行批处理文件。
  • 该批处理文件将写入一个恶意INF文件,并将其作为参数提供给Microsoft实用程序cmstp.exe,该实用程序将执行INF文件中指定的远程脚本。该技术已在MITER ATT&CK知识库中记录为CMSTP;这里有一个使用该技术的示例。另一位出于经济动机的团队Cobalt过去曾使用过这种技术。
  • 远程脚本包含混淆的JS代码,该代码会丢弃OCX文件并通过regsvr32.exe执行该文件。

TerraLoader代码在删除有效负载之前会执行几次完整性检查。这些检查将实施反调试技术,并尝试识别异常情况以防止在沙盒环境中执行。这些技术中的一些技术范围从检测错误的参数,文件名和扩展名到检测硬件断点或识别加载到主题进程中的特定模块。如果这些检查全部通过,则将解密并执行实际的有效负载。

我们已经看到Evilnum在其攻击中部署了以下Golden Chickens有效载荷:

  • More_eggs
  • Meterpreter有效载荷,我们将其称为TerraPreter
  • TerraStealer
  • TerraTV

Positive Technologies的研究人员最近分析了Cobalt组使用的一些工具,包括More_eggs版本6.6,该版本是Evilnum组使用的版本之一。他们对TerraLoader进行了很好的分析,因此我们建议检查他们的报告(第4部分)。

More_eggs

More_eggs是与C&C服务器通信并接受命令的JavaScript后门。过去,其他针对金融公司的组织也使用了它。Evilnum将它与自制的后门一起使用,以便在受害网络上提供冗余和额外的持久性。

我们已经看到Evilnum将32位ActiveX组件与TerraLoader代码一起使用,这些代码运行More_eggs版本6.5、6.6和6.6b(最新版本)。他们通过删除msxsl.exe(一个命令行转换实用程序,它是合法的Microsoft可执行文件)并执行JavaScript代码来实现此目的,这与IRIS在本文中所描述的非常相似。

删除的JavaScript代码是由ActiveX组件动态生成的,在分析过程中需要注意以下几点:

  • 执行exe的初始JS代码具有硬编码的绝对路径,因此从另一个位置或与另一个用户执行它将会失败。
  • 最终的More_eggs有效负载使用密钥加密,该密钥的末尾附加了主机名和处理器系列信息。一个关键例子是:cvyLMmtGSKmPMfzJjGyg552DESKTOP-FQAT01XIntel64系列6型号94 Steping 3,正版Intel

more_time此命令类似于已记录的命令via_c,该命令使用cmd.exe / v / c parameter执行其参数。不同之处在于,它还会将输出发送回C&C(via_c仅发送命令是否成功发送)。

TerraPreter

Evilnum组还使用64位可执行文件来解密并在内存中运行Meterpreter实例。使用Meterpreter使它们具有灵活性,并能够以隐秘且可扩展的方式运行各种有效负载。

这些组件的结构和实施的完整性检查被标识为TerraLoader代码。因此,我们将这些组件称为TerraPreter。主要恶意程序的反编译代码如图7所示。

uiOTD7nDDQ.png!large

标有Dummy的例程调用了一系列不执行任何操作的API。RC4函数初始化通过获取基本字符串并向其附加一个在每次迭代中递增的数字来强制使用该密钥。然后,它使用RC4用候选密钥解密16字节缓冲区。如果解密的缓冲区与硬编码的字符串匹配,则该候选密钥将是选定的RC4密钥,供以后使用。我们认为这可能是一个浪费时间的对抗模拟器的对策。

解密带有有效负载的嵌入式缓冲区后,恶意软件最终将为GrayStringW API函数设置回调,指向已解密的缓冲区。经过多层解码之后,Meterpreter的metsrv.dll被加载到内存中。从这一点开始,我们看到的是尚未更改的常规Meterpreter行为。但是,我们将继续描述如何进行通信。

TerraPreter使用HTTPS与C&C服务器通信,并检索一系列命令。我们看到的C&C是是cdn.lvsys[.]com 和 faxing-mon[.]best。一个重定向到d2nz6secq3489l.cloudfront[.]net。C&C每次收到请求时,都会发送不同的二进制数据,并与一个随机的4字节密钥进行异或。恶意软件会从32字节标头的前4个字节中读取用于解密的密钥,该标头以加密数据为前缀。图8显示了一个示例。

n8DYoPw30g.png!large

C&C发送的第一个命令是core_patch_url,它更改URL的最后一部分以用于后续请求。然后,C&C发送core_negotiate_tlv_encryption及其公钥。从现在开始,将对消息进行XOR加密。

TerraStealer和TerraTV

TerraStealer也被称为SONE或Stealer One。它会扫描许多浏览器,电子邮件,FTP和文件传输应用程序,以窃取Cookie和凭据。我们分析的二进制文件之一已激活日志记录。图9显示了这种日志的一部分。

1iQjRcn0Gx.png!large

该小组使用的另一个组件是TerraTV的变体。它运行合法的TeamViewer应用程序,但隐藏其用户界面元素,以便恶意软件的操作员可以在未检测到的情况下连接到受感染的计算机。

执行后,TerraTV将几个已签名的TeamViewer组件放到C:\ Users \ Public \ Public Documents \ 57494E2D3850535045046373333503532 \中。删除的文件如图10所示。

xsyiPqSVtM.png!large

ACTIVEDS.dll未签名,并且是恶意代码所在的位置。在系统文件夹中有一个具有相同名称的Windows DLL,但是由于恶意DLL与TeamViewer可执行文件位于同一目录中,因此会首先找到该DLL,然后将其加载而不是Windows DLL。这就是所谓的DLL搜索顺序劫持。这个ACTIVEDS.dll在TeamViewer可执行文件中挂钩了几个API调用,以隐藏应用程序的任务栏图标并捕获登录凭据。图11显示了设置钩子的代码部分。

TTbFde2a13.png!large

Windows API调用DefWindowProcW(由TeamViewer可执行文件多次调用以处理定向到其主窗口的消息)与例程挂钩,该例程将TeamViewer的ID和密码写入文件%APPDATA%\ log_CZ72kGqTdU.txt中。有了这些凭据,并且TeamViewer在没有可见的托盘图标或窗口的情况下运行,恶意软件的操作员可以随时通过其GUI远程控制计算机。

Post-compromise工具集

先前提到的恶意组件经常通过Evilnum组的武器库中的几个附加工具进行扩展。在我们看到的大多数compromise中,攻击者使用了公开可用的工具,但还开发了一些自定义脚本。通常,他们将工具保存在服务器上受密码保护的存档中,并根据需要在受害者的PC上将其解压缩。

基于Python的工具

  • 通过SSL脚本进行反向Shell:这是一个非常简短的脚本,它将服务器和端口作为命令行参数。
  • 使用SSL代理PythonProxy,junction, plink和stunnel。它还可以连接到FTP服务器或使用pysoxy。我们已经看到该脚本与“ proxy”设置一起使用,并且185.62.189[.]210作为服务器。
  • LaZagne检索存储的密码
  • IronPython以及用于截屏,键盘记录和录制DirectSound音频的库

其他公开可用的工具

  • PowerShell脚本:例如,旁路-UAC
  • 几个NirSoft实用程序;例如,Mail PassView (用于从电子邮件客户端检索密码)和ProduKey(用于获取Microsoft Office和Windows许可证)。

结论

Evilnum小组已经运作了至少两年,并且在撰写本文时一直很活跃。它具有用于与多个不同服务器进行操作的基础结构:一个用于与JS组件进行通信,另一个用于C#组件,用于存储其工具和泄露的数据,代理服务器等。该小组的目标是为客户提供交易和投资平台的金融科技公司。目标非常明确,数量不多。这一点,再加上该组织在攻击链中使用合法工具,很大程度上使其活动受到关注。借助遥测数据,我们能够将各个点连接起来并发现该组的工作方式,从而发现与其他已知APT组的一些重叠之处。我们认为这一组和其他组共享同一个MaaS提供者,而且Evilnum组还不能与任何其他APT组以前的攻击相关联。

目标软件js代码
本作品采用《CC 协议》,转载必须注明作者和本文链接
KaliPackergeManager是一款功能强大的软件包管理工具,该工具专为Kali Linux操作系统设计,可以给广大研究人员提供一个用户友好的基于菜单的接口,来简化各类软件包和工具的安装和管理流程。
ATM 恶意软件组织 Prilex自 2014 年起就开始活跃,不过在2016 年,该组织决定放弃ATM 业务,将所有注意力集中在 PoS 系统。
被称为“午夜后“和”莎辛那“这两个恶意软件程序的设计目的都是监视和报告运行Windows操作系统的受感染远程主机上的操作,并执行CIA指定的恶意操作。自今年3月以来,维基解密发布了数十万份文件和秘密黑客工具,该组织声称这些文件和工具来自美国中央情报局(CIA)。最新一批是泄密组织“Vault 7”系列的第8版。“午夜后”恶意软件框架根据维基解密的一份声明,“午夜后”允许其运营商在目标系统上动态加载
网络安全研究人员发现了一种新的模块化PoS恶意软件,称为ModPipe,它针对Oracle的PoS餐馆管理软件。自2019年底ESET专家首次发现恶意软件的“基本”组件以来,它就意识到模块的存在。读取ESET发布的分析。ModPipe过滤的凭证允许操作员访问数据库内容,包括各种定义和配置,状态表以及有关POS交易的信息。*主模块 *是执行恶意软件主要功能的核心组件。
随着 5G、云计算、人工智能、大数据、区块链等技术的日新月异,数字化转型进程逐步推进,软件已经成为日常生产生活必备要素之一,渗透到各个行业和领域。
随着 5G、云计算、人工智能、大数据、区块链等技术的日新月异,数字化转型进程逐步推进,软件已经成为日常生产生活必备要素之一,渗透到各个行业和领域。容器、中间件、微服务等技术的演进推动软件行业快速发展,同时带来软件设计开发复杂度不断提升,软件供应链也愈发复杂,全链路安全防护难度不断加大。近年来,软件供应链安全事件频发,对于用户隐私、财产安全乃至国家安全造成重大威胁,自动化安全工具是进行软件供应链安全
软件漏洞是对计算机系统安全的严重威胁。它们往往多年不被发现,直到发现时为时已晚,后果不可逆转。模糊测试是一种用于发现软件或计算机系统中存在的缺陷的技术。通常,模糊测试通过提供无效输入,如随机数据、畸形数据或其任意组合来工作,并试图迫使程序生成错误。神经元模糊测试是一种新的测试软件安全性的方法,它不依赖于黑盒技术。
Android应用攻与防
2021-11-14 06:53:17
安卓系统是由谷歌推出的一款移动终端,由于开源,所以国内出现了许多使用相关系统的厂商,比如小米,oppo,vivo,魅族等。 在国内,这些系统的用户群体甚多。我们日常使用的社交、游戏、工作等应用,很多都装在安卓系统上。 由于安卓系统的开源性,很多安全问题也随之而来。那么,在安卓系统上运行的应用又是如何保证自身安全的呢? 本文通过实战挖洞,展现一下Android应用的防守与攻击方式。
Andrew
暂无描述