worok:大局

这个新的网络增长组主要专注于亚洲,使用了无证件工具,包括从PNG文件中提取PowerShell有效载荷

这个新的网络增长组主要专注于亚洲,使用了无证件工具,包括从PNG文件中提取PowerShell有效载荷

ESET研究人员最近发现有针对性的攻击,这些攻击使用了针对亚洲各种备受瞩目的公司和地方政府的无证件工具。These attacks were conducted by a previously unknown espionage group that we have named Worok and that has been active since at least 2020. Worok’s toolset includes a C++ loader CLRLoad, a PowerShell backdoor PowHeartBeat, and a C# loader PNGLoad that uses steganography to extract hidden malicious payloads from PNG files.

谁是worok?

在proxyshell期间(CVE-2021-34523)脆弱性披露在2021年初,我们观察到来自各个公寓组的活动。一个表现出常见的特征TA428

  • 活动时间
  • 有针对性的垂直行业
  • 使用Shadowpad

工具集的其余部分非常不同:例如,TA428参加了桌面妥协在2020年。我们认为链接不足以认为worok与TA428是同一组,但两组可能会共享工具并具有共同的兴趣。我们决定创建一个集群并将其命名为Worok。该名称是在组使用的装载机中选择的。然后将具有相同工具的变体的进一步活动链接到该组。根据Eset的遥测,Worok自2020年底以来一直活跃,并且在撰写本文时一直保持活跃。

早在2020年底,Worok就针对多个国家的政府和公司,特别是:

  • 东亚的电信公司
  • 中亚的一家银行
  • 东南亚的一家海事行业公司
  • 中东的政府实体
  • 南部非洲的一家私人公司

从2021 - 05年到2022-01,观察到的操作发生了重大破坏,但沃罗克活动在2022 - 02年恢复,目标是:

  • 中亚的能源公司
  • 东南亚的公共部门实体

图1显示了目标区域和垂直方向的视觉热图。

图1.目标区域和垂直行业的地图

考虑到目标的个人资料和我们看到针对这些受害者的工具,我们认为Worok的主要目标是窃取信息。

技术分析

虽然大多数初始访问尚不清楚,但在某些情况下,直到2021年和2022年,我们已经看到针对proxyshell漏洞的漏洞。在这种情况下,利用这些漏洞后通常会上传网络壳,以便在受害者的网络中提供持久性。然后,操作员使用各种植入物获得进一步的功能。

一旦获得访问,运营商就部署了多种公开可用的侦察工具,包括mimikatz,,,,蚯蚓,,,,Regeorg, 和NBTSCAN,然后部署其自定义植入物:第一阶段加载程序,然后是第二阶段.NET加载器(PNGLOAD)。不幸的是,我们无法检索任何最终有效载荷。在2021年,第一阶段的装载机是CLR组件(CLRLOAD),而在2022年,在大多数情况下,它被全功能的PowerShell Backdoor(PowheartBeat)所取代 - 这三个执行链在图2中显示在以下小节中详细描述了工具。

图2. Worok折衷连锁店

CLRLOAD:CLR组装加载程序

CLRLOAD是我们在32和64位版本中都看到的通用Windows PE。这是用C ++编写的加载器,将下一个阶段(pngload)加载,必须是一个通用语言运行时(CLR)组件DLL文件。该代码是从合法目录中磁盘上的文件中加载的,大概是为了误导受害者或事件响应者,以为它是合法的软件。

一些CLRLOAD样本首先解码文件的完整路径,其内容将加载为下一阶段。这些文件路径用单字节XOR编码,每个示例中都有一个不同的键。解码或清除文本,这些文件路径是绝对的,以下是我们遇到的那些:

  • C:\ Program Files \ VMware \ VMware Tools \ VMware VGAUTH \ XSEC_1_5LL
  • C:\ Program Files \ Ultraviewer \ MSVBVM80.dll
  • C:\ Program Files \ Internet Explorer \ jsprofile.dll
  • c:\ program文件\ winrar \ rarextmgt.dll
  • C:\ Program Files(X86)\ Foxit Software \ Foxit Reader \ Lucenelib.dll

