桃花源娱乐黑客组织TA505利用LoLbin和新型后门攻击金融行业_HUC惠仲娱乐

桃花源娱乐

常年混迹网络安全圈,你可能对网络犯罪分子的一些攻击手法早已不陌生,比如他们为了拓展恶意软件的功能或是使其更难以被检测到,而将之与合法软件相结合使用。而最近Cyberreason的研究人员发现,许多Windows系统进程也会被攻击者们恶意劫持以用于达成他们的目标。

在本文中,我们将介绍黑客团伙TA505于2019年4月对某金融机构进行的一场精心策划的攻击事件,它是一起具有强针对性的网络钓鱼。恶意软件的持久性可根据环境选择是否创建,攻击还利用到了一个称为ServHelper的复杂后门。

TA505的关键特征

· 目标明确——只针对企业内部少数特定账户的进行网络钓鱼。

· 恶意代码经过签名验证——这是为了避免被发现而采取的额外预防措施。

· 精心策划——从攻击的时间点和恶意代码的签名可看出。

· 可选择的持久性机制——基于自动侦查选择是否自毁。

· 去除痕迹——使用自毁命令和销毁脚本来删除证据。

· 多个C2域——以防被列入黑名单或无法连接。

· 集成了四个不同的LOLBin——表明攻击者仍在研究逃避检测手段。

TA505是一个臭名昭著的黑客组织,曾利用多个勒索软件,如Dridex、Locky等进行大规模的敲诈勒索活动。最近,TA505又在北美、亚洲、非洲和南美等多个国家开展了有针对性的攻击行动,主要针对的是大型金融机构,目的是获取有价值的数据,以便日后加以利用。

2019年以来,可以很明显地发现,恶意软件使用最广泛、最有效的攻击载体仍然是电子邮件,此次行动也不例外。但这次目标机构只有少数账户收到了TA505的钓鱼邮件,说明攻击者有可能在行动的早期就进行了侦察工作来选择最佳目标。

恶意软件由Sectigo RSA Code Signing CA签名验证,这是为逃避检测而采取的额外预防措施。此外,恶意软件仅在攻击前几个小时才进行了签署。

但最不寻常一点是,在大多数情况下,恶意软件几乎都会试图获得持久性,而此次行动中的一些工具可依据其环境决定是否创建持久性。这些工具将收集关于目标机器的信息,并将其发送到远程C2服务器,再由C2决定是否设置持久性,这也是一种在较高等级的攻击行动中常用的技术。

攻击者显然非常重视如何掩盖他们的踪迹,恶意软件除了收集信息之外,还能决定是否需要从受感染的电脑上删除证据,这说明攻击者的潜在目标是设置一个尽可能长时间不被发现的后门,以便后续更有效地窃取数据。

恶意软件广泛而多样地使用LOLbin和合法的本地Windows OS进程来执行恶意活动,比如payload的传递和ServHelper后门的实现。ServHelper后门是一个相对较新的恶意软件家族,于2018年底被发现。Cybereason研究人员在过去几个月就注意到了广泛使用LOLbin进行攻击的趋势。

在此次行动中,检测到的ServHelper后门又发生了新的变化,我们将在接下来对其做分析。

分析过程

1.jpg

图1.攻击流程图

第一阶段:获取访问权限

在此阶段,攻击者向目标发送钓鱼邮件。在大约一个小时的时间内,超过80个文件被发送到企业邮箱的40个帐户中。邮件包含带有恶意宏的Microsoft Excel附件。文件打开时会被加载到Microsoft Excel中,并敦促用户启用宏。

2.png

图2.包含宏的恶意.xls文件

当受害者单击Enable Content按钮后,宏命令将被执行并调用Windows OS进程msiexec.exe.。msiexec.exe是windows installer,即一个用于安装、维护和删除软件的Microsoft Windows的软件组件和应用程序编程接口。宏命令将调用msiexec.exe连接到远程C2服务器并下载第一阶段payload,并创建第二个msiexec.exe进程来执行payload,之后进入攻击链的第二阶段。

3.png

图3.调用msiexec.exe与C2服务器通信。

与C2服务器建立TCP连接后,下载的payload名为Alg,它是第二阶段使用的几个文件的dropper。

4.png

图4.从C2服务器下载的恶意软件。

5.png

图5.恶意软件的渗透过程

第二阶段:部署后门

6.jpg图6.第二阶段流程图

下载Alg后,它将作为带有.tmp扩展名的二进制文件加载到msiexec.exe,此临时文件充当恶意软件的主dropper,并在目标计算机上部署恶意软件。

.tmp文件中有三个文件夹,分别包含两个模块pegas.dll、nsExec.dll以及.nsi脚本。

NSIS(Nullsoft 脚本安装系统)是为Windows创建安装程序的合法工具。这说明后缀为.nsi的脚本负责恶意软件安装分相关内容,由于其名称合法,能逃避检测。

7.png

图7..tmp临时文件中的内容

.nsi脚本包含.tmp文件要执行的命令,能指示.tmp文件使用nsExec.dll模块中的函数kest()来操作和执行pegas.dll模块。

