thumbnail
英文原文:https://www.seqrite.com/blog/unmasking-cronus-how-fake-paypal-documents-deliver-fileless-ransomware-via-powershell/
seqrite

Seqrite Labs APT-Team 最近发现了多个虚假 PayPal 诱饵传播 Cronus 勒索软件的活动,Cronus 是用 PowerShell 开发的,可直接在内存中执行,而无需落地。

本篇文章将探讨我们在遥测分析过程中遇到的活动的复杂性和技术细节,我们将检查该活动的各个阶段,从初始文档负载开始,然后继续提取和分析恶意 VBA 脚本,最后检查使用反射 DLL 加载执行 PowerShell 有效负载。 

一、初步调查结果

2024 年 7 月 14 日,团队在 VirusTotal 上发现了一个恶意文档,具体是命中了我们对包含恶意嵌入 VBA 宏的文件使用的规则。  

经过初步分析,我们发现恶意诱饵是一个名为 paypal_charges.doc 的收据文档,从文档流中提取恶意宏后,我们发现恶意 VBA 正在下载第二阶段基于 PowerShell 的加载程序 (8eef4df388f2217caec3dc26.ps1),该加载程序使用反射加载技术加载有勒索功能的 DLL。NETWALKER 等勒索软件组织此前曾使用此技术来部署勒索软件。 

二、感染链

三、技术分析

分析分成三个部分

3.1 初始感染

最初的感染是由恶意 Word 文档引起的,文档主要通过网络钓鱼媒介传播。因此,在决定深入研究恶意宏流之前先深入研究诱饵的内容。

诱饵只是一个空白的 Word 文档,因此,我们决定深入研究该恶意文档流,并快速将其提取以进行进一步分析。

在弄清楚嵌入式宏的工作原理后,发现它们被垃圾注释和变量名称严重混淆,使得分析变得更具挑战性。因此,决定对 VBA 宏进行反混淆,它看起来像这样。

该宏使用 powershell.exe 来运行 Base64 编码的字符串作为参数,解码内容显示它正在尝试从服务器下载第二阶段的有效负载。 

3.2 恶意 PowerShell 加载程序

文件的扩展名是 .JPEG,而文件类型是 PowerShell 文件。因此,我们很快确定这是恶意 PowerShell 加载程序。  

正如预期的那样,第二阶段被垃圾代码严重混淆,这使得分析变得困难。因此,我们决定通过删除垃圾代码并观察垃圾代码的使用模式来手动对 PowerShell 脚本进行反混淆。

脚本使用三层垃圾代码进行混淆,其中包含一组如下序列:

if ($a.ProcessName -like “junkcodesequenceone”){  
….junk code here….. 
….junk code here….. 
….junk code here….. 
} 

if ($a.ProcessName -like “junkcodesequencetwo”){  
….junk code here….. 
….junk code here….. 
….junk code here….. 
} 

..Actual Powershell script… 

if ($a.ProcessName -like “junkcodesequencethree”){  
….junk code here….. 
….junk code here….. 
….junk code here….. 
} 

查看实际的 PowerShell 代码,我们发现该文件包含 .NET 程序集的两字节数组,这些数组使用反射加载进一步打包到内存中,最后阶段是包含勒索软件的恶意 .NET 程序集。 

3.3 恶意 .NET 程序集

让我们检查一下在第二阶段提取的恶意 .NET 程序集,提取后,将 DLL 加载到 Detect-It-Easy (DIE) 工具中,以识别已加壳或受保护的 .NET 程序集文件。

第一个 .NET 程序集是使用 .NET Reactor 进行保护的,对其 解压 并使用 dnSpy 工具进一步探索程序集文件以获取详细的代码概述。 

解压第一个 DLL 文件 TEStxx.dll 后,我们发现加载的程序集负责执行进程注入。在本例中,它将第二个可执行文件 RegSvcs.exe 注入进程的内存中。因此,现在让我们调查第二个恶意 .NET 可执行文件。

查看最终可执行文件的 Main 方法,我们可以看到代码执行与基于勒索软件的行为相关的各种任务,例如更改壁纸、枚举和加密特定文件以及终止正在运行的进程。 

