当前位置: 首页 > 科技观察

Evilnum使用新的基于Python的木马攻击金融公司

时间:2023-03-13 13:13:52 科技观察

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