8.png

图8.NSIS脚本

在由msiexec.exe加载执行后,.tmp临时文件会创建几个附加文件,其中一个也是临时文件,将加载初始临时文件的内存映射中,但更重要的是它创建的两个模块pegas.dll和nsExec.dll。

9.png

图9.恶意软件创建文件nsexecl .dll

10.png

图10.恶意软件创建文件pegas.dll

此外,它还使用Windows命令行创建一个rundll32.exe进程,以加载植入的pegas .dll模块并用函数kest()执行它。

11.png

图11.rundll32.exe加载pegas.dll的执行命令

12.png

图12.恶意软件部署流程

模块的功能

· NSEXEC.DLL

nsExec.dll模块是用Nullsoft创建的。nsExec.dll将执行基于命令行的程序,在无需开启DOSBox的情况下捕获输出。这样攻击者在执行命令行并运行rundll32.exe进程时不会显示在受害者桌面上。从Windows命令行处执行命令能增加恶意软件的隐秘性。

· PEGAS.DLL

pegas.dll是负责执行所有后门功能的核心模块,内容包括在目标计算机中执行侦察、信息窃取和其他后门功能。此外,该模块还负责与另一个C2服务器通信。(在第三阶段中讲述)

有趣的是,pegas.dll实际上是由认证公司Sectigo RSA Code Signing CA签署并验证的。这并不常见,我们认为这也是高级威胁行为者的标志之一。该认证公司也因出现在上个月的Norsk Hydro LockerGoga 勒索软件攻击事件而闻名。

使用此证书可使恶意软件具备大多数所没有的优势:合法性。“已确认”和“已验证”的恶意软件可能会缩小安全专家专家的调查范围。这表明开发此恶意软件的攻击者要比大多数恶意软件创作者要更先进。

13.png

图13.被滥用的证书

pegas.dll利用了数种防御机制,它被加壳了两次,以确保难以逆向,此外,该模块仅在攻击发生前的几个小时才进行编译。尽管如此,Cybereason防御平台还是收集了与该模块相关的所有数据。

14.png图14.恶意软件两次加壳

rundll32.exe从函数kest()处执行模块pegas.dll。此函数是恶意软件导出表中负责初始执行恶意代码的几个函数之一,导出表中的其他函数分别是loer()和tempora()。

15.png

图15.三个导出函数

这些函数代码和功能方面类似,kest()包含的所有变量也出现在tempora()中。此外,kest()和loer()共享函数FUN_12345f08(),这实际上是loer()拥有的惟一功能。

16.png

图16.在Ghidra中导出函数伪代码

FUN_12345f08()是恶意软件最重要的函数之一,作者通过kest()来执行pegas.dll,以尽快利用FUN_12345f08()。在FUN_12345f08()中有一个新的威胁指标——域名为joisff333.icu的第二个C2,可以从rundll32.exe进程中访问此域,此外还有一个名为“enu.ps1”的字符串,表示此恶意软件会用到PowerShell。最后还会出现字符串asfasga33fafafaaf,这似乎与互斥体BaseNamedObjects \ Global \ asfasga33fafafaaf的创建有关。

17.png

图17.Ghidra中的FUN_13246F08伪代码

使用静态分析,可以从额外的指示字符串中看出恶意软件的一些特性,包括:网络功能、C2命令、其他域和PowerShell执行活动。

18.png

图18.恶意软件的附加指示字符串

检索和信息收集

执行rundll32.exe后,将执行PowerShell脚本enu.ps1,此脚本使用Base64编码,以避免被防病毒产品检测到。

19.png

图19.enu.ps1使用Base64进行模糊处理

在解码脚本时,可以很明显看到该脚本负责收集目标机器上的侦察工作,比如使用WMI查询来收集信息以确定用户是否是管理员。

20.png

图20.通过WMI查询进行内部侦察

ServHelper后门会在目标机器上收集另外一些信息,其中就包括包括用户SID。SID为S-1-5-32-544则是内置管理员组的标识符,包括本地管理员以及所有本地和域管理员用户组。 收集这些信息表明了两件事:恶意软件作者针对的是组织而不是普通的家庭计算机用户,并且在组织中他们针对的是最高优先级的机器。

21.png

图21.搜索管理员用户

一旦恶意软件确认目标计算机是管理员组用户,它将用WindowsIdentity GetCurrent()方法来收集信息。

22.png

图22.继续搜索管理员用户并收集他们的信息

在恶意软件能够验证此用户是管理员之后,它会收集有关目标计算机的其他信息,并检索所有文件系统驱动器上的数据,包括虚拟驱动器。

23.png

图23.收集系统驱动器数据

脚本收集的最后一点信息是服务器的名称和计算机上本地组的名称,它使用net.exe(一个合法的Windows操作系统进程)来收集此信息。

24.png

图24.对本地组管理员进行侦察