此外,我们还可以看到 TRIPLE_ENCRYPT 、 FULL_ENCRYPT 和 RECURSIVE_DIRECTORY_LOOK、EXCEPTIONAL_FILE 等方法。因此,我们将研究该勒索软件的一些令人兴奋的功能。

四、自我复制

勒索软件将自身复制到 C:\Users\\AppData\Local 路径,如果文件已存在或已被复制,它会继续删除自身。一旦完成复制到该位置,它就会开始该过程。

五、枚举

勒索软件首先枚举本地磁盘驱动器,然后枚举驱动器内文件,还检查 \System\ 目录中的特定文件夹并排除它们。然后,它继续创建一个用于递归目录查找的新任务。

它针对某些文件类型进行加密,如下所示:

.myd 	.ndf 	.qry 	.sdb 	.sdf 	.tmd 	.tgz 
.lzo 	.txt 	.jar 	.dat 	.contact 	.settings 	.doc 
.docx 	.xls 	.xlsx 	.ppt 	.pptx 	.odt 	.jpg 
.mka 	.mhtml 	.oqy 	.png 	.csv 	.py 	.sql 
.indd 	.cs 	.mp3 	.mp4 	.dwg 	.zip 	.rar 
.mov 	.rtf 	.bmp 	.mkv 	.avi 	.apk 	.lnk 
.dib 	.dic 	.dif 	.mdb 	.php 	.asp 	.aspx 
.html 	.htm 	.xml 	.psd 	.pdf 	.xla 	.cub 
.dae 	.divx 	.iso 	.7zip 	.pdb 	.ico 	.pas 
.db 	.wmv 	.swf 	.cer 	.bak 	.backup 	.accdb 
.bay 	.p7c 	.exif 	.vss 	.raw 	.m4a 	.wma 
.ace 	.arj 	.bz2 	.cab 	.gzip 	.lzh 	.tar 
.jpeg 	.xz 	.mpeg 	.torrent 	.mpg 	.core 	.flv 
.sie 	.sum 	.ibank 	.wallet 	.css 	.js 	.rb 
.crt 	.xlsm 	.xlsb 	.7z 	.cpp 	.java 	.jpe 
.ini 	.blob 	.wps 	.docm 	.wav 	.3gp 	.gif 
.log 	.gz 	.config 	.vb 	.m1v 	.sln 	.pst 
.obj 	.xlam 	.djvu 	.inc 	.cvs 	.dbf 	.tbi 
.wpd 	.dot 	.dotx 	.webm 	.m4v 	.amv 	.m4p 
.svg 	.ods 	.bk 	.vdi 	.vmdk 	.onepkg 	.accde 
.jsp 	.json 	.xltx 	.vsdx 	.uxdc 	.udl 	.3ds 
.3fr 	.3g2 	.accda 	.accdc 	.accdw 	.adp 	.ai 
.ai3 	.ai4 	.ai5 	.ai6 	.ai7 	.ai8 	.arw 
.ascx 	.asm 	.asmx 	.avs 	.bin 	.cfm 	.dbx 
.dcm 	.dcr 	.pict 	.rgbe 	.dwt 	.f4v 	.exr 
.kwm 	.max 	.mda 	.mde 	.mdf 	.mdw 	.mht 
.mpv 	.msg 	.myi 	.nef 	.odc 	.geo 	.swift 
.odm 	.odp 	.oft 	.orf 	.pfx 	.p12 	.pl 
.pls 	.safe 	.tab 	.vbs 	.xlk 	.xlm 	.xlt 
.xltm 	.svgz 	.slk 	.tar.gz 	.dmg 	.ps 	.psb 
.tif 	.rss 	.key 	.vob 	.epsp 	.dc3 	.iff 
.opt 	.onetoc2 	.nrw 	.pptm 	.potx 	.potm 	.pot 
.xlw 	.xps 	.xsd 	.xsf 	.xsl 	.kmz 	.accdr 
.stm 	.accdt 	.ppam 	.pps 	.ppsm 	.1cd 	.p7b 
.wdb 	.sqlite 	.sqlite3 	.dacpac 	.zipx 	.lzma 	.z 
.tar.xz 	.pam 	.r3d 	.ova 	.1c 	.dt 	.c 
.vmx 	.xhtml 	.ckp 	.db3 	.dbc 	.dbs 	.dbt 
.dbv 	.frm 	.mwb 	.mrg 	.txz 	.vbox 	.wmf 
.wim 	.xtp2 	.xsn 	.xslt

