在过去的几个月中,Cybereason Nocturnus团队一直在调查了Evilnum恶意组织发起的攻击活动。该组织最初成立于2018年,针对英国和欧盟范围内的公司的几次攻击活动都与这个组织有关。目前,Evilnum开发的恶意工具采用了许多新的技术,根据最近的研究分析,这些恶意软件攻击活动涉及使用JavaScript和C#编写的后门程序,以及通过从恶意软件服务提供商Golden Chickens购买的工具。
与常见的网络钓鱼操作不同,该组织的业务目标似乎很高,主要针对金融科技市场,滥用“了解你的客户规则”(KYC),即客户在开展业务时提供的信息文件。自首次发现以来,该组织主要针对英国和欧盟各地的不同公司。
最近几周,Nocturnus团队观察到Evilnum恶意组织有了新的活动,包括一些与之前观察到的攻击有明显改进的技术。这些变化包括感染链和持久性的改变,随着时间的推移正在扩展的新基础设施,以及使用新的Python脚本远程访问木马(RAT)来监控其受感染的目标。
PyVil RAT具有不同的功能,攻击者能够窃取数据、执行键盘记录和截取屏幕截图,以及部署更多的工具(如LaZagne)以窃取凭证。在本文中,我们将深入探讨Evilnum组织的最新活动,并探索其新的感染链和工具。目前可以确定,攻击者将攻击目标重点对准的是金融部门。经过追踪分析,Evilnum最新开发的工具中具备了许多新的攻击技巧,其中包括:
1.尝试使用合法可执行文件的修改版本,以使安全工具无法检测到;
2.感染链从具有后门功能的JavaScript木马转移到有效载荷的多进程传递过程;
3.新发现的Python脚本RAT称为PyVil RAT,它是使用py2exe编译的,该py2exe能够下载新模块以扩展功能;
据报道,Evilnum组织主要针对英国和其他欧盟国家的金融技术公司。该组织的主要目标是监控被感染的目标并窃取诸如密码、文档、浏览器cookie、电子邮件凭据等信息。
正如过去所报道的那样,除了该组织自己的专有工具外,还观察到Evilnum在某些情况下会部署Golden Chickens工具。 Golden Chickens是一种恶意软件即服务(MaaS)提供商,已被FIN6和Cobalt Group等组织使用。 Evilnum组使用的工具包括More_eggs,TerraPreter,TerraStealer和TerraTV。
Evilnum组织的攻击活动于2018年首次被发现,当时他们使用了臭名昭著的JavaScript Trojan的第一版。该脚本通过查询为此目的创建的特定页面,从GitHub,DigitalPoint和Reddit等站点提取C2地址。这种技术使攻击者能够轻松地更改已部署代理的C2地址,同时在向合法的已知站点发出请求时保持通信屏蔽。
从2018年首次被发现到现在,该组织在不同的攻击中被多次提及,每次都使用新功能升级其工具集,并向该组织的武器库中添加新工具。
Evilnum的初始感染媒介通常以鱼叉式网络钓鱼电子邮件开头,目标是提供包含LNK文件的ZIP压缩文件,这些LNK文件伪装成不同文件的照片,例如驾驶执照,信用卡和水电费。不过这些文件很可能被盗,属于真实个人。
一旦LNK文件被打开,它就会部署JavaScript木马,它会用一个真实的图像文件代替LNK文件,从而使整个操作对用户不可见。
到目前为止,如本文所述,已经观察到JavaScript木马的六种不同迭代版本,每一种都有一些小的变化,但不会改变核心功能。JavaScript代理具有上传和下载文件、窃取cookie、收集防病毒信息、执行命令等功能。
如上所述,除JavaScript组件外,还观察到该组织正在部署C#木马,该木马具有与以前的JavaScript组件类似的功能。
以前的感染链
新的感染链
过去,Evilnum的感染链始于鱼叉式网络钓鱼电子邮件,提供包含伪装成图像的LNK文件的zip压缩文件,这些LNK文件将删除具有上述后门功能的JavaScript木马。
近几周来,我们观察到了这种感染程序的变化:首先,没有将四个不同的LNK文件提供到zip压缩文件中,而该zip压缩文件又将由JPG文件替换,仅压缩文件了一个文件。该LNK文件伪装为PDF,其内容包括几个文档,例如水电费账单,信用卡照片和驾驶执照照片:
ZIP中的LNK文件
与以前的版本一样,执行LNK文件时,会将JavaScript文件写入磁盘并执行,将LNK文件替换为PDF:
PDF中的示例KYC文档
与拥有一系列功能的先前版本不同,此版本的JavaScript主要充当一个下载程序,并且缺少任何C2通信功能。该JavaScript是此新感染链中的第一阶段,并最终传播有效载荷,该载荷是用py2exe编译的Python编写的RAT,Nocturnus研究人员将其称为PyVil RAT:
初始感染过程树
在Cybereason中,我们能够查看进程树以及从LNK文件中提取JavaScript:
Cybereason中的初始感染过程树
通过将包含字符串“END2”(在脚本中注释)的所有行输出到temp文件夹中名为“0.js”的文件中,并将LNK复制为temp文件夹作为“1.lnk”来提取JavaScript:
提取嵌入式JS脚本
JavaScript文件使用与以前版本相似的路径删除二进制文件(“%localappdata%\\ Microsoft \\ Credentials \\ MediaPlayer \\”):
JS文件中的片段
在脚本将LNK文件替换为真实的PDF之后,JS文件将复制到“%localappdata%\ Microsoft \ Credentials \ MediaPlayer \ VideoManager \ media.js”,然后再次执行。
在此脚本的第二次执行中,将提取嵌入在LNK文件内部的名为“ddpp.exe”的可执行文件,并将其保存到“%localappdata%\ Microsoft \ Credentials \ MediaPlayer \ ddpp.exe”。
与以前版本的恶意软件使用“运行”注册表项保持持久性不同,在此新版本中,将为ddpp.exe创建一个名为 “Dolby Selector Task”的计划任务:
ddpp.exe计划任务
有了这个计划的任务,检索有效载荷的第二阶段就可以开始了:
下载程序进程树
在Cybereason中,我们看到有效载荷尝试进行的凭证转储:
Cybereason中的下载程序处理树
DDPP.EXE: TOJANZED程序
ddpp.exe可执行文件似乎是经过修改以执行恶意代码的“Java(™)Web Start Launcher”版本:
ddpp.exe图标
将恶意软件可执行文件与原始Oracle可执行文件进行比较时,我们可以看到文件之间的相似元数据。乍一看,主要区别在于原始Oracle可执行文件已签名,而恶意软件未签名:
ddpp.exe的文件属性
原始javaws.exe文件属性
根据Intezer引擎,在恶意软件可执行文件和合法的Oracle公司文件之间存在大量共享代码:
ddpp.exe代码在Intezer中的重用示例
DDPP.EXE功能
ddpp.exe可执行文件充当感染下一阶段的下载程序。
它由计划任务使用三个参数执行:
1.受感染设备的编码UUID;
2.已安装的防病毒产品的编码列表;
3.数字0;
ddpp.exe计划任务参数
执行ddpp.exe时,它将解压缩shellcode:
ddpp.exe将执行命令传递给shellcode
Shellocode使用GET请求连接到C2,并在URI中发送接收到的上述三个参数。反过来,恶意软件又接收另一个加密的可执行文件,该文件以“fplayer.exe”的形式保存在磁盘上,并使用新的计划任务执行:
通过HTTP的ddpp.exe C2通信
FPLAYER.EXE
fplayer.exe充当另一个下载程序,然后,已下载的有效载荷由fplayer.exe加载到内存中,并用作无文件RAT。该文件保存在“%localappdata%\ microsoft \ media Player \ player \ fplayer.exe”中,并与名为“Adobe Update Task” 的调度任务一起执行:
fplayer.exe计划任务
Fplayer.exe也通过几个参数执行:
1.受感染设备的编码UUID;
2.PyVil RAT稍后将使用三个参数:
“ -m”:计划任务的名称
“ -f”:告诉PyVil RAT解析其余参数
“ -t”:更新计划任务
fplayer.exe计划的任务参数
与ddpp.exe相似,fplayer.exe似乎是“Stereoscopic 3D driver Installer”的修改版本:
fplayer.exe图标
同样在这里,我们可以看到文件之间的相似元数据,不同之处在于原始Nvidia可执行文件已签名,而恶意软件未签名:
fplayer.exe的文件属性
原始nvStinst.exe文件属性
同样,根据Intezer引擎,这一次与Nvidia Corporation的代码相似度很高:
Intezer中的fplayer.exe代码重用
当执行fplayer.exe时,它还会解压缩shellcode:
fplayer.exe将执行传递给shellcode
Shellcode使用GET请求连接到C2,这一次仅在URI中发送已编码的UUID。观察到fplayer.exe接收到另一个加密的可执行文件,该文件另存为“%localappdata%\ Microsoft \ Media Player \ Player \ devAHJE.tmp”:
fplayer.exe C2通信
进程解密接收到的可执行文件,并将其映射到内存,然后将其传递给执行程序。
解密后的文件是已编译的py2exe可执行文件,py2exe是一个Python扩展,它将Python脚本转换为Microsoft Windows可执行文件。
PYVIL:新的PYTHON RAT
为了防止使用现有工具反编译有效载荷,py2exe内的Python代码会增加额外的层。使用内存转储,我们能够提取Python代码的第一层。第一部分代码对第二层Python代码进行解码和解压缩:
去混淆代码的第一层
Python代码的第二层对主要RAT和导入的库进行解码并将其加载到内存中:
第二层代码段:提取Python库
PyVil RAT具有以下功能:
1.键盘记录器;
2.运行cmd命令;
3.截屏;
4.下载更多Python脚本以获得其他功能
5.删除和上传可执行文件
6.打开SSH shell;
7.收集信息,例如:
7.1已安装防病毒产品
7.2已连接USB设备
7.3Chrome版本
PyVil RAT的Global变量可以清楚地了解恶意软件的功能:
显示PyVil RAT功能的全局变量
PyVil RAT具有一个配置模块,其中包含与C2通信时使用的恶意软件版本、C2域和用户代理:
配置模块
PyVil RAT的C2通信是通过POST HTTP请求完成的,并使用以base64编码的硬编码密钥对RC4进行了加密:
RC4秘钥
数据从受感染设备被发送到C2
此加密数据包含从设备和配置收集的不同数据的Json:
发送到C2的一个解密JSON
C2通信中使用的字段
在对PyVil RAT进行分析的过程中,恶意软件多次从C2接收到要执行的新Python模块。这个Python模块是Evilnum组过去使用的LaZagne Project的自定义版本。该脚本将尝试转储密码并收集cookie信息以发送到C2:
解密发送到C2的LaZagne输出
基础设施功能的扩展
在该组织的先前活动中,Evilnum的工具避免使用域与C2进行通信,而仅使用IP地址。最近几周,随着Evilnum不断改进的基础架构,研究者又发现了一个有趣的攻击趋势。
通过跟踪Evilnum在过去几周中建立的新基础架构,可以看到扩展的趋势。尽管C2 IP地址每隔几周更改一次,但与此IP地址关联的域列表却在不断增长。几周前,与恶意软件关联的三个域被解析为相同的IP地址:
此后不久,所有三个域的C2 IP地址都更改了。此外,三个新域使用相同的IP地址注册,并被恶意软件使用:
几周后,这种变化再次发生。所有域的解析地址在几天之内发生了变化,并增加了三个新域:
Evilnum的基础架构
总结
在本文中,我们检查到了Evilnum组织的新感染链已经投入到实际工作中,从2018年开始,加入了一种新的基于Python的远程访问特洛伊木马(RAT),该木马可以窃取密码、文档、浏览器cookie、电子邮件凭据和其他敏感信息,且以金融科技行业为目标。
除了使用带有假冒的鱼叉式网络钓鱼电子邮件(KYC)来诱骗金融业员工触发恶意软件外,攻击还从使用具有后门功能的基于JavaScript的特洛伊木马转移到了能够提供隐藏在合法可执行文件的修改版本中的恶意有效载荷,旨在逃避检测。
最近几周,研究人员发现该组织的感染程序发生了重大变化,不再使用JavaScript后门功能,而是将其用作下载新攻击工具的一种手段。多进程传递过程(“ ddpp.exe”)在执行时,解压缩shellcode以便与攻击者控制的服务器建立通信,并接收第二个加密的可执行文件(“ fplayer.exe”),该文件用作下一阶段的下载程序以进行提取Python RAT。在该小组的先前活动中,Evilnum的工具避免使用域与C2进行通信,而仅使用IP地址。虽然C2 IP地址每隔几周更改一次,但与此IP地址关联的域列表却在不断增长。
该组织部署了一种新型的Python RAT,Nocturnus的研究人员将其称为PyVil RAT,它具有收集信息、获取屏幕截图、键盘记录数据,打开SSH Shell和部署新工具的能力。这些工具可以是Python模块(例如LaZagne)或可执行文件,因此可以根据需要添加更多功能来进行攻击,这种策略和工具上的创新使该组织得以疯狂发起攻击。
MITRE ATT&CK BREAKDOWN
本文翻译自:https://www.cybereason.com/blog/no-rest-for-the-wicked-evilnum-unleashes-pyvil-rat如若转载,请注明原文地址。