Office漏洞被用于传播FELIXROOT后门

ang010ela 二进制安全 2018年8月1日发布
Favorite收藏

导语:研究人员发现一起利用Office CVE-2017-0199(WORD/RTF嵌入OLE调用远程文件执行漏洞)和CVE-2017-11882(Office远程代码执行漏洞)漏洞在受害者机器上释放和执行后门二进制文件的攻击活动。

攻击活动详情

2017年9月,FireEye的研究人员发现针对乌克兰的工具活动中使用FELIXROOT后门作为payload,该攻击活动中包括恶意的乌克兰银行文档,该文档中含有可以下载FELIXROOT的宏文件。近期,研究人员发现该后门被用于一起新的攻击活动中。这次,声称含有研讨会信息的武器化的诱饵文档利用了Office CVE-2017-0199(WORD/RTF嵌入OLE调用远程文件执行漏洞)和CVE-2017-11882(Office远程代码执行漏洞)两个漏洞在受害者机器上释放和执行后门二进制文件。

图片.png

图1: 攻击概览

恶意软件通过用Office漏洞武器化的恶意文档进行传播,如图2所示。恶意文档名称是“Seminar.rtf”,攻击者利用CVE-2017-0199漏洞从193.23.181.151下载第二阶段payload;下载的文件通过CVE-2017-11882漏洞武器化。

图片.png

图2: 诱饵文件

图片.png

图3: Seminar.rtf中嵌入的URL的十六进制形式

图4是尝试下载二阶段Seminar.rtf的一阶段payload。

图片.png

图4: 下载二阶段Seminar.rtf

下载的Seminar.rtf文件含有嵌入的二进制文件,嵌入文件是通过公式编辑器释放到%temp%文件夹中的。该文件会在%temp%目录释放可执行文件(MD5: 78734CD268E5C9AB4184E1BBE21A6EB9),可执行文件是用来执行FELIXROOT释放器组件(MD5: 92F63B1227A6B37335495F9BCB939EA2)的。

释放的可执行文件(MD5: 78734CD268E5C9AB4184E1BBE21A6EB9)在PE二进制覆盖区含有压缩的FELIXROOT释放器组建。一旦执行,就会创建两个文件,分别是指向%system32%\rundll32.exe的LNK文件和FELIXROOT加载器组件。然后,LNK文件会被移动到开始目录。图5是LNK文件中用于执行FELIXROOT加载器组件的LNK文件。

图片.png

图5: LNK文件中的命令

嵌入的后门组件会用定制的加密方法加密,加密文件的解密和加载是在内存中进行的,不会在硬盘上留下痕迹。

技术细节

在成功利用漏洞之后,释放器组件会执行并释放加载器模块。加载器模块是通过RUNDLL32.EXE执行的。然后后门组件会在内存中加载,并有一个输出函数。

后门中的字符串是通过与4字节的key进行XOR运算进行加密的。对ASCII码字符串的解密逻辑如图6所示。

图片.png

图6: ASCII解密路径

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

图片.png

图7: Unicode解密路径

执行后,会创建一个线程,而后门本身会休眠10分钟。然后检查后门有没有通过RUNDLL32.exe和参数#1加载。如果恶意软件通过RUNDLL32.exe和参数#1加载,然后在与C2通信前进行初步系统分类。初步系统分类从通过ROOT\CIMV2命名空间连接Windows Management Instrumentation (WMI)开始。

图片.png

图8: 后门组件的初始执行过程

表1“ROOT\CIMV2”和“Root\SecurityCenter2”命名空间引用的类。

1.png

表1: 引用的类

使用的WMI查询和注册表

1.SELECT Caption FROM Win32_TimeZone

2.SELECT CSNAME, Caption, CSDVersion, Locale, RegisteredUser FROM Win32_OperatingSystem

3.SELECT Manufacturer, Model, SystemType, DomainRole, Domain, UserName FROM Win32_ComputerSystem

注册表是从潜在的管理提权和代理信息中读取的。

1.查询注册表 “SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ”是为了检查ConsentPromptBehaviorAdmin和PromptOnSecureDesktop的值。

2.查询注册表“Software\Microsoft\Windows\CurrentVersion\Internet Settings\” 是为了收集含有ProxyEnable, Proxy: (NO), Proxy, ProxyServer值的代理信息。

表2是FELIXROOT后门的一些功能,每个命令都是以单独线程执行的。

2.png

表2: FELIXROOT后门命令

图片.png

图9: 命令执行后的日志

网络连接

FELIXROOT通过HTTP和HTTPS POST协议与C2进行通信。网络上发送的数据会通过特殊的结构进行排列和加密。所有的数据都通过AES进行加密,然后进行Base 64编码,再发送给C2服务器。

图片.png

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

其他包括User-Agents, Content-Type, Accept-Encoding在内的其他request/response header域都进行XOR加密了。恶意软件会查询Windows API来获取计算机名、用户名、硬盘序列号、Windows版本、处理器架构和两个其它值,这两个值是1.3和KdfrJKN。KdfrJKN应该是用来识别该攻击活动,可以在文件的JSON对象中看到,如图11。

图片.png

图11: 通信中的主机信息

FELIXROOT后门再进行C2通信时有三个参数,每个参数都提供目标机器上任务的信息。

3.png

表3: FELIXROOT后门的参数

加密方法

所有传输给C2服务器的数据都使用AES加密,传输给lbindCtx COM接口的数据使用HTTP或HTTPS协议。每个通信使用不同的AES key,并使用两个RSA公钥之一进行加密。

图片.png

图12: RSA公钥1

图片.png

图13: RSA公钥2

图片.png

图14: AES加密参数

加密后,发送给C2的明文通过Base 64编码。图15是发送给服务器的数据结构,图16是用于C2通信的数据结构化表示。

图片.png

图15: 用于发送数据给服务器的结构

图片.png

图16: 用于发送数据给C2服务器的结构

该结构是用CryptBinaryToStringA函数转变为base 64编码的。

FELIXROOT后门对特定的任务含有很多命令。每个任务执行后,恶意软件在执行下一个任务时会休眠1分钟。一旦所有任务都执行完成,恶意软件就会打破循环,发回termination buffer(中止缓存),清除目标系统上的痕迹:

1.从开始目录删除LNK文件;

2.删除注册表HKCU\Software\Classes\Applications\rundll32.exe\shell\open

3.删除系统中的释放组件。

本文翻译自:https://www.fireeye.com/blog/threat-research/2018/07/microsoft-office-vulnerabilities-used-to-distribute-felixroot-backdoor.html如若转载,请注明原文地址: http://www.4hou.com/vulnerable/12830.html
点赞 1
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论