前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Palo Alto Networks:新型恶意软件家族Reaver与SunOrcal存在一定联系

Palo Alto Networks:新型恶意软件家族Reaver与SunOrcal存在一定联系

作者头像
FB客服
发布2018-02-26 16:08:28
8960
发布2018-02-26 16:08:28
举报
文章被收录于专栏:FreeBufFreeBuf

概要

Unit 42安全小组已经发现了一种新的恶意软件家族,并将其命名为“Reaver”。研究人员表示,这一新型恶意软件与在2016年针对中国台湾地区的黑客攻击活动中所使用的恶意软件SunOrcal存在一定的联系。

根据记录在案的证据显示,SunOrcal恶意软件至少从2013年便已经开始活动。而根据某些C2元数据显示,该恶意软件甚至可能早在2010年就已经开始活跃。而到了2016年下半年,新的恶意软件家族开始呈现疯狂发展状态。经过对Reaver进行了全面分析后,我们共发现了属于三种不同版本恶意代码的十个完全不同的恶意软件样本。

分析还发现,Reaver背后的黑客组织会在攻击中提供恶意软件Windows控制面板(CPL)文件,到目前为止,我们发现在所有的恶意软件中只有0.006%的会使用这种技术,这表明它实际上相当罕见。

Unit 42安全研究人员在对该黑客组织所使用的基础设施进行分析后发现,其与之前使用恶意软件 SunOrcal的黑客组织存在一定的联系。研究发现,攻击者从2016年下半年到2017年11月期间,同时使用了两个恶意软件系列(Reaver和SunOrcal恶意软件),并且在两个系列的恶意软件攻击中使用了相同的C2基础架构。以下是对Reaver恶意软件的深入分析:

Reaver恶意软件分析

截至目前,Palo Alto Networks Unit 42安全小组已经在Reaver恶意软件的三种不同变体中确定了十个完全不同的恶意软件样本。这三种不同的变体,我们将其标识为Reaver.v1、Reaver.v2和Reaver.v3。

分析发现,Reaver.v1提供使用HTTP进行网络通信的有效载荷;而Reaver.v2和Reaver.v3则使用通过原始TCP连接进行通信的有效负载。

Reaver恶意软件的流程图如下所示:

Reaver.v1

Reaver恶意软件最早的变体,首先,Reaver.v1会尝试为正在运行的进程启用SeDebugPrivilege特权。如果成功,恶意软件将使用以下路径来存储任何丢失的文件:

%COMMONPROGRAMFILES%\services\ 如果不成功,则使用下述替代路径: %APPDATA%\微软\ MMC \

随后,它将继续加载、解密并潜入位图资源文件,这些解密完成的数据被写入以下位置中:

%TEMP%\WUpdate.~tmp

然后将这个“WUpdate.~tmp”的文件复制到一个名为“Applet.cpl”的文件中,该文件位于之前识别的文件路径中。

恶意软件随后就可以根据“是否获得SeDebugPrivilege权限”来识别“common startup文件夹”或“用户的启动文件夹”的文件路径。如果获得此特权,则可以通过阅读以下注册表项(registry key)来查询common startup文件夹:

HKLM \ Software \ Microsoft \ Windows \CurrentVersion \ Explorer \ Shell Folders \ Common Startup

相反,如果没有获得权限,Reaver.v2将通过查询以下注册表项来获取用户的启动文件夹:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders\Startup

之后,Reaver 会编写一个快捷方式文件到“%TEMP%~WUpdate.lnk”中,然后将该文件复制到文件名为“Windows Update.lnk”的文件中,该文件同样位于之前标识的启动路径中。此快捷方式文件指向以前编写的“Applet.cpl”文件的路径。最后,Reaver.v1将在一个新的进程中执行“〜WUpdate.lnk”文件,从而加载最近丢失的恶意CPL文件。

Reaver.v2

Reaver.v2首先也会尝试为正在运行的进程启用SeDebugPrivilege特权。如果成功,恶意软件将使用以下路径来存储任何丢弃的文件:

