攻击者借助Office漏洞传播FELIXROOT后门

一、攻击活动细节

2017年9月,在针对乌克兰的攻击活动中FireEye发现了FELIXROOT后门这款恶意载荷,并将其反馈给我们的情报感知客户。该攻击活动使用了一些恶意的乌克兰银行文档,其中包含一个宏,用来下载FELIXROOT载荷并将其投递给攻击目标。

最近FireEye观察到有新的攻击活动中用到了同样的FELIXROOT后门。在这次攻击活动中,武器化的诱骗文档涉及到与环境保护研讨会相关的话题,利用了两个已知的Microsoft Office漏洞(CVE-2017-0199以及CVE-2017-11882)来将后门程序释放到受害者主机上并加以执行,攻击活动流程图如图1所示。

图1. 攻击流程图

恶意软件借助俄语文档(如图2所示)进行传播,文档用到了已知的Microsoft Office漏洞利用技术。在此次攻击活动中,我们观察到攻击者利用CVE-2017-0199以及CVE-2017-11882漏洞来传播恶意软件。所使用的恶意文档名为“Seminar.rtf”,文档利用CVE-2017-0199漏洞从193.23.181.151这个地址处(如图3所示)下载第二阶段所使用的攻击载荷,所下载的文档包含了CVE-2017-11882漏洞利用技术。

图2. 诱饵文档

图3. Seminar.rtf文档中的URL信息(十六进制数据)

图4表明第一个载荷正尝试下载攻击第二阶段所使用的Seminar.rtf。

图4. 下载第二阶段所使用的Seminar.rtf

下载的Seminar.rtf文档中包含一个二进制文件,通过公式编辑器将可执行文件释放到%temp%目录中。该文件将可执行文件释放到%temp%目录(MD5:78734CD268E5C9AB4184E1BBE21A6EB9),后者用来下载并执行FELIXROOT释放器组件(MD5:92F63B1227A6B37335495F9BCB939EA2)。

释放出来的可执行文件(MD5:78734CD268E5C9AB4184E1BBE21A6EB9)在PE(Portable Executable)覆盖区中包含经过压缩处理的FELIXROOT释放器组件。当该文件被执行时会创建两个文件:指向%system32%\rundll32.exe路径的一个LNK文件以及FELIXROOT加载器组件。LNK文件会被移动到启动目录中。LNK文件中包含用来执行FELIXROOT加载器组件的命令,如图5所示:

图5. LNK文件中包含的命令

内置的后门组件使用了自定义加密算法进行加密。该文件会直接在内存中解密并执行,不涉及到落盘操作。

 

二、技术细节

成功利用漏洞后,释放器组件会执行并释放加载器组件。加载器组件借助RUNDLL32.EXE来执行。后门组件会被加载到内存中,只包含一个导出函数。

后门中包含的字符串经过自定义的加密算法进行加密处理,加密算法为XOR(异或)算法,采用了4字节的密钥。ASCII字符串对应的解密逻辑如图6所示。

图6. ASCII解密过程

Unicode字符串的解密逻辑如图7所示。

图7. Unicode解密过程

执行起来后,后门会创建一个新的线程,然后休眠10分钟,接着确认自身是否由RUNDLL32.EXE使用#1参数启动,如果条件满足,则后门会在执行命令与控制(C2)网络通信操作之前先进行初始的系统信息收集。为了收集系统信息,后门通过ROOTCIMV2命名空间连接到Windows Management Instrumentation(WMI)。

整个操作过程如图8所示:

图8. 后门组件初始执行流程

ROOTCIMV2RootSecurityCenter2命名空间中引用的类如表1所示:

WMI命名空间
Win32_OperatingSystem
Win32_ComputerSystem
AntiSpywareProduct
AntiVirusProduct
FirewallProduct
Win32_UserAccount
Win32_NetworkAdapter
Win32_Process

表1. 引用的类

WMI及注册表

用到的WMI查询语句如下所示:

SELECT Caption FROM Win32_TimeZone
SELECT CSNAME, Caption, CSDVersion, Locale, RegisteredUser FROM Win32_OperatingSystem
SELECT Manufacturer, Model, SystemType, DomainRole, Domain, UserName FROM Win32_ComputerSystem

后门会读取注册表相关键值信息,收集管理员权限提升信息及代理信息。

1、查询SOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem路径中的ConsentPromptBehaviorAdminPromptOnSecureDesktop表项值;

2、查询SoftwareMicrosoftWindowsCurrentVersionInternet Settings路径中的ProxyEnableProxy:(NO)ProxyProxyServer表项值。

FELIXROOT后门的功能如表2所示。每条命令都会在独立的线程中执行。

命令 描述
0x31 通过WMI及注册表收集系统指纹信息
0x32 释放文件并加以执行
0x33 远程Shell
0x34 终止与C2服务器的连接
0x35 下载并运行批处理脚本
0x36 下载文件到本地
0x37 上传文件

表2. FELIXROOT后门命令

使用图6及图7的解密方法后,我们从内存中提取出了每条命令执行后的日志信息,如图9所示。