接下来,创建了一个互斥品,我们在每个示例中都看到了一个不同的名称。装载机检查此静音的;如果发现,它将退出,因为加载程序已经在运行。在其中一个样品中,静音wo0r0kgwhygo遇到了,这给了该小组的名字。

然后,CLR负载从可能的解码文件路径加载CLR组件。作为未管理的代码,Clrload通过CorbindtoruntimeexWindows API在32位变体中调用,或clrcreateinstance呼叫64位变体。

PowheartBeat:Powershell后门

PowheartBeat是一款用PowerShell编写的全功能后门,使用各种技术(例如压缩,编码和加密)混淆。根据ESET遥测,我们认为PowheartBeat在最近的Worok广告系列中取代了CLRLOAD,因为该工具用于启动PNGLOAD。

后门代码的第一层由Base64编码的PowerShell代码的多个块组成。重建有效载荷后,它将通过IEX。解码后,执行了另一层混淆的代码,我们可以在图3中看到。

图3. powheartbeat第二层解码的主要功能的摘录

后门First Base64的第二层解码其代码的下一层,然后将其解密三重(CBC模式)。解密后,此代码将使用gzip算法,因此给出了第三层PowerShell代码,这是实际的后门。它分为两个主要部分:配置和处理后门命令。

后门代码的主层也用PowerShell编写,并使用HTTP或ICMP与C&C服务器进行通信。它的工作原理如图4所示。

图4. POWHEARTBEAT的功能

配置

该配置包含多个字段,包括版本号,可选代理配置和C&C地址。表1描述了我们观察到的不同版本中配置字段的含义。

表1.配置字段含义

字段名称 描述
nouse / ikuyrtydyfg
(其他样品)
没用过。
客户端 客户标识符,用于以下目的:
·作为构造时值饼干标题用于C&C通信。
·作为用于发送数据加密的加密工件。
版本 POWHEARTBEAT的版本号。
出口 发出允许的执行尝试数量runcmd(命令运行)命令。
用户代理 用户代理用于C&C通信。
推荐人 推荐人用于C&C通信的标题。
接受编码 没用过。
cookieclientid
Cookietaskid
CookieterminalId
用于构建的值曲奇饼C&C通信的标题。
urlhttps 用于C&C通信的协议。
URLDOMAIN
IP地址
URL,域或用作C&C服务器的IP地址。如果不是空的,是选择的IP地址。在其他情况下,IP地址被带走。
URLSENDHEARTBEAT 当后门向C&C服务器询问命令时,使用的URL路径使用。
URLSENDRESULT 当后门将命令的结果发送回C&C服务器时,使用的URL路径使用。
Geturl 完整的URL,PowHeartBeat用于从C&C服务器请求命令。它是上面URL元素的串联。
Puturl 如同Geturl但用于将命令的结果发送回C&C服务器。
电流路径 没用过。
相邻flag 标志表示后门是否必须使用代理才能与C&C服务器进行通信。
接近 如果使用代理的地址相邻flag被设定为$ true
间隔 在几秒钟内,脚本在获得请求之间就睡觉。
Basic ConfigPath 可选配置文件包含的路径正常运行时间,,,,停机时间,,,,DefaultErterval, 和。如果存在文件,这些值将被覆盖。
正常运行时间 后门开始运行的一天中的时间,这意味着它开始向C&C服务器提出请求。
停机时间 一天中的时间直到后门可以运行,这意味着它停止向C&C服务器提出请求的时间。
DomainIndex 当前域名的索引,用于与C&C服务器通信。如果请求返回错误消息不同304(“未修改”),DomainIndex增加。
密钥 键用于解密/加密配置。配置使用多字节XOR加密。
iflog 没用过。
iflogfilepath 标志指示是否启用了日志记录。
logpath 日志文件的路径。
副菲尔 可选代理配置的文件路径。如果在文件系统中找到空或找不到,则后门将从注册表值中检索用户的代理设置HKCU \ Software \ Microsoft \ Windows \ Currentversion \ Internet设置\ ProxyServer
ifconfig 指示是否使用配置文件的标志。

