最近,趋势科技管理的XDR (MxDR)团队处理了涉及AsyncRAT的各种样本,这是一种具有多种功能的远程访问工具(RAT),例如键盘记录和远程桌面控制,这种工具可以使其对受害者构成重大攻击。例如,攻击者会冒充当地银行和执法机构,将AsyncRAT传播给他们的目标。
2021年,AsyncRAT参与了名为“Spalax行动”的网络钓鱼活动,这些网络钓鱼活动一直持续到2021年底和2022年初。他们使用HTML附件进行AsyncRAT传播,同时还集成了反射加载技术。
t0:用户下载带密码保护的ZIP文件downloadedFile_SSAfnmeddOFzc.zip;
1分20秒:用户解压缩包含.wsf脚本的ZIP文件
1分26秒:下载并执行第一个有效负载,导致下载第二个有效负载;
1分35秒:自动启动;
1分59秒:下载并执行第二个有效负载;
5分48秒:进程注入到aspnet_compiler.exe和通过动态DNS的命令与控制(C&C)连接
下图描述了对涉及aspnet_compiler.exe的可疑活动的检测,该活动试图与外部IP地址45[.]141[.]215[.]40建立连接。同时,我们的分析揭示了有关PowerShell脚本和批处理文件的执行情况。我们能够使用这些数据作为支点,回溯并调查文件的入口点及其附加活动。
被触发的工作台警报
我们发现,攻击的触发因素是一个最初通过谷歌Chrome下载的名为downloadd_file_ssafnmeddofzc .zip的文件。
通过Chrome浏览器下载downloadfile_ssafnmeddofzc .zip文件
用户打开ZIP文件,可以发现其中包含一个名为downloaddfile_ssafnmedd .wsf的脚本文件。我们收集了ZIP文件,发现它是受密码保护的。
根据最近的报告显示,AsyncRAT通常通过垃圾邮件传播。我们强烈怀疑用户可能已经收到了解压ZIP文件的密码,以及恶意链接。用户使用密码提取并打开了文件,突出了攻击者用来规避检测的常用策略,即使用电子邮件中包含的密码提取ZIP文件。
检查执行配置文件会发现wscript.exe是通过Windows资源管理器启动的,这表明用户通过双击它来执行该文件。安装顺序包括创建和执行多个PowerShell脚本(.ps1)、VBScript (.vbs)和批处理文件(.bat)。
执行downloadd_file_ssafnmeddofzc .wsf文件并创建多个脚本文件
通过使用反恶意软件扫描接口(AMSI)监测(TELEMETRY_AMSI_EXECUTE),我们在运行时获得了与downdownloadfile_ssafnmeddofzc .wsf相关的数据,使我们能够辨别文件的目的及其相应的活动。
脚本下载file_ssafnmeddofzc .wsf(.wsf)是一个Windows脚本文件,它使用PowerShell和VBScript命令的混合来执行一系列活动。它创建了一个WScript.Shell对象,通常用于执行Shell命令,并在C:\Users\Public目录中生成名为VLCdllFrame.xml的文本文件。作为第二个参数的" true "值表示,如果该文件已经存在,则该文件将被覆盖。
脚本使用start - bittransfer命令从hxxp://185[.]81[.]157[.]246:222/dd/mc.jpg下载文件,以“snakers.zip”保存。随后,它将内容提取到C:\Users\Public目录中,或者在某些情况下提取到C:\Users\Public\ pictures \中。执行PowerShell命令后,脚本将删除之前创建的VLCdllFrame.xml文件。
我们收集了snake .zip并分析了其内容,发现其存在各种恶意脚本,这些脚本都是AsyncRAT安装例程的组成部分。
AsyncRAT安装例程的组件
下图描述了由Vision One生成的执行概要文件,说明了当用户打开文件downloadd_file_ssafnmeddofzc .wsf时触发的AsyncRAT安装例程中的事件序列。
AsyncRAT安装链和代码注入到aspnet_compiler.exe
我们观察到aspnet_compiler.exe正在建立与IP地址208[.]95[.]112[.]1:80(IP-api[.]com)和45[.]141[.]215.40:4782(httpswin10[.]kozow[.].com)的连接。前者用于地理位置检查,而后者(被标识为免费动态DNS)可能被攻击者用来混淆其真实服务器IP地址,从而实现快速更改以逃避检测。在其他情况下,可以看到它连接到66escobar181[.]ddns[.]net,另一个动态DNS服务器。
连接到外部IP地址45[.]141[.]215.40(动态DNS)的aspnet_compiler.exe可执行文件
计划任务的创建名为Reklam或Rekill,提供了AsyncRAT持久性功能。下图显示了Webcentral.ps1的内容,该脚本负责创建一个计划任务,该任务使用Windows任务调度程序服务每两分钟执行一次C:\Users\Public\hash.vbs或C:\Users\Public \Pictures\hash.vbs。
Webcentral.ps1为持久性创建计划任务(由AMSI遥测记录)脚本
通过分析脚本,我们能够更深入地了解攻击的目标。下图说明了该攻击如何策略性地使用多层脚本作为逃避检测的手段。随后,它继续向aspnet_compiler.exe执行代码注入,这是另一种不被检测到的方法。
接下来,我们将讨论从snakes .zip中提取的每个脚本的目标。
AsyncRAT安装例程
脚本使用net session命令检查它是否以管理权限运行(第9-10行)。如果成功,它会向攻击者标记存在管理权限(isAdmin),然后运行存储在变量executionCommand中的命令,将其定向到批处理文件(C:\Users\Public\Webcentral.bat)。该脚本包括错误处理技术,使用On Error Resume Next和On Error GoTo 0语法来管理错误并保持脚本顺利运行。
Webcentral.vbs检查管理权限,然后执行Webcentral.bat
bat脚本启动PowerShell执行位于C:\Users\Public\Webcentral.ps1的脚本。它使用-NoProfile,-WindowStyle Hidden和-ExecutionPolicy Bypass参数在隐藏窗口中使用绕过的执行策略运行PowerShell。
Webcentral.bat执行Webcentral.ps1
Webcentral.ps1脚本创建一个名为Reklam的计划任务,该任务每两分钟运行一次脚本(hash.vbs)。计划任务已启用,即使设备使用电池运行,也可以启动。hash.vbs脚本位于C:\Users\Public\hash.vbs目录中,作为计划任务的一个操作执行。该任务是使用Windows任务计划程序服务注册的。
Webcentral.ps1创建计划任务并将其设置为每两分钟运行一次Hash.vbs
Hash.vbs与Webcentral.vbs是相同的脚本,但指向不同的文件(C:\Users\Public\Hash.bat)。
与Hash.vbs类似,Hash.bat是Webscentral.bat的脚本,但指向不同的文件(C:\Users\Public\Hash.ps1)。
Hash.ps1解码并加载以msg.txt和runpe.txt编码的PE文件,触发aspnet_compiler.exe的执行。它使用解码后的runpe.txt中的函数将AsyncRAT有效负载(解码后的msg.txt)注入新生成的aspnet_compiler.exe进程中。
Hash.ps1解码并加载以msg.txt和runpe.txt编码的PE文件
解码后的脚本如下:
这是一个PowerShell脚本,动态加载.NET程序集,特别是NewPE2.PE类型,并调用其Execute方法。Execute方法用于向进程中注入与aspnet_compiler.exe相关的代码,它是为恶意代码注入而设计的,允许恶意攻击者在合法的aspnet_compiler.exe进程的上下文中执行额外的代码。
如下图所示,runpe.txt文件的解码内容显示了Hash中使用的代码.ps1脚本执行进程注入到aspnet_compiler.exe。
预览在Hash中加载和使用的进程注入函数.ps1脚本
在例程开始时解码的配置,需要注意的值是主机名66escobar181[.]ddns[.]net和它所连接的端口号6666。
根据嵌入式配置,AsyncRAT后门具有其他功能。这包括反调试和分析检查、持久性安装和键盘记录。下图中的代码片段检查是否在嵌入式配置embeddedConfig中启用了键盘记录。如果启用了keylogging,它将启动一个新线程来执行startKeylogging方法。
键盘记录配置值在运行时解密并引用变量
对于我们获得的样本文件,仅启用了键盘记录例程,该例程捕获并记录受攻击计算机的每次击键,并将数据发送到攻击者控制的服务器。
启用了键盘记录程序,捕获并记录每个击键
keylogging例程以与关联程序(getActiveApplicationName())对应的日志记录键结束。此交互是从临时目录中的指定日志文件中找到的。然后将信息记录在%TEMP%\Log.tmp中。
代码片段动态地从配置中选择主机和端口。AsyncRAT使用套接字连接与各种IP地址和端口进行交互,使其基础设施具有动态性和适应性。它允许攻击者频繁更改服务器地址,使预测或阻止通信通道的工作复杂化。此外,代码还包括错误处理机制,如果连接到特定IP地址或端口时出现问题,错误处理机制允许AsyncRAT尝试替代连接或退回到默认配置,从而进一步强调攻击者采用的规避策略。
AsyncRAT动态主机例程,在我们的样本中,它通过端口6666连接到66escobar181[.]ddns[.]net
AsyncRAT有效负载在连接到服务器时收集客户端信息。其中包括用户名、计算机信息、安装的防病毒软件和安装的加密货币钱包。
收集用户名、计算机信息、防病毒程序和加密货币钱包的信息
AsyncRAT扫描应用程序目录、浏览器扩展和用户数据中的特定文件夹,以识别与特定加密钱包相关的文件夹名称,并验证它们在系统中的存在。
加密钱包检查序言的代码片段对与以下钱包字符串相关的某些目录进行查询:
Atomic
Binance
BinanceEdge
BitcoinCore
BitKeep
BitPay
Coinbase
Coinomi
Electrum
Exodus
F2a
LedgerLive
Meta
Phantom
RabbyWallet
Ronin
TronLink
Trust
到2023年初,AsyncRAT攻击仍然存在,利用包括PowerShell、Windows Script file (WSF)和VBScript (VBS)等各种文件类型来进行恶意攻击。
分析解密后的AsyncRAT有效负载,可以明显看出所使用的证书与AsyncRAT Server相关联,这是AsyncRAT C&C流量的一个特征。通常,主题公共名称被配置为“AsyncRAT服务器”或“AsyncRAT服务器CA”。
检查主题通用名称在识别AsyncRAT攻击方面证明是有价值的,恶意软件配置揭示了ID 3LOSH RAT的存在。这意味着有效负载可能使用了3LOSH加密器进行混淆和隐身,这解释了在攻击链的不同阶段使用多个脚本。
在调查AsyncRAT样本文件期间,我们发现了用于aspnet_compiler.exe的注入代码与GitHub上的开源存储库之间的代码相似之处。从客户环境中获得的AsyncRAT样本和GitHub存储库上的版本之间出现了两个明显的区别。
首先,我们获得的样本包括BoolWallets作为扫描的加密货币钱包之一。其次,GitHub版本缺乏键盘记录功能。然而,我们获得的代码显示了键盘记录功能,类似于在GitHub存储库中找到的另一个样本。这些差异表明攻击者定制了GitHub代码以符合他们的特定目标。
动态DNS允许攻击者快速更改与域名相关的IP地址,这对试图检测和阻止恶意活动的安全系统提出了挑战。我们最近的调查揭露了在No-IP和Dynu Systems, Inc名下注册的C&C域名。66escobar181[.]ddns[.]net域解析为IP地址185[.]150[.]25[.]181。VirusTotal分析表明,多个域被标记为恶意,都集中到同一个IP地址。
不同的域名解析到同一个IP: 185[.]150[.]25[.]181
进一步仔细检查IP信息,我们发现了与托管提供商Zap-Hosting的关联,该提供商以提供各种服务而闻名,例如游戏服务器、网站和虚拟专用服务器(VPS)。另一个域(httpswin10[.]kozow[.]com)也出现了类似的模式,它解析为与托管提供商关联的IP地址。此IP地址还与其他恶意域共享,表明了攻击者利用DDNS和托管提供商进行操作的一致策略。
本文介绍了AsyncRAT远程访问木马,它具有诸如未经授权访问、键盘记录、远程桌面控制和隐蔽文件操作等功能,并分析了它是如何作为各种攻击的通用工具展开运行的,其中就包括勒索软件。
策略性地使用多个混淆的脚本,结合 "living off the land" 技术,让攻击更加灵活,使他们能够逃避检测。再加上将代码注入到合法文件(如aspnet_compiler.exe)中,这种技术大大增加了检测这些攻击的难度。
此外,使用动态主机服务器允许攻击攻击者无缝更新他们的IP地址,加强了在系统中不被发现的可能性。在许多情况下,AsyncRAT的默认目的保持不变,即窃取有价值的信息,如用户名、密码和加密货币钱包,通过键盘记录捕获的击键使攻击者能够获取凭据并可能访问金融帐户。
参考及来源:https://www.trendmicro.com/en_us/research/23/l/analyzing-asyncrat-code-injection-into-aspnetcompiler-exe.html