%COMMONPROGRAMFILES%\services\

如果不成功,则使用如下替代路径:

%APPDATA%\microsoft\mmc\

随后,Reaver.v2会使用一个简单的XOR混淆程序解密一个嵌入式文件,并将该文件写入到以下文件路径中:

% TEMP%\Update.~tmp

写入文件后会将其复制到最初选择的目录中名为“winhelp.cpl”的文件中。复制完成后,原来的“Update.~tmp”文件会被删除。在这个过程中,Reaver.v2将使用与Reaver.v1中相同的技术来识别正确的启动路径。

在以下路径中生成一个快捷方式文件:

%TEMP%~Update.lnk

然后将这个“〜Update.lnk”文件复制到一个名为“Windowshelp.lnk”的文件中,该文件位于之前标识的启动路径中。该快捷方式文件指向之前编写的“winhelp.cpl”文件的路径。它将通过调用内置的Microsoft Windows“control.exe”实用程序来专门加载此CPL文件。最后,Reaver.v2将在一个新的进程中执行“〜Update.lnk”文件,从而加载最近丢失的恶意CPL文件。

Reaver.v3

像Reaver.v2一样,Reaver.v3首先会尝试为正在运行的进程启用SeDebugPrivilege特权。如果成功,恶意软件将使用以下路径来存储任何丢弃的文件:

%COMMONPROGRAMFILES%\ SERVICES \

如果不成功,将使用如下替代路径:

%APPDATA%\微软\证书\

随后,Reaver.v3会编写一个嵌入式Microsoft Cabinet(CAB)文件到以下位置:

%TEMP%\winhelp.dat

之后,这个CAB文件会被提取到以前识别的文件路径中,该cab文件的内容包含一个文件名为“winhelp.cpl”的Microsoft控制面板项目。

就像之前两个版本的Reaver一样,Reaver.v3也将查询必要的注册表项来确定正确的启动路径。同样,将一个快捷方式文件写入到名为“〜Update.lnk”的%TEMP%路径中,该文件随后又被复制到之前标识的一个文件名为“Windows help.lnk”的启动路径中。然后,该快捷方式文件调用内置的“control.exe”实用程序,依次加载之前丢弃的“winhelp.cpl”恶意CPL文件。

最后,恶意软件通过以下命令在新进程中调用“winhelp.cpl”文件: control [path_previously_identified]\winhelp.cpl

Reaver HTTP负载

Reaver的恶意CPL负载具有以下两个导出函数:

CPlApplet DllEntryPoint

加载CPlApplet函数后,Reaver将首先确定是否可以获取SeDebugPrivilege权限。随后,该恶意软件会使用简单的XOR例程来解密和嵌入128字节的配置。解密配置示例如下所示:

正如我们所见,在这个配置中包含以下信息:

远程命令和控制(C2)服务器; 远程端口; 休眠定时器(Sleep timer);

Reaver会从受害者设备中收集如下相关的信息:

CPU运行速度; 计算机名称; 用户名; IP地址; 物理和虚拟机的内存信息; Windows版本;

随后,该恶意软件会通过HTTP GET和POST请求与远程服务器进行通信。发送的数据会在放入请求之前被压缩,然后进行base64编码。

深入观察后我们发现,该有效载荷具备如下功能:

获取驱动器信息; 读取文件; 写入文件; 删除文件; 移动文件; 生成进程; 创建目录

Reaver TCP负载

Reaver的恶意CPL有效载荷有以下三个导出函数:

ServiceMain; CPlApplet; DllEntryPoint;

当该恶意软件被最初加载时会调用DllEntryPoint,随后,DllEntryPoint会调用一个负责解压数据块的函数,解压后的数据由Reaver使用的重要字符串的各种键/值对组成。

下面是一个解压数据的例子:

当恶意软件希望检索这些解码字符串中的一个时,它将简单地调用一个负责提供它的整型参数(integer argument)的函数。例如,调用提供参数“10001”的函数将检索一个“ole32.dll”字符串。