图5显示了从PowheartBeat样品中提取的配置的示例(SHA-1:757ABA12D04FD1167528FDDDD107A441D11CD8C427)。

图5.配置示例

数据加密

PowHeartBeat加密日志和其他配置文件内容。

日志文件内容是通过多字节XOR加密的,并在示例中的ClearText中指定了一个键。有趣的是,客户端被用作索引中的盐分添加到钥匙阵列中。关键是一个256字节阵列,在我们遇到的每个示例中都是相同的。其他配置文件内容通过多字节XOR进行加密,该值来自密钥作为关键。

C&C通讯

PowHeartBeat将HTTP用于C&C通信,直到版本2.4,然后切换到ICMP。在两种情况下,通信都没有加密。

http

在无限循环中,后门将GET请求发送到C&C服务器,要求发出命令。加密答案由后门解密,该后门处理命令,并将命令输出写入文件,然后通过邮政请求将内容发送到C&C服务器。

GET请求的格式如下:

请注意,该请求是使用同名配置字段构建的。

在C&C服务器的响应中,内容的第三个字节是指示由后门处理的命令标识符。我们称之为command_id。响应的其余内容将作为参数传递给所处理的命令。此内容使用图6所示的算法加密Taskid是以Cookietaskid从配置中的值。

图6.请求内容数据加密算法

C&C服务器的响应还包含另一个cookie,其名称由后门指定CookieterminalId配置变量。该cookie的值在后门的帖子请求中重复出现,并且不能为空。执行后门命令后,PowHeartBeat将结果作为POST请求发送到C&C服务器。结果被发送为一个名称为文件的文件 .png

ICMP

从PowheartBeat版本2.4开始,HTTP被ICMP替换,发送的数据包已超时为六秒钟,并且是未脱落。通过ICMP进行沟通很可能是逃避检测的一种方法。

版本2.4及以后没有重大变化,但是我们注意到代码中的一些修改:

  • powheartbeat在每个循环中发送一个心跳数据包,其中包含字符串abcdefghijklmnopqrstuvwxyz,在请求命令之前。这告诉C&C服务器,后门准备接收命令。
  • 获得后门执行命令的请求包含字符串abcdefghijklmnop

心跳数据包具有图7中描述的格式。

图7.心跳小包布局

和...之间的不同客户端ID客户端标志就是它客户端ID每个样本都不同,而客户端标志在使用ICMP的每个示例中都是相同的。心跳旗表示后门正在发送心跳。C&C服务器的响应具有图8中描述的格式。

图8. C&C服务器响应布局

旗帜这里指示是否有命令要发出后门。获得命令的请求具有图9中描述的格式。

图9.请求的布局获取命令

请注意,后门的ICMP模式允许接收无限量的数据,分为块,变量数据长度,,,,当前位置总长度用于跟踪传输数据。对这些请求的响应具有图10中描述的格式。

图10.对获取命令请求的响应的布局

与HTTP响应一样,命令标识符是第三个字节数据

在连续七个ICMP回复了空白或格式不一致的内容之后,后门和C&C服务器之间的转移被认为完成了。