六、加密

勒索软件根据文件大小使用两种不同类型的加密方法,对于小于 512 KB 的文件,FULL_ENCRYPT 方法会立即加密文件。对于大于 512 KB 的文件,TRIPLE_ENCRYPT 方法将文件内容分成不同的部分并对其进行加密。两种方法都使用 AES。

添加了一点 EXCEPTIONAL_FILE,其中上述文件被排除并加密。在执行加密时,它还会删除勒索软件注释以及名为 cronus.txt 的文件。

七、进程终止

勒索软件在枚举所有正在运行的进程后通过结束主窗口来终止许多进程,被它终止的进程列表如下:

sqlwriter 	sqbcoreservice 	VirtualBoxVM 	sqlagent 	sqlbrowser 	sqlservr 	code 
steam 	zoolz 	agntsvc 	firefoxconfig 	infopath 	synctime 	VBoxSVC 
tbirdconfig 	thebat 	thebat64 	isqlplussvc 	mydesktopservice 	mysqld 	ocssd 
onenote 	mspub 	mydesktopqos 	CNTAoSMgr 	Ntrtscan 	vmplayer 	oracle 
outlook 	powerpnt 	wps 	xfssvccon 	ProcessHacker 	dbeng50 	dbsnmp 
encsvc 	excel 	tmlisten 	PccNTMon 	mysqld-nt 	mysqld-opt 	ocautoupds 
ocomm 	msaccess 	msftesql 	thunderbird 	visio 	winword 	wordpad 
mbamtray

一旦成功终止上述所有进程,它就会再次调用 ALL_DRIVES 方法,该方法进一步枚举和加密特定文件。

八、持久性

勒索软件滥用 RunKeys 来实现持久性,因为它将一个名为 cronus 的新密钥附加到上述注册表配置单元,该注册表配置单元在启动时运行二进制文件 RegSvcs.exe 。 

九、数据处理

勒索软件枚举剪贴板内容,如果它在剪贴板上发现任何比特币地址,则会将其替换为威胁行为者的 BTC 钱包地址,该地址用于提取赎金金额。

勒索信中突出显示了一个 BTC 钱包地址,经调查发现该地址为空。

十、代码重叠

通过研究和查看另一个恶意软件样本库,可以得出结论,PowerShell 加载程序 (此活动中使用的 DLL 注入器) 中存在的代码确实与其他活跃的无文件恶意软件活动重叠,如下所示:

  • Revenge RAT 
  • Arrow RAT 
  • Async RAT 
  • Andromeda RAT 
  • XWorm njRAT 

十一、结论

我们发现 Cronus 勒索软件是一种无文件恶意软件变种,非常新且正在积极传播。上述作案手法是将勒索软件投放到各种目标计算机上。

十二、IoCs

HASH

  • 69b6bc4db69680118781e7a9f2580738088930fa04884755f23904fa19e638e3 - paypal_charges.doc
  • 9ebf60ad31f0eb1fa303e0b00f9cc605c5013ea30771e6b14409cb70af7416cb - paypal_charges.doc 
  • afb95b1b2092020ed98312602c300f51daca14bb3d65503df3c5ca4776027987 - ~WRL003.tmp 
  • 629587e592130b86418d17d6b8cc52b6f378f39f1b5e8caa4038cfa7120b2a53  - 8eef4df388f2217caec3dc26.ps1 
  • dd78c6dc62463aba24cdbea3968cbcc1c7b97a736ef069d99d6512b10c5e91f3 - TEStxx.dll
  • 42551531be1c5abfdd24a3465788c659a038141de61976787b0862664df95aad - p000.exe

URLs

  • hxxps://eternal[.]lol/file/