随后,DllEntryPoint函数会尝试获取SeDebugPrivilege特权,并调用WSAStartup以供将来的网络活动使用。

加载CPlApplet函数时,将使用先前使用的相同压缩算法对嵌入式配置进行解压。下面是一个解压配置的例子:

【解压Reaver配置】

该配置包含以下内容:

网络端口; 网络请求之间的睡眠定时器; 远程命令与控制(C2)服务器; 服务名称; 服务说明; 服务显示名称; 硬编码字符串,也可能是广告系列标识符,也可能是恶意软件版本控制字符串。

随后,恶意软件会检查是否存在原始丢弃的恶意软件文件。如果发生这种情况,Reaver将把这个文件移动到“%TEMP%\〜FJIOW.tmp”并删除这个新文件。 这个过程可以简单地理解为清理,以确保原始文件artifact不再驻留在受感染的机器上。然后,Reaver将在以SeDebugPrivilege权限运行时,将其自身安装为一项服务。

该服务配置了上述配置内容中提供的名称,说明和显示名称等信息。之后,Reaver便会从受害者设备上收集如下信息:

计算机名称; 盘卷序列号; Microsoft Windows版本; CPU速度; ANSI代码页; 操作系统的OEM代码页标识符; 物理和虚拟机内存信息;

Reaver会使用增量XOR密钥对这些数据进行加密,并将其上传到指定端口上配置的远程服务器中。以下Python代码示例演示了如何进行加密的过程:

数据渗漏完成后,该恶意软件需要包含两个DWORD的8个字节的数据,这些DWORD包含一个主命令和一个子命令。

深入分析后我们发现,该有效载荷具备如下功能:

获取驱动器信息; 修改文件; 修改目录; 修改注册表; 生成进程; 终止进程; 修改服务; 自我删除;

与SunOrcal的联系

研究人员分析后发现,在过去一年中(从2016年下半年-2017年11月),Reaver恶意软件与SunOrcal同时在使用。研究人员证实,两个Reaver恶意软件样本所在的zip文件,与SunOrcal C2服务器所托管的域名(www.fyoutside[.]com)一致。此外,两款恶意软件C2服务器的被动DNS(passive DNS)也存在重叠现象。

具体来说,到目前为止,Reaver恶意软件已经开始为其C2服务器使用www.tashdqdxp[.]com的域名,该域名与同一时间段内SunOrcal所使用的另一个C2服务器域名www.weryhstui[.]com存在重叠现象。因为,两个域名都被解析为98.126.156[.]210。详细重叠现象如下图所示:

【Reaver和SunOrcal重叠的部分】

SunOrcal恶意软件背后的黑客组织以使用SurtrRAT而闻名,Surtr RAT被绑定到名为HomeKit和Four Element Sword的武器化文档生成器。

结论

SunOrcal背后的黑客组织至少从2013年起就已经存在,且根据进一步的调查显示,黑客组织起源于更早,可能是2010年。目前,该黑客组织仍在开发新的定制恶意软件来针对其目标组织实施攻击。

新的恶意软件Reaver自2016年年底开始一直处于疯狂发展状态,已经在三个恶意软件变体中发现了十多种已知恶意软件样本。其在攻击中提供恶意软件Windows控制面板(CPL)文件,到目前为止,我们只在0.006%的恶意软件中发现了这种技术,这表明它实际上相当罕见。此外,我们还发现,攻击者从去年下半年到2017年11月,同时使用了Reaver和SunOrcal这两个恶意软件家族,且两个家庭之间有一些C2基础设施重叠。

我们将继续监视这些攻击者的新活动并进行跟踪报告。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概要
  • Reaver恶意软件分析
    • Reaver.v1
      • Reaver.v2
        • Reaver.v3
        • Reaver HTTP负载
        • Reaver TCP负载
        • 与SunOrcal的联系
        • 结论
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档