原文链接:New Tool Set Found Used Against Organizations in the Middle East, Africa and the US
译者:知道创宇404实验室翻译组
安全研究人员观察到针对中东、非洲和美国组织的一系列明显相关的攻击。我们将讨论攻击过程中使用的一组工具,这些工具揭示了有关黑客活动的线索。这些工具用于执行以下活动:
我们评估了风险中的置信度,由于受到损害的组织的性质、观察到的 TTP 以及工具集的定制,该威胁活动集群与民族国家相关的黑客一致。但是截止目前,我们尚未确认特定的民族国家或威胁组织。
该集群中使用的工具如下:
受影响的组织属于以下行业:
基于工具以及策略、技术和程序 (TTP) 的独特相似性,我们正在跟踪这个威胁活动集群(编号为 CL-STA-0002)。
以下是我们观察到的活动以及工具集特征的详细描述。
黑客使用C:\Windows\Temp
和 C:\Temp
等临时目录在不同受影响的组织中部署其工具集的特定组件。他们对批处理和 PowerShell 脚本使用了以下类似的文件名:
虽然攻击者通常在受影响的组织中使用Ntospy ,但Mimilite工具和Agent Racoon恶意软件仅在非营利组织和政府相关组织的环境中发现。
每次攻击会话结束后,黑客都会利用cleanmgr.exe来清理会话期间使用的环境。
为了执行凭证盗窃,黑客使用了实现Network Provider 的自定义 DLL 模块。网络提供程序模块是一个 DLL 组件,它实现 Microsoft 提供的接口,以在身份验证过程中支持其他类型的网络协议。
这项技术已经有相当详细的文档说明。Sergey Polak在2004年就在BlackHat的会议上发表了题为使用网络提供商 API 捕获 Windows 密码的演讲。2020 年,研究员Grzegorz Tworek将他的工具NPPSpy上传到 GitHub,GitHub 也实现了这一技术。
由于 DLL 模块的文件命名模式,以及对先前研究和工具的参考,安全研究人员将该恶意软件家族命名为 Ntospy。黑客将 Ntospy DLL 模块注册为网络提供程序模块来劫持身份验证过程,以便在受害者每次尝试向系统进行身份验证时访问用户凭据。
图1说明了在MS Exchange Server环境中,恶意软件在认证过程中使用的进程路径,加载恶意DLL模块的情况。
黑客采用了一些独特的技术实现此方法。在观察期间,他们创建了不同版本的 Ntospy 恶意软件。都具有以下共同点:
为了安装 DLL 模块,黑客注册了一个名为credman的新网络提供程序。他们通过使用位于C:\Windows\Temp\install.bat
的安装脚本来实现此目的,该脚本使用reg.exe安装网络提供程序。然后,恶意软件通过指向恶意 DLL 模块c:\windows\system32\ntoskrnl.dll
来设置 DLL 模块路径。
图 2 显示了我们识别出的属于同一恶意软件系列的不同 DLL 模块之间的静态共性。该图还说明了样本的RichPE标头哈希以及PE部分存在重叠。
在具有相同RichPE标头哈希的样本组中,我们发现它们是在相同的环境中编译的,即Visual Studio 2019 v16.0.0 build 27508。该恶意软件家族的其他样本则是在不同环境中编译,甚至可能进行了调整以避免重叠。
并不共享相同构建环境的样本在行为上相似,但在实现上存在一些差异。例如,某些恶意软件样本包含用于存储纯文本硬编码凭据的文件路径。图 3 和图 4 显示了其他样本如何使用加密的文件路径和堆栈字符串。
在运行时解密文件路径后,发现使用加密文件路径的版本也使用了相同的文件路径模式,如图5所示。
我们发现的所有 DLL 模块都使用相同的文件路径模式,滥用.msu文件扩展名来伪装成 Microsoft 更新包。恶意软件样本使用以下路径:
此外,DLL 文件存储在以下文件路径中:
虽然第一个文件路径是用于实际安装 Network Provider 模块的路径,但Temp目录是黑客用来临时存储 DLL 模块的工作目录。如上面的文件路径所示,黑客使用 Windows 二进制名称模式(基于名为ntoskrnl.exe的 Windows 系统文件)试图欺骗受害者和分析人员忽略恶意 DLL 组件。
第一个活动是通过文件哈希SHA256 bcd2bdea2bfecd09e258b8777e3825c4a1d98af220e7b045ee7b6c30bf19d6df
的恶意软件样本来识别的。这与我们称为CL-STA-0043 的另一个威胁活动集群重叠,该集群最初于2023年6月发布。
另一种用于收集凭证和敏感信息的工具是著名的 Mimikatz 工具的定制版本,根据样本中的参考,黑客将其称为 Mimilite。
该工具是Mimikatz的简化版本,需要通过命令行提供密码才能运行:
执行二进制文件时,它将命令行参数作为解密密钥,使用流密码解密实际的有效负载。在执行解密的有效负载之前,二进制文件会通过执行完整性检查来验证有效负载是否已使用正确的密钥成功解密。此检查是通过将解密的有效负载的 MD5 哈希值与硬编码值b855dfde7f778f99a3724802715a0baa
进行比较来完成的,如图 6 中的代码段所示。
正确执行后,该工具会将凭据转储到文件路径C:\Windows\Temp\KB200812134.txt
。这种文件名选择是黑客伪装成 Microsoft 更新的又一次尝试。
Mimilite 样本位于C:\temp\update.exe
,文件哈希值为SHA2563490ba26a75b6fb295256d077e0dbc13e4e32f9fd4e91fb35692dbf64c923c98
。它于2020年5月11日5时43分首次上传到 VirusTotal,并于2021年2月12日21时54分首次被在野识别。更有趣的是,根据 VirusTotal的信息,该样本已使用以下路径和文件名被发现:
这个路径的元素可能表明相同的二进制文件曾参与某种研究,上传者认为这种研究与国家级行为者有关。
Agent Racoon 恶意软件系列旨在提供后门功能。它使用.NET框架编写,并利用DNS与C2服务器建立隐蔽通道。由于在已识别样本的代码中发现了一些参考资料,安全研究人员将恶意软件家族命名为 Agent Racoon,如图 7 所示。
执行时,威胁具有一些预定义的设置,例如:
识别出的所有 C2 域都满足相同的基本模式,不同样本中的四个字符标识符具有唯一值:
对于找到的每个样本, Program.dns_ip的值都不同,这可能表明黑客正在使用从目标环境收集的特定设置构建二进制文件。
通过这种模式,黑客通过添加额外的子域来与C2服务器通信,构建DNS查询。它使用了国际化域名(IDN)和Punycode编码。此编码类型是 Internet 主机名的 ASCII 编码上的 Unicode 值的表示形式。
域名遵循以下模式:
图 9 中 Wireshark 的屏幕截图说明了完整的 DNS 查询:
为了管理与 C2 服务器的通信,恶意软件使用图 10 中所示的通信循环。
上述通信循环的主要特征如下:
加密例程实现一个流密码,使用初始的唯一密钥Program.key(this.defaultkey)进行加密,如图11所示。然后它创建一个 1 字节加密密钥,以便使用 XOR 加密消息。
根据发送到 C2 服务器的消息长度,不同的子域将添加到查询中,如图 12 中的代码段所示。
完全限定域名(FQDN)构建的this.Rand ()组件旨在避免缓存并确保请求到达 C2 服务器。
Agent Racoon 提供以下后门功能:
尽管Agent Racoon 本身不提供任何类型的持久性机制,但在我们观察到的活动期间,黑客是通过使用计划任务执行的。
安全研究人员使用telemetry.geoinfocdn[.]com的不同子域发现了以下样本,如图 13 所示。域名geoinfocdn[.]com于2022年08月19日UTC注册,有效期为一年。
安全研究人员能够追溯Agent Racoon恶意软件家族至2022年7月。该恶意软件家族的两个样本分别于 2022 年 9 月和 2022 年 7 月从埃及和泰国上传到 VirusTotal,其 SHA256 哈希值如下:
这两个样本使用相同的子域模式,但这次用于 C2 的域名是telemetry.geostatcdn[.]com。黑客在所示日期针对该域执行了以下活动:
图 14 显示,利用此信息,可以识别自 2020 年以来使用不同 C2 域名和文件路径的两组恶意软件样本。
试图将 Agent Racoon 二进制文件伪装成 Google Update 和 MS OneDrive Updater 二进制文件。
恶意软件开发人员对源代码进行了小幅修改,试图逃避检测。一些样本使用明文硬编码的域来建立DNS隐蔽通道(如图15所示),而其他样本则使用了Base64编码的字符串。
除了 Base64 功能之外,区别在于设置而非实际源代码,除了 SHA256 哈希值为354048e6006ec9625e3e5e3056790afe018e70da916c2c1a9cb4499f83888a47
的示例。
该样本的编译时间戳已经被修改,超出了活动时间范围:2075/02/23 08:12:59 UTC。
如图 16 所示,黑客还尝试通过使用cmd.exe的等效Base64编码值并添加常量399来混淆,以避免基于签名的检测。这样做是为了使等效的Base64编码字符串无法通过签名进行检测。
安全研究人员还确定了使用PowerShell插件收集和成功外泄机密信息的行为,例如利用PowerShell插件转储MS Exchange环境中的电子邮件。
在上述命令的搜索条件中,黑客使用类似的命令来搜索不同的文件夹、邮箱和日期以转储这些电子邮件。
转储电子邮件后,黑客尝试使用命令行 RAR 工具压缩.pst文件,然后再进行泄露:
然而,大约八分钟后,取消了使用工具taskkill.exe压缩.pst文件的尝试。
最终,黑客放弃了raren.exe的使用,只是将.pst文件重命名,将其移动到IIS根目录,并模仿压缩文件中的错误日志,通过Web服务器下载它。
最后,删除ai.pst文件。
对于具有不同搜索条件的多个邮箱重复此过程。
除了电子邮件泄露之外,安全研究人员还发现受害者的漫游个人资料也被泄露。漫游配置文件用于在从同一 Active Directory 环境的不同计算机登录时为用户提供相同的配置文件。
为了渗透这一点,黑客使用独立版本的 7-Zip 工具(他们使用certutil.exe将其放入系统中)压缩目录,并将压缩文件分割成 100 MB 的块。
随后,黑客按照相同的程序窃取了内容。
在本文的分析中,我们发现该工具集尚未与特定黑客相关联,也不完全限于单一的集群或活动。
正如本文开始提到的,我们发现了一个与先前识别的威胁活动集群CL-STA-0043有重叠的Ntospy样本,其SHA256哈希值为bcd2bdea2bfecd09e258b8777e3825c4a1d98af220e7b045ee7b6c30bf19d6df。但重叠不限于该样本。
还发现了两个活动集群中共有的两个受感染组织。某些 TTP 在两个群集上都匹配,比如MS Exchange PowerShell扩展以及其中一个网络提供者DLL模块。
安全研究人员认为,该威胁活动集群对威胁行为者的可信度为中等,原因如下:
MITRE ATT&CK Mapping
在与本博客中发现的工具集相关的研究活动中,安全研究人员确定了一组 TTP,我们已将其映射到下表中的 MITRE ATT&CK 矩阵。
ID | Name |
---|---|
T1003 | OS Credential Dumping |
T1018 | Remote System Discovery |
T1021.006 | Remote Services: Windows Remote Management |
T1027.009 | Obfuscated Files or Information: Embedded Payloads |
T1030 | Data Transfer Size Limits |
T1036.005 | Masquerading: Match Legitimate Name or Location |
T1036.008 | Masquerading: Masquerade File Type |
T1041 | Exfiltration Over C2 Channel |
T1046 | Network Service Discovery |
T1047 | Windows Management Instrumentation |
T1053.005 | Scheduled Task/Job: Scheduled Task |
T1059.001 | Command and Scripting Interpreter: PowerShell |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell |
T1070.004 | Indicator Removal: File Deletion |
T1070.006 | Indicator Removal: Timestomp |
T1071.004 | Application Layer Protocol: DNS |
T1074 | Data Staged |
T1078.002 | Valid Accounts: Domain Accounts |
T1087.002 | Account Discovery: Domain Account |
T1112 | Modify Registry |
T1114 | Email Collection |
T1132.001 | Data Encoding: Standard Encoding |
T1136.002 | Create Account: Domain Account |
T1140 | Deobfuscate/Decode Files or Information |
T1505.003 | Server Software Component: Web Shell |
T1556.008 | Modify Authentication Process: Network Provider DLL |
T1560.001 | Archive Collected Data: Archive via Utility |
T1564.002 | Hide Artifacts: Hidden Users |
T1570 | Lateral Tool Transfer |
T1573.001 | Encrypted Channel: Symmetric Cryptography |
T1583.001 | Acquire Infrastructure: Domains |
T1583.002 | Acquire Infrastructure: DNS Server |
T1587.001 | Develop Capabilities: Malware |
IoC | Type | Description |
---|---|---|
2632bcd0715a7223bda1779e107087964037039e1576d2175acaf61d3759360f | SHA256 | C:\Windows\Temp\install.bat |
ae989e25a50a6faa3c5c487083cdb250dde5f0ecc0c57b554ab77761bdaed996 | SHA256 | C:\Windows\Temp\install.bat |
C:\Windows\Temp\install.bat | File path | Script to install the Network Provider module |
c:/programdata/microsoft/~ntuserdata.msu | File path | File to store the stolen user credentials |
c:/programdata/packag~1/windows 6.1-kb4537803.msu | File path | File to store the stolen user credentials |
c:/programdata/package cache/windows10.0-kb5009543-x64.msu | File path | File to store stolen user credentials |
c:/programdata/package cache/windows10.0-kb5000736-x64.msu | File path | File to store stolen user credentials |
credman | Network provider name | Network Provider name |
HKLM\SYSTEM\CurrentControlSet\Services\credman | Registry key path | Registry path of the Network Provider |
c:\windows\system32\ntoskrnl.dll | File path | Network Provider module file path |
C:\Windows\Temp\ntos.dll | File path | File path used to temporarily store the DLL module |
C:\Windows\Temp\ntoskrnl.dll | File path | File path used to temporarily store the DLL module |
e30f8596f1beda8254cbe1ac7a75839f5fe6c332f45ebabff88aadbce3938a19 | SHA256 | Ntospy DLL Module |
1a4301019bdf42e7b2df801e04066a738d184deb22afcad9542127b0a31d5cfa | SHA256 | Ntospy DLL Module |
e7682a61b6c5b0487593f880a09d6123f18f8c6da9c13ed43b43866960b7aa8e | SHA256 | Ntospy DLL Module |
58e87c0d9c9b190d1e6e44eae64e9a66de93d8de6cbd005e2562798462d05b45 | SHA256 | Ntospy DLL Module |
7eb901a6dbf41bcb2e0cdcbb67c53ab722604d6c985317cb2b479f4c4de7cf90 | SHA256 | Ntospy DLL Module |
f45ea12579f636026d29009190221864f432dbc3e26e73d8f3ab7835fa595b86 | SHA256 | Ntospy DLL Module |
bcd2bdea2bfecd09e258b8777e3825c4a1d98af220e7b045ee7b6c30bf19d6df | SHA256 | Ntospy DLL Module |
C:\temp\update.exe | File path | Mimilite |
1dsfjlosdf23dsfdfr | Encryption key | Mimilite decryption key |
b855dfde7f778f99a3724802715a0baa | MD5 | Mimilite payload hash |
4351911f266eea8e62da380151a54d5c3fbbc7b08502f28d3224f689f55bffba | SHA256 | Agent Racoon |
e0748ce315037253f278f7f8f2820c7dd8827a93b6d22d37dafc287c934083c4 | SHA256 | Agent Racoon |
baed169ce874f6fe721e0d32128484b3048e9bf58b2c75db88d1a8b7d6bb938d | SHA256 | Agent Racoon |
3a2d0e5e4bfd6db9c45f094a638d1f1b9d07110b9f6eb8874b75d968401ad69c | SHA256 | Agent Racoon |
4351911f266eea8e62da380151a54d5c3fbbc7b08502f28d3224f689f55bffba | SHA256 | Agent Racoon |
354048e6006ec9625e3e5e3056790afe018e70da916c2c1a9cb4499f83888a47 | SHA256 | Agent Racoon |
dee7321085737da53646b1f2d58838ece97c81e3f2319a29f7629d62395dbfd1 | SHA256 | Agent Racoon |
geostatcdn[.]com | Domain | C2 |
telemetry.geostatcdn[.]com | Domain | C2 |
fdsb.telemetry.geostatcdn[.]com | Domain | C2 |
dlbh.telemetry.geostatcdn[.]com | Domain | C2 |
lc3w.telemetry.geostatcdn[.]com | Domain | C2 |
hfhs.telemetry.geostatcdn[.]com | Domain | C2 |
geoinfocdn[.]com | Domain | C2 |
telemetry.geoinfocdn[.]com | Domain | C2 |
g1sw.telemetry.geoinfocdn[.]com | Domain | C2 |
c:/windows/temp/onedriveupdater.exe | File path | Agent Racoon path |
c:/windows/system32/msmdlb.exe | File path | Agent Racoon path |
c:/windows/temp/onedriveupdater.exe | File path | Agent Racoon path |
c:/program files (x86)/google/update/googleupdate.exe | File path | Agent Racoon path |
c:\windows\temp\mslb.ps1 | File path | Script used to deploy the Agent Racoon |
c:\windows\temp\set_time.bat | File path | Script used to perform timestomping against additional tools |
c:\windows\temp\pscan.ps1 | File path | Script to scan the network |
c:\windows\temp\crs.ps1 | File path | Helper script |
c:\windows\temp\usr.ps1 | File path | Helper script |
c:\windows\temp\pb.ps1 | File path | Helper script |
c:\windows\temp\ebat.bat | File path | Helper script |
c:\windows\temp\pb1.ps1 | File path | Helper script |
c:\windows\temp\raren.exe | File path | Command line RAR |
aabbcc123 | Password | Password used to create the email archive |
086a6618705223a8873448465717e288cf7cc6a3af4d9bf18ddd44df6f400488 | SHA256 | raren.exe file hash |
P@ssw0rd1 | Password | Password used to compress the user profile directory |
Assistance$ | Username | User created for persistence |
Zaqwsx123 | Password | User created for persistence |
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/3084/