MATA:多平台恶意软件框架
随着IT和OT环境变得越来越复杂,对手很快就会适应其攻击策略。例如,随着用户工作环境的多样化,对手正忙于获取TTP以渗透到系统中。最近,我们向威胁情报门户网站客户报告了一个内部称为MATA的类似恶意软件框架。MATA恶意软件框架具有多个组件,例如加载程序,协调器和插件。这个全面的框架能够针对Windows,Linux和macOS操作系统。
我们发现的与MATA相关的第一手物品在2018年4月左右使用。此后,这个高级恶意软件框架的幕后行为者积极地使用它来渗透全球的企业实体。我们从遥测中找出了几名受害者,并弄清了该恶意软件框架的目的。
Windows版本的MATA
Windows版本的MATA由几个组件组成。根据我们的遥测,参与者使用加载程序恶意软件加载了加密的下一阶段有效负载。我们不确定加载的负载是否是协调器恶意软件,但是几乎所有受害者都将加载器和协调器放在同一台计算机上。
Windows版MATA的组件
Loader
该Loader采用十六进制编码,将其转换为二进制并对其进行AES解密,以获得有效负载文件的路径。每个加载程序都有一个硬编码的路径来加载加密的有效负载。然后,将有效负载文件进行AES解密并加载。
从一个受感染的受害者中发现的加载程序恶意软件中,我们发现执行加载程序恶意软件的父进程是“ C:\ Windows \ System32 \ wbem \ WmiPrvSE.exe”进程。WmiPrvSE.exe进程是“ WMI Provider Host进程”,通常意味着参与者已从远程主机执行了该加载程序恶意软件,以进行横向移动。因此,我们估计参与者使用此加载程序来破坏同一网络中的其他主机。
Orchestrator和插件
我们在受害者计算机上的lsass.exe进程中发现了Orchestrator恶意软件。该Orchestrator恶意软件从注册表项加载加密的配置数据,并使用AES算法对其解密。除非注册表值存在,否则恶意软件会使用硬编码的配置数据。以下是来自一个Orchestrator恶意软件样本的配置值示例:
编号 | 随机的24位数字 |
---|---|
内部版本号 | 3.1.1(0x030101) |
超时 | 20分钟 |
C2地址 | 108.170.31 [.] 81:443192.210.239 [.] 122:443111.90.146 [.] 105:443 |
启动时将加载的插件的磁盘路径或URL(最多15个) | 未在此恶意软件中使用 |
Orchestrator可以同时加载15个插件。有三种加载方式:
- 从指定的HTTP或HTTPS服务器下载插件
- 从指定的磁盘路径加载AES加密的插件文件
- 从当前的MataNet连接下载插件文件
恶意软件的基础架构称为MataNet。对于秘密通信,他们借助“ openssl-1.1.0f”开放源代码库采用TLS1.2连接,该库在该模块内部静态链接。此外,MataNet节点之间的通信使用随机的RC4会话密钥加密。MataNet同时实现客户端和服务器模式。在服务器模式下,将加载证书文件“ c_2910.cls”和私钥文件“ k_3872.cls”以进行TLS加密。但是,从不使用此模式。
MataNet客户端与其C2建立定期连接。每个消息都有一个12字节长的报头,其中第一个DWORD是消息ID,其余的是辅助数据,如下表所示:
讯息编号 | 描述 |
---|---|
0x400 | 完成当前的MataNet会话并延迟下一个会话,直到更改逻辑驱动器的数量或启动新的活动用户会话为止。 |
0x500 | 删除配置注册表项,并停止执行MATA,直到下次重新启动。 |
0x601 | 将配置数据发送到C2。 |
0x602 | 下载并设置新的配置数据。 |
0x700 | 向C2发送受感染的主机基本信息,例如受害者ID,内部版本号,Windows版本,计算机名,用户名,IP地址和MAC地址。 |
0x701 | 向C2发送配置设置,例如受害者ID,内部版本号和会话超时。 |
orchestrator 的主要功能是加载每个插件文件并在内存中执行它们。每个DLL文件类型插件都为编排器提供了一个接口,可以控制中病毒的计算机。
插件名称 | 描述 |
---|---|
MATA_Plug_Cmd.dll | 使用指定的参数运行“ cmd.exe / c”或“ powershell.exe”,并接收命令执行的输出。 |
MATA_Plug_Process.dll | 操作过程(列出过程,删除过程,创建过程,具有登录用户会话ID的创建过程)。 |
MATA_Plug_TestConnect.dll | 检查具有给定IP:端口或IP范围的TCP连接。ping主机或IP范围。 |
MATA_Plug_WebProxy.dll | 创建一个HTTP代理服务器。服务器侦听指定端口上的传入TCP连接,处理从客户端到HTTP服务器的CONNECT请求,并在客户端和服务器之间转发所有流量。 |
MATA_Plug_File.dll | 处理文件(将接收到的数据写入给定文件,在压缩LZNT1之后发送给定文件,将给定文件夹压缩到%TEMP%\〜DESKTOP [8random hex]。ZIP并发送,擦除给定文件,搜索文件,列表文件和文件夹,时间戳文件) )。 |
MATA_Plug_Load.dll | 使用PID和进程名称将DLL文件注入给定进程,或者将XORed DLL文件注入给定进程,还可以选择使用参数调用export函数。 |
MATA_Plug_P2PReverse.dll | 在一侧的MataNet服务器与另一侧的任意TCP服务器之间连接,然后在它们之间转发流量。在此接口的调用上指定了双方的IP和端口。 |
MATA_Plug_WebProxy插件中的字符串(“ Proxy-agent:matt-dot-net ” )是对Matt McKnight的开源项目的引用,虽然有一些区别,但Matt的项目是用C#而不是C ++编写的。MATA代理明显更简单,例如,因为没有缓存,也没有SSL支持。MATA的作者有可能找到并使用了Matt代理服务器早期版本的源代码。看起来恶意软件作者将代码从C#重写为C ++,但没有改变这个足迹。
MATA_Plug_WebProxy.dll插件的代理
Non-Windows版本的MATA
MATA框架不仅针对Windows系统,而且针对Linux和macOS系统。
Linux版本
在研究过程中,我们还发现了一个包含不同MATA文件和一套黑客软件。在这种情况下,软件包是在一个合法的分发站点上发现的,这可能表明这是分发恶意软件的方式。它包括Windows MATA orchestrator,用于列出文件夹的Linux工具,用于利用Atlassian Confluence Server(CVE-2019-3396)的脚本,合法的socat工具以及与一组插件捆绑在一起的MATA Orchestrator的Linux版本。
该模块旨在作为守护程序运行。启动后,模块通过从“ /var/run/init.pid”读取PID来检查它是否已经在运行,并检查“ / proc /%pid%/ cmdline”文件内容是否等于“ / flash / bin” / mountd”。“/flash/bin/mountd”对于标准的Linux桌面或服务器安装来说是一个不常见的路径。这条路径表明MATA的Linux目标是无磁盘网络设备,比如基于x86_64的路由器、防火墙或物联网设备。模块可以通过“/pro”开关来运行,从而跳过“init.pid”检查。经过aes加密的配置存储在“$HOME/.memcache”文件。此模块的行为与前面描述的Windows MATA orchestrator相同。Linux MATA和相应Windows插件的名称为:
Linux插件 | 对应的Windows插件 |
---|---|
/ bin / bash | MATA_Plug_Cmd |
plugin_file | MATA_Plug_File |
plugin_process | MATA_Plug_Process |
plugin_test | MATA_Plug_TestConnect |
plugin_reverse_p2p | MATA_Plug_P2P反向 |
请注意,Linux版本的MATA具有一个logend插件。该插件实现了一个有趣的新功能,即“扫描”命令,该命令尝试在端口8291(用于管理MikroTik RouterOS设备)和8292(“彭博专业版”软件)上建立TCP连接,并随机排除IP地址(不属于私有地址)网络。任何成功的连接都会被记录并发送到C2。攻击者可能会将这些日志用于目标选择。
macOS版本
我们发现了另一个针对macOS的MATA恶意软件目标,该目标已于2020年4月8日上载到VirusTotal。恶意的Apple Disk Image文件是基于名为MinaOTP的开源两因素身份验证应用程序的Trojanized macOS应用程序。
Trojanized macOS应用程序
Trojanized main TinkaOTP模块负责将恶意Mach-O文件移动到Library文件夹,并使用以下命令执行该文件:
cp TinkaOTP .app/Contents/Resources/Base.lproj/SubMenu.nib ~/Library/.mina > /dev/null 2>&1 && chmod +x ~/Library/.mina > /dev/null 2>&1 && ~/Library/.mina > /dev/null 2>&1
启动后,此恶意Mach-o文件从“ /Library/Caches/com.apple.appstotore.db”中加载初始配置文件。
就像在不同平台上运行的另一种病毒一样,macOS MATA恶意软件也基于插件运行。它的插件列表与Linux版本几乎相同,除了它还包含一个名为“ plugin_socks”的插件。“ plugin_socks”插件类似于“ plugin_reverse_p2p”,负责配置代理服务器。
Victims
基于遥测,我们已经能够识别出一些被MATA框架感染的受害者。感染不限于特定区域。在波兰,德国,土耳其,韩国,日本和印度记录了受害人。而且,参与者破坏了包括软件开发公司,电子商务公司和互联网服务提供商在内的各个行业的系统。
我们评估了APT演员使用了MATA,并从一名受害者中确定了他们的意图之一。在部署MATA恶意软件及其插件之后,攻击者试图找到受害者的数据库并执行多个数据库查询以获取客户列表。我们不确定他们是否完成了客户数据库的筛选,但是可以确定受害者的客户数据库是他们的兴趣之一。
MATA的受害者
归因
我们评估了MATA框架与 Lazarus APT组之间的联系。MATA协调器使用两个唯一的文件名c_2910.cls和k_3872.cls,这些文件名以前仅在几种Manuscrypt的新版本中才能看到,包括在US-CERT出版物中提到的样本(0137f688436c468d43b3e50878ec1a1f) 。
唯一文件名
此外,MATA使用全局配置数据,包括随机生成的会话ID、基于日期的版本信息、睡眠间隔和多个C2s和C2服务器地址。我们已经看到了一个版本(ab09f6a249ca88d1a036eee7a02cdd16)与MATA框架共享类似的配置结构。这个古老的Manuscrypt变体是一个活跃的后门,有类似的配置数据,如会话ID,睡眠间隔,C2地址的数量,感染日期,和C2地址。它们不完全相同,但它们有相似的结构。
Manuscrypt配置结构
结论
MATA框架的重要之处在于它能够针对多个平台:Windows、Linux和macOS。此外,这个高级恶意软件框架背后的行动者利用它进行一种网络犯罪攻击,窃取客户数据库和分发勒索软件。我们估计这个恶意软件会继续发展,所以我们会监控它的活动以保护用户。