图9. 命令执行后的日志

网络通信

FELIXROOT会通过HTTP与HTTPS POST协议与C2服务器通信。通过网络发送的数据经过加密处理,采用自定义的数据结构。所有的数据都经过AES加密,转换为Base64数据然后再发送给C2服务器(如图10所示)。

图10. 发送给C2服务器的POST请求

Request及Response数据包头部中的其他所有字段(如User-AgentsContent-TypeAccept-Encoding)都经过XOR加密处理,可以在恶意软件中找到。恶意软件调用Windows API获取计算机名、用户名、卷序列号、Windows版本、处理器架构以及其他两个值(分别为“1.3”以及“KdfrJKN”)。“KdfrJKN”这个值可能是个标识符,可以在文件内部的JSON对象中找到(如图11所示)。

图11. 每次通信中所使用的主机信息

FELIXROOT后门在C2通信中用到了3个参数,每个参数都可以提供关于目标主机的一些信息(如表3所示)。

参数 描述
‘u=’ 该参数包含目标主机信息,具体格式为:<Computer Name>, <User Name>, <Windows Versions>, <Processor Architecture>, <1.3>, < KdfrJKN >, <Volume Serial Number>
‘&h=’ 该参数包含执行的命令及具体结果
‘&p=’ 该参数包含与C2服务器有关的数据信息

表3. FELIXROOT后门参数

加密算法

发送给C2服务器的所有数据都经过AES加密处理,通过IbindCtx接口使用HTTP或者HTTPS协议进行传输。每次通信所使用的AES密钥都不相同,该密钥经过两个RSA公钥的加密处理。FELIXROOT所使用的RSA密钥如图12及图13所示,AES加密参数如图14所示。

图12. RSA公钥1

图13. RSA公钥2

图14. AES加密参数

加密处理后,发往C2的密文还会经过Base64编码。发送给服务器的数据结构体如图15所示,C2通信中对应的数据结构如图16所示。

图15. 用来将数据发送至服务器的结构体

图16. 发往C2服务器数据结构样例

后门使用CryptBinaryToStringA函数将该结构体数据转换为Base64编码。

FELIXROOT后门包含若干条命令,用于不同的任务。每项任务执行完毕后,恶意软件会在执行下一项任务前睡眠1分钟。一旦所有任务执行完毕,恶意软件会跳出循环,删除数据缓冲区,然后清除目标主机上的所有痕迹,包含如下清痕操作:

1、从启动目录中删除LNK文件;

2、删除HKCUSoftwareClassesApplicationsrundll32.exeshellopen注册表项;

3、从系统中删除释放器组件。

 

三、总结

CVE-2017-0199以及CVE-2017-11882是目前我们最常见到的两个漏洞。攻击者通常会越来越广泛地利用这些漏洞发动攻击,直至漏洞再无可用之处为止,因此各个单位必须确保他们处于足够的防护中。在本文成文时,FireEye Multi Vector Execution(MVX)引擎已经能正确识别并阻止此类安全威胁。我们建议所有行业保持警惕,因为此次攻击活动的肇事者很有可能会扩大他们的攻击范围。

 

四、附件

IOC

MD5哈希值 样本
11227ECA89CC053FB189FAC3EBF27497 Seminar.rtf
4DE5ADB865B5198B4F2593AD436FCEFF Seminar.rtf
78734CD268E5C9AB4184E1BBE21A6EB9 Zam<随机数>.doc
92F63B1227A6B37335495F9BCB939EA2 FELIXROOT Dropper
DE10A32129650849CEAF4009E660F72F FELIXROOT Backdoor

表4. FELIXROOT IOC

网络IOC

217.12.104.100/news
217.12.204.100:443/news
193.23.181.151/Seminar.rtf
Accept-Encoding: gzip, deflate
content-Type: application/x-www-form-urlencoded
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)

配置文件

版本1:

{"1" : "https://88.198.13.116:8443/xmlservice","2" : "30","4" : "GufseGHbc","6" : "3", "7" : “http://88.198.13.116:8080/xmlservice"}

版本2:

{"1" : "https://217.12.204.100/news/","2" : "30","4" : "KdfrJKN","6" : "3", "7" : "http://217.12.204.100/news/"}

FireEye检测结果

MD5 产品 特征 操作
11227ECA89CC053FB189FAC3EBF27497 NX/EX/AX Malware.Binary.rtf 阻止
4DE5ADB865B5198B4F2593AD436FCEFF NX/EX/AX Malware.Binary.rtf 阻止
78734CD268E5C9AB4184E1BBE21A6EB9 NX/EX/AX Malware.Binary 阻止
92F63B1227A6B37335495F9BCB939EA2 NX/EX/AX FE_Dropper_Win32_FELIXROOT_1 阻止
DE10A32129650849CEAF4009E660F72F NX/EX/AX FE_Backdoor_Win32_FELIXROOT_2 组织
11227ECA89CC053FB189FAC3EBF27497 HX IOC 警告
4DE5ADB865B5198B4F2593AD436FCEFF HX IOC 警告

表5. FireEye检测结果

(完)