恶意软件部署的完整流程树显示了攻击周期四种不同的LOLBin。从大量使用LOLBin的行为和经过签名和验证的模块pegas.dll中我们可以看出,恶意软件作者在竭尽全力逃避检测。

25.png

图25.进程树

第三阶段:动态C2服务器

部署之后,恶意软件从rundll32.exe连接到第二个C2域,通过多个C2域能确保至少有一个C2服务器可用来攻击,在于pegas.dll通信后,C2服务器决定恶意软件执行的下一步骤。

第二个C2服务器根据在目标机器上收集的信息进行响应,从这也能看出恶意软件的复杂性,大多数恶意软件收集并发送数据到一个固定的C2服务器,无论信息如何,它的响应都是相同的,而这里采用了一种更动态的方法。

 26.png

图26.恶意软件与其第二个C2服务器通信

与第二个C2服务器的交互

在与C2域通信的过程中,恶意软件能执行几个关键命令和活动,其中一些活动是我们在之前版本中观察到的。

滥用认证

以下从msiexec.exe中观察到的网络活动说明了恶意软件是如何利用Sectigo RSA Code Signing CA的签名和验证证书进行传播的。

27.png

图27.滥用认证流量

执行侦察

shell命令负责在目标机器上执行net user /domain命令。这个命令是一个远程控制命令,允许攻击者执行额外的侦察活动。

28.png

图28.执行net user /domain命令。

持久性机制

C2服务器决定是否创建持久性,持久性由persist命令负责创建。这是恶意软件复杂度的另一个主要标志,因为恶意软件不会在每台目标计算机上创建持久性,而只会在特定的几台上创建持久性。

 29.png

图29.持久性机制

在C2服务器发送persist命令后,恶意软件使用注册表创建持久性。它在Run下创建一个注册表项Intel Protect,并将pegas.dll存储为值。

 30.png

图30.持久性机制

内部侦察

恶意软件根据它从用户机器上收集的信息来改变自己的行为。此信息存储在数据包中,传递到C2域HTTP Payload,/ URL:/jquery/jquery.php。

该信息分为四个硬编码参数:

· Key:在恶意软件的每次迭代中保持相同的硬编码参数。

· Sysid:有关操作系统,Service Pack和计算机名称的信息。

· Resp:有关用户是否在Active Directory中具有管理员组权限的信息。

· Misc:有关PowerShell文件的其他信息。这是最新的参数,仅在此版本的ServHelper中观察到,包括新加的侦察机制。

 31.png

图31.用于向C2服务器交付信息的四个硬编码字符串

恶意软件对C2域响应的行为变化取决于受感染的机器是否是高优先级目标。当机器不是有价值的目标时,Resp参数将填入“指定的域不存在或无法联系”。

 32.png

图32.恶意软件将结果通知C2服务器(没有AD admin)

如果恶意软件识别出目标计算机是有价值的,它将在Resp参数中填上相关信息,其中包含计算机所具有的组和帐户的名称,例如“Administrator”以及用户名称。

33.png

图33.恶意软件将结果通知C2服务器(有AD admin)

与许多后门恶意软件类似,ServHelper能够在休眠状态下静静的潜伏。这是一种众所周知的后门特性,可以让恶意软件在检测之下存活,并按攻击者规定时间进行攻击。ServHelper使用GetSystemTime()函数获取关于目标机器日期和时间。

 34.png

图34.恶意软件的休眠功能

我们已知恶意软件包含几个与ServHelper相关联的命令,包括:

· loaddl:负责使用rundll32.exe进程下载和执行其他模块的命令。

· selfkill:负责自行终止和删除计算机中的恶意软件的命令。

连接C2服务器的流程下图所示。

 35.png

图35.连接C2服务器的流程

结论

我们在对该恶意软件的分析过程中,发现了最新版本的ServHelper后门,以及用于部署后门的逃避检测技术,还重点介绍了恶意软件是如何使用合法的本机Windows OS进程来执行恶意活动、以在不被检测的情况下交付payload的过程,接着介绍了ServHelper后门是如何在不被注意的情况下操作和部署自身的,同时,我们还展示了这个后门的复杂程度,以及它是如何针对高价值机器的。

受感染的客户能够在造成任何损害之前遏制攻击的发生。前提是能控制ServHelper后门,终止msiexe .exe和rundll32.exe,删除所有下载的文件,还要断掉到恶意C2域的连接,攻击才能停止。

识别此攻击的部分困难在于它的逃避机制。LOLBin是具有欺骗性的,此外使用带有认证的签名和验证文件也会增加恶意软件逃避被检测到的可能性。

而对此次攻击中使用的工具和技术的分析表明,LOLBin在逃避防病毒产品的检测上是多么有效,这也进一步证实了我们自2018年以来看到LOLBin越来越常被用于攻击的趋势,随着2019年的到来,LOLbin的使用频率只会有增无减。

IoC

1.png

本文翻译自:https://www.cybereason.com/blog/threat-actor-ta505-targets-financial-enterprises-using-lolbins-and-a-new-backdoor-malware如若转载,请注明原文地址: http://www.hackdig.com/05/hack-54942.htm