关于将已发行命令结果发送到C&C服务器的请求,服务器模式已更改为POST模式,最终字符串(abcdefghijklmnop更改结果数据。

后门命令

PowHeartBeat具有各种功能,包括命令/过程执行和文件操作。表2列出了各种分析样本支持的所有命令。

表2. PowHeartBeat命令描述

姓名 命令标识符 描述
CMD 0x02 执行PowerShell命令。
可执行程序 0x04 执行命令为过程
上传文件 0x06 将文件上传到受害者机器。文件内容是GZIP压缩的。
Filedownload 0x08 从受害机器下载文件,然后返回文件路径,文件长度,创建时间,访问时间和文件内容到C&C服务器。
文件视图 0x0a 获取特定目录的文件信息,特别是:
·文件名
·文件属性
·最后的写作时间
·文件内容
提交的 0x0c 删除文件。
fileRereName 0x0e 重命名或移动文件。
更改 0x10 更改后门的当前工作位置。
信息 0x12 根据指定参数获取信息类别:
· “基本信息”:客户端,,,,版本,主机名,IP地址,Explorer.exe版本和尺寸信息,OS(架构和标志,指示机器是否是服务器),间隔,当前目录,驱动器信息(名称,类型,自由空间和总尺寸),当前时间
·“时间间隔信息”:间隔和当前时间
·“域信息”:解密的配置文件内容
config 0x14 更新配置文件内容并重新加载配置。
N/A。 0x63 后门出口。

如果后门侧出现错误,后门在邮政请求中使用特定的命令标识符0x00对C&C服务器,则表明发生了错误。

请注意,在将信息发送回C&C服务器之前,数据是GZIP压缩的。

PNGLOAD:地理装载机

PNGLOAD是由WOROK部署在妥协系统上的第二阶段有效载荷,根据ESET遥测,由Clrload或PowHeartBeat加载。尽管我们在PowHeartBeat中没有看到任何直接加载PNGLOAD的代码,但后门具有从C&C服务器下载和执行其他有效负载的功能,这很可能是攻击者在与PowHeartBeat妥协的系统上部署PNGLOAD的方式。PNGLOAD是一个使用PNG文件的字节来创建有效负载以执行的加载程序。这是一个64位.NET可执行的 - 与.NET反应器- 伪装成合法软件。例如,图11显示了伪装成Winrar DLL的样本的CLR标题。

图11.假的Winrar dll的示例

一旦去滥用,只有一个类。在这堂课中,有一个主人公包含后门搜索(包括其子目录)的目录路径的属性.png扩展,如图12所示。

图12。.png文件列表

每个.png通过此搜索找到的文件主人公然后检查是否有密集的嵌入式内容。首先,将每个像素的R(红色),G(绿色),B(蓝色)和A(alpha)值的最小含量被获取并组装成一个缓冲区。如果该缓冲区的前八个字节匹配图13中看到的魔术数,而下一个八字节值,则控制,无效,该文件会通过pngload的隐志内容检查。对于此类文件,使用pngload中存储的密钥继续使用多字节XOR的剩余的缓冲区进行处理。SecretKeybytes属性,然后解密的缓冲区被GZIP被压缩。结果预计将是一个PowerShell脚本,立即运行。

图13.缓冲区PNGLOAD的格式从处理中创建.png文件

有趣的是,PNGLOAD执行的操作已记录在一个文件中存储在变量中的文件中logfilepath。仅当存在文件的路径由内部变量指定的路径时,才会记录操作iflogfilepath

我们无法获得样本.png与PNGLOAD一起使用的文件,但是PNGLOAD运行的方式表明它应该与有效的PNG文件一起使用。为了隐藏恶意有效载荷,worok在C#中使用位图对象,该对象仅从文件中获取像素信息,而不是文件元数据。这意味着Worok可以将其恶意有效载荷隐藏在有效的,无害的PNG图像中,从而隐藏在视线中。

结论

Worok是一个网络活动组,它开发了自己的工具以及利用现有工具来损害其目标。我们认为,从受害者那里窃取信息的原因是运营商所追求的,因为他们专注于亚洲和非洲的备受瞩目的实体,针对私人和公共的各个部门,但要特别强调政府实体。活动时间和工具集表示与TA428的关系,但我们以低信心进行评估。他们的自定义工具集包括两个加载程序 - 一个C ++中的一个和C#.NET中的一个 - 一个PowerShell后门。尽管我们的知名度有限,但我们希望对该小组的阐述,将鼓励其他研究人员分享有关该小组的信息。

有关有关我们发布有关WeliveSecurity的研究的任何询问,请与我们联系金博棋牌appthrantintel@eset.com

ESET Research现在还提供私人APT Intelligence报告和数据供稿。有关此服务的任何查询,请访问ESET威胁智能页。

IOC

文件

SHA-1 文件名 ESET检测名称 评论
3A47185D0735CDECF4C7C2299EB18401BFB328D5 脚本 powershell/powheartbeat.b POWHEARTBEAT 2.4.3.0003。
27ABB54A858AD1C1FF2863913BDA698D184E180D 脚本 powershell/powheartbeat.a POWHEARTBEAT 2.4.3.0003。
678A131A9E932B9436241402D9727AA7D06A87E3 脚本 powershell/powheartbeat.b POWHEARTBEAT 2.4.3.0003。
757ABA12D04FD1167528FDDDD107A441D11CD8C427 脚本 powershell/powheartbeat.b POWHEARTBEAT 2.1.3.0003。
54700A48D934676FC698675B4CA5F712C0373188 脚本 powershell/powheartbeat.a POWHEARTBEAT 1.1.3.0002。
C2F53C138CB1B87D8FC9253A7088DB30B25389AF 脚本 powershell/powheartbeat.a POWHEARTBEAT 1.1.3.0002。
C2F1954DE11F72A46A4E823DE767210A3743B205 TMP.PS1 powershell/powheartbeat.b PowHeartBeat 2.4.3.0004。
CE430A27DF87A6952D732B4562A7C23BEF4602D1 TMP.PS1 powershell/powheartbeat.a POWHEARTBEAT 2.1.3.0004。
EDE5AB2B94BA85F28D5EE22656958E4ECD77B6FF 脚本 powershell/powheartbeat.a POWHEARTBEAT 2.4.3.0003。
4721EEBA13535D1EE98654EFCE6B43B778F13126 vix64.dll msil/pngloader.a pngloader。
728A6CB7A150141B4250659CF853F39BFDB7A46C RAMEXTMGT.DLL msil/pngloader.a pngloader。
864E55749D28036704B6EA66555A86527E02AF4A jsprofile.dll msil/pngloader.a pngloader。
8DA6387F30C584B5FD3694A99EC066784209CA4C vssxml.dll msil/pngloader.a pngloader。
AA60FB4293530FBFF00D200C0D44EEB1A17B1C76 xsec_1_5.dll msil/pngloader.a pngloader。
B2EEC695DD8BB518C7E24C4F37A08344D6975BE msvbvm80.dll msil/pngloader.a pngloader。
CDB6B1CAFEE098615508F107814179DEAED1EBCF lucenelib.dll msil/pngloader.a pngloader。
4F9A43E6CF37FF20AE96E564C93898FDA6787F7D vsstrace.dll win64/clrload.c clrload。
F181E87B0CD6AA4575FD51B9F868CA7B27240610 ncrypt.dll win32/clrload.a clrload。
4CCF0386BDE80C339EFE0CC734CB497E0B08049C ncrypt.dll win32/clrload.a clrload。
5CFC0D776AF023DCFE8EDED5CADA03C6D7F9C244 wlbsctrl.dll win64/clrload.e clrload。
05F19EBF6D46576144276090CC113C6AB8CCEC08 wlbsctrl.dll win32/clrload.a clrload。
A5D548543D3C3037DA67DC0DA47214B2C2B15864 SECUR32.DLL win64/clrload.h clrload。
CBF42DCAF579AF7E6055237E524C0F30507090F3 dbghelp.dll win64/clrload.c clrload。

文件路径

某些主人公,,,,logfilepathiflogfilepath我们在pngload样本中遇到的值:

主人公 logfilepath iflogfilepath
C:\ Program Files \ VMware \ VMware工具\ C:\ Program Files \ VMware \ VMware Tools \ VMware Vgauth \ readme.txt C:\ Program Files \ VMware \ VMware Tools \ VMware VGAUTH \ VMWSU_V1_1.DLL
C:\ Program Files \ Winrar \ c:\ program文件\ winrar \ rarinstall.log c:\ program文件\ winrar \ des.dat
C:\ Program Files \ Ultraviewer \ C:\ Program Files \ ultraviewer \ propyrights.dat C:\ Program Files \ Ultraviewer \ Uvcr.dll

网络

领域 IP
没有任何 118.193.78 [。] 22
没有任何 118.193.78 [。] 57
飞机。旅行商业[。]代理商 5.183.101 [。] 9
Central.suhypercloud [。] org 45.77.36 [。] 243

静音

在CLRLOAD样本中,我们遇到的MUTEX名称是:

AB82UDUGX0EX
AD8TBUIZL5GA
MR2PJVXBIBD4
oeriqtklgpgk
U37UXSCSA4XM
wo0r0kgwhygo
xbujqr2vxytz
zyclbwekrx3t
3C3401AD-E77D-4142-8DB5-8EB5483D7E41
9xvzmsawqxmy

妥协指标(IOC)和样本的综合列表可以在我们的GitHub存储库

MITER ATT&CK技术

该表是使用版本11MITER ATT&CK框架的框架。

战术 ID 姓名 描述
侦察 T1592.002 收集受害者主机信息:软件 Powheartbeat聚集Explorer.exe的信息。
T1592.001 收集受害者主机信息:硬件 PowHeartBeat收集有关驱动器的信息。
T1590.005 收集受害者网络信息:IP地址 PowHeartBeat收集了受损计算机的IP地址。
资源开发 T1583.004 获取基础架构:服务器 Worok使用自己的C&C服务器。
T1588.002 获得功能:工具 WOROK在折衷的机器上部署了多个公开可用的工具。
T1583.001 获取基础架构:域 Worok有注册的域,可促进C&C通信和分期。
T1588.005 获得功能:利用 Worok使用了proxyshell漏洞。
T1587.001 开发功能:恶意软件 Worok开发了自己的恶意软件:CLRLOAD,PNGLOAD,POWHEARTBEAT。
T1587.003 开发功能:数字证书 Worok创建了LET'SY'S INTONS SSL证书,以便为恶意软件启用相互tls身份验证。
执行 T1059.001 命令和脚本翻译:PowerShell PowheartBeat用Powershell编写。
持久性 T1505.003 服务器软件组件:Web Shell worok使用webshel​​lRegeorg
防御逃避 T1140 DEOBFUSCATE/DECODE文件或信息 WOROK使用各种基于XOR的方案来对PowHeartBeat,pngload和Clrload中的字符串和日志进行加密。
T1036.005 伪装:合法名称或位置 PNGLOAD样本部署在合法的VMware目录中。
凭据访问 T1003.001 OS凭证倾倒:LSASS内存 Worok使用Mimikatz从LSASS内存中转储凭据。
发现 T1082 系统信息发现 PowHeartBeat收集OS信息。
T1083 文件和目录发现 PowHeartBeat可以列出文件和目录。
T1046 网络服务发现 worok用途NBTSCAN获取有关折衷机器的网络信息。
T1124 系统时间发现 PowheartBeat收集了受害者的时间信息。
收藏 T1005 来自本地系统的数据 POWHEARTBEAT收集来自本地系统的数据。
T1560.002 存档收集的数据:通过库存档 POWHEARTBEAT GZIP-CORPRESS将数据发送到C&C服务器之前。
命令与控制 T1071.001 应用程序层协议:Web协议 一些PowHeartBeat变体使用HTTP作为与C&C服务器的通信协议。
T1090.001 代理:内部代理 PowHeartBeat处理受害者机器上的代理配置。
T1001.002 数据混淆:隐肌 pngload从.png文件重建有效载荷。
T1573.002 加密通道:不对称加密 PowHeartBeat使用C&C服务器处理HTTPS通信。
T1095 非应用层协议 一些POWHEARTBEAT变体使用ICMP作为与C&C服务器的通信协议。
T1132.001 数据编码:标准编码 worok在powheartbeat和pngload中使用XOR编码。
T1132.002 数据编码:非标准编码 Worok使用XOR编码算法,可利用其他盐。
渗透 T1041 C2通道上的渗透 PowHeartBeat使用其C&C通信渠道来渗透信息。

注册以收到电子邮件更新,每当我们在我们的乌克兰危机 - 数字安全资源中心

通讯

讨论