AsyncRAT远程访问木马技术分析:从传播到防御
AsyncRAT远程访问木马技术分析:从传播到防御
AsyncRAT是一种针对Android设备的远程访问木马,近期安全研究人员处理了一些涉及AsyncRAT的各种样本。本文将从其传播方式、脚本行为、样本分析、功能特点等多个维度,深入剖析这种恶意软件的工作原理和防御措施。
前言
近期安全研究人员处理了一些涉及AsyncRAT的各种样本,AsyncRAT(Android RAT)是一种针对Android设备的远程访问木马(RAT)。RAT是“Remote Access Tool”的缩写,通常被黑客用于远程控制感染了木马的设备。AsyncRAT专门设计用于在Android操作系统上悄悄地远程控制设备,让攻击者可以执行多种恶意操作,如窃取数据、监控用户活动、远程控制摄像头和麦克风等。
这种恶意软件通常通过欺骗性的方式安装到用户设备上,例如通过伪装成合法应用或通过诱使用户点击恶意链接。一旦安装,它就可以在用户不知情的情况下,将设备变成攻击者的代理,执行各种恶意任务。
脚本行为分析
2021年,AsyncRAT参与了名为“Spalax行动”的网络钓鱼活动,这些网络钓鱼活动一直持续到2021年底和2022年初。他们通过HTML附件进行AsyncRAT传播,同时还集成了反射加载技术。
- t0:用户下载带密码保护的ZIP文件downloadedFile_SSAfnmeddOFzc.zip;
- 1分20秒:用户解压缩包含.wsf脚本的ZIP文件;
- 1分26秒:下载并执行第一个payload,导致下载第二个payload;
- 1分35秒:自动启动;
- 1分59秒:下载并执行第二个payload;
- 5分48秒:进程注入到aspnet_compiler.exe和通过动态DNS的命令与控制(C&C)连接。
下图描述了涉及aspnet_compiler.exe可疑活动的检测,该活动试图与外部IP地址45.xxx.xxx.xx建立连接。同时,我们的分析揭示了有关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.xx.xxx.xxx:zzz/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.xx.xxx.x:80(IP-api[.]com)和45.xxx.xxx.xx:4782(httpswin10[.]kozow[.].com)的连接。前者用于地理位置检查,后者(被标识为免费动态DNS)可能被攻击者用来混淆其真实服务器IP地址从而实现快速更改以逃避检测。在其他情况下可以看到它连接到66escobarxxx.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安装例程)
3.1 Webcentral.vbs
该脚本使用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)
3.2 Webcentral.ps1
该脚本Webcentral.ps1创建了一个名为Reklam的计划任务,该任务每两分钟运行一个脚本(hash.vbs)。该计划任务已启用,即使设备正在使用电池也可以启动。位于C:\Users\Public\hash.vbs目录中的hash.vbs脚本作为计划任务的一个操作被执行。该任务是通过Windows任务计划程序服务进行注册的。
(Webcentral.ps1创建计划任务并将其设置为每两分钟运行一次Hash.vbs)
Hash.vbs与Webcentral.vbs是相同的脚本,但指向不同的文件(C:\Users\Public\Hash.bat)。
3.3 Hash.bat
与Hash.vbs类似,Hash.bat也是Webscentral.bat的脚本,但指向不同的文件(C:\Users\Public\Hash.ps1)。
3.4 Hash.ps1
Hash.ps1解码并加载以msg.txt和runpe.txt编码的PE文件,触发aspnet_compiler.exe执行。Hash.ps1使用runpe.txt中解码后的函数将AsyncRATpayload(解码后的msg.txt)注入新生成的aspnet_compiler.exe进程中。
(Hash.ps1解码并加载以msg.txt和runpe.txt编码的PE文件)
解码后的脚本如下:
这是一个动态加载.NET程序集的PowerShell脚本, 特别是specifically the NewPE2.PE类型,调用其Execute方法。Execute方法用于将关联with aspnet_compiler.exe的代码注入到进程。这是为恶意代码注入而设计的,允许恶意行为者在一个有效的aspnet_compiler.exe进程上下文中执行额外的代码。
3.5 已解码的runpe.txt(进程注入器代码)
如下图所示,runpe.txt文件的解码内容显示了Hash中使用的代码.ps1脚本执行进程注入到aspnet_compiler.exe。
(预览在Hash中加载和使用的进程注入函数.ps1脚本)
其他功能
根据嵌入式配置,AsyncRAT后门还具有其他功能。包括反调试和分析检查、持久性安装和键盘记录等。下图中的代码片段检查是否在嵌入式配置embeddedConfig中启用了键盘记录。如果启用了keylogging,则启动一个新线程来执行startKeylogging方法。
(键盘记录配置值在运行时解密并引用变量)
获得的样本文件仅启用了键盘记录例程,该例程捕获并记录受攻击计算机的每次击键,并将数据发送到攻击者控制的服务器。
(启用了键盘记录程序,捕获并记录每个击键)
键盘记录程序以与关联程序相对应的日志键(getActiveApplicationName())结束。这种交互是从临时目录中的指定日志文件中发现的。信息将记录在%TEMP%\Log.tmp文件中。
代码片段动态从配置中选择一个主机和端口。AsyncRAT 使用套接字连接与各种IP地址和端口进行交互,使其基础设施动态且适应性强。这允许威胁行为者频繁更改服务器地址,从而使预测或阻止通信渠道的努力变得更加复杂。此外,代码还包括错误处理机制:如果连接到特定IP地址或端口存在问题,错误处理机制允许AsyncRAT尝试替代连接或回退到默认配置,进一步强调了攻击者采用的逃避检测策略。
(AsyncRAT动态主机例程)
AsyncRATpayload在连接到服务器时收集客户端信息。包括用户名、计算机信息、安装的防病毒软件和安装的加密货币钱包等。
(收集用户名、计算机信息、防病毒程序和加密货币钱包的信息)
AsyncRAT扫描应用程序目录中的特定文件夹、浏览器扩展程序和用户数据,以识别与特定加密货币钱包相关的文件夹名称并验证它们在系统中的存在。
用于检查加密货币钱包的前置代码段执行了对以下钱包字符串的相关目录的查询:
- Atomic
- Binance
- BinanceEdge
- BitcoinCore
- BitKeep
- BitPay
- Coinbase
- Coinomi
- Electrum
- Exodus
- F2a
- LedgerLive
- Meta
- Phantom
- RabbyWallet
- Ronin
- TronLink
- Trust
探索动态DNS使用情况
动态DNS允许威胁行为者迅速更改与域名关联的IP地址,这对试图检测和阻止恶意活动的安全系统构成了挑战。最近的研究揭示了注册于No-IP和Dynu Systems, Inc.下的C&C域名。其中一个域名:66escobarxxx.ddns[.]net,解析到了IP地址185.xxx.xx.xxx。VirusTotal分析表明,多个被标记为恶意的域名都汇聚到了同一个IP地址。
(不同的域名解析到同一个IP: 185[.]150[.]25[.]181)
进一步审查IP信息,发现了与托管服务提供商Zap-Hosting的关联,Zap-Hosting以提供如游戏服务器、网站和虚拟私有服务器(VPS)等多样化服务闻名。另一个域名(httpswin xx[.]kozow[.]com)也显示出相同的模式,它解析为一个与托管服务提供商相关的IP地址。这个IP地址还与其他恶意域名共享,表明攻击者有意利用DDNS和托管服务提供商来执行操作。
总结
AsyncRAT远程访问木马具有诸如未经授权访问、键盘记录、远程桌面控制和隐蔽文件操作等功能,该软件作为各种攻击的通用工具展开运行,其中就包括勒索软件。
AsyncRAT策略性地使用多个混淆的脚本,结合 "living off the land" 技术,让攻击更加灵活且能够在一定程度上逃避检测。再加上将代码注入到合法文件(如aspnet_compiler.exe)中的这种手段,大大增加了检测攻击的难度。
此外,动态主机服务器的使用使威胁行为者能够无缝地更新他们的IP地址,从而增强他们在系统中的隐匿能力。很多情况下AsyncRAT的默认目的仍然保持不变—即秘密地外传有价值的信息,如用户名、密码和加密货币钱包地址等。