一款使用RTF文件作为传输向量的恶意软件分析

简介:

在分析恶意软件过程中,我们经常看到,攻击者以创新的方式使用特性传输和混淆恶意软件。最近我们发现,利用RTF临时文件作为一种传递方法来压缩和删除恶意软件的样本数量有所增加。所以,本文中我们就分析一款利用RTF文件作为传输向量的恶意软件。

一款使用RTF文件作为传输向量的恶意软件分析

0×01 攻击过程

这种攻击使用下面的过程在一个系统中删除并执行payload。

一款使用RTF文件作为传输向量的恶意软件分析

图1 恶意软件攻击过程

1、用户打开Office文档并启用宏。

2、宏将活动文档保存为一个RTF文件。

3、宏静默地打开RTF文档。

4、在打开RTF文档时,将嵌入的对象删除为临时文件。

5、宏执行被删除的文件。

为了更好地理解这个传递方法是如何工作的,我们需要看看二进制文件在RTF文档中是如何压缩的,以及处理这些嵌入的对象时的默认行为。

当打开一个包含内嵌对象(从一个文件中插入的对象)的RTF格式文档时,这些对象就会被提取到用户的临时目录中,如果用户在文档中单击了对象,那么对象就会在这里以默认的处理程序启动。一旦文档关闭,就会通过将它们从用户临时目录中删除而清理掉文件。所以,在文档打开期间,系统中的其他进程都能够访问这些文件。

当一个对象被嵌入到一个文档中时,它将使用Packager对象服务器,OLE1中的一个遗留实现。不幸的是,Packager格式并未以文档形式发布,且微软开放规范中也未包含它的信息。

对象存储在一个文档中的内嵌对象(objemb)部分。头字段定义了对象服务器、大小以及其他有关底层内嵌数据的元数据。

一款使用RTF文件作为传输向量的恶意软件分析

图2 Object头

关于头格式的更多信息可以在MS-OLEDS—2.2.4节ObjectHeader中查看。

0×02 理解OLE1 Packager格式

通过分析大量样本,我们已经能够理解Packager格式的大部分内容,以及它与文档中内嵌对象的联系。下表中列出了遗留Packager数据格式,并可用作解析包数据流的一个指导。

一款使用RTF文件作为传输向量的恶意软件分析

图3 OLE1 Packager格式

除了嵌入的二进制内容,格式中还包括内嵌对象的元数据,这在DFIR中是很有用的。

1、默认情况下,标签值将包含OrgPath中使用的文件名和ObjFile。如果这个值有所不同,表明标签被篡改了。

2、OrgPath将包括内嵌二进制文件的原始路径。

3、ObjFile将包括编写系统% localappdata %的路径,它将包括用户名C:\Users\ \...

为了帮助分析可疑的包数据流,我们编写了一个python工具psparser,它会处理数据格式并将输出元数据,并选择性地提取嵌入的对象。使用该工具能够有助于分析最近发现的钓鱼活动中的恶意RTF文件,我们可以看到它与嵌入对象元数据之间具有很多潜在的相似性。

一款使用RTF文件作为传输向量的恶意软件分析

图4 样本分析

使用嵌入的元数据能够给我们一些主要的指标,我们可以使用这些指标来进一步寻找相关的样本进行分析。

0×03 文档转换

为了完成这个传递方法,攻击者以一个RTF文档开始,并嵌入一个恶意可执行文件,然后将该文档转换成一个Word文件(.doc)。一旦在Word中,攻击者增加所需的宏调用来保存、打开和执行压缩在源文档中的payload。

一款使用RTF文件作为传输向量的恶意软件分析

图5 恶意宏

图5展示了利用这种传递向量的恶意宏的一个示例。宏使用函数SaveAs来保存活动的文档,并以格式(wdFormatRTF)和CreateObject打开Word的一个新实例,而该Word静默地打开了文档。一旦RTF文档打开后,宏会执行被提取到用户临时目录的payload。

虽然一旦Word实例被关闭,可执行文件就会被删除,但是宏写入临时目录的RTF文件仍旧存在,并能够在分流或响应活动中用作主机指标。对宏的检查可以快速确认一旦payload被执行,RTF文件是否也被删除。

0×04 RTF到Doc以及反向转换

当Word打开时,虽然默认行为有所不同,嵌入对象不再被提取到临时目录中,但是分析嵌入的Ole10Native流显示,当文件被保存到新的格式时并未被修改。

当恶意宏将文档保存回RTF格式时,整个文档增加了新的字段和格式,但是恶意payload的流保持不变。

一款使用RTF文件作为传输向量的恶意软件分析

图6 原始RTF与保存RTF文档对比

一旦文档转成回原始格式,当文件处于打开状态时,在嵌入的对象被自动提取到临时目录的地方就会发生默认行为。

0×05 结论

我们可以看到,这是一种创新性的方式来使用默认行为压缩和传递恶意二进制文件。另外,我们还看到,攻击者使用混淆(XOR)的附加层来更好地掩盖文档对二进制文件的包含。

看着这些样本中的恶意宏,并没有显式的调用来编写或下载用作payload的二进制文件。当识别恶意二进制文件初始的传递向量时,恶意软件分类过程中这可能会导致一些混乱。

0×06 参考资料

1、https://blogs.mcafee.com/mcafee-labs/dropping-files-temp-folder-raises-security-concerns/

2、https://isc.sans.edu/forums/diary/Getting+the+EXE+out+of+the+RTF/6703/

3、https://www.dshield.org/forums/diary/Getting+the+EXE+out+of+the+RTF+again/8506/

0×07 样本

1、88c69cd7738b6c2228e3c602d385fab3

2、8cbb6205bb1619a4bde494e90c2ebeb6

3、836ff385edd291b1e81332c7c3946508

4、da86cbe009b415b3cf5cd37a7af44921


作者:JackFree

来源:51CTO

相关文章
|
8月前
|
搜索推荐 Linux Python
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
VET:一个基于R语言的VCF数据提取工具,支持按基因ID、物理位置、样品名称提取指定变异信息
|
4月前
|
自然语言处理 文字识别 数据可视化
从PDF和图像中提取文本,以供大型语言模型使用
从PDF和图像中提取文本,以供大型语言模型使用
|
4月前
|
存储 算法 搜索推荐
pacs系统源码,医学图像信息的快速采集、传输、存储、显示和后处理
PACS系统以实现医学影像数字化存储、诊断为核心任务,从医学影像设备(如CT、CR、DR、MR、DSA、RF等)获取影像,集中存储、综合管理医学影像及病人相关信息,建立数字化工作流程。 系统可实现检查预约、病人信息登记、计算机阅片、电子报告书写、胶片打印、数据备份等一系列满足影像科室日常工作的功能,并且由于影像数字化存储,用户可利用影像处理与测量技术辅助诊断、方便快捷地查找资料或利用网络将资料传输至临床科室
|
8月前
|
Linux Shell 数据格式
Linux脚本丨批量提取VCF文件指定样本数据
Linux脚本丨批量提取VCF文件指定样本数据
|
9月前
|
C# C++ 网络架构
《c# 实现p2p文件分享与传输系统》 一、 模型
《c# 实现p2p文件分享与传输系统》 一、 模型
195 0
|
存储 自然语言处理 数据安全/隐私保护
医院影像图像科室工作站PACS系统源码 DICOM 三维图像后处理与重建
开放式体系结构,完全符合DICOM3.0标准,提供HL7标准接口,可实现与提供相应标准接口的HIS系统以及其他医学信息系统间的数据通信。 ·全面PACS/RIS,实现对不同设备、不同图像信息的处理。 ·多种临床工具包,可对图像进行多种增强处理、测量、标注,充分发挥电子胶片的特点。 ·支持WORKLIST功能,自动化工作流程。 ·有效解决大容量图像存储问题,支持多种存储方式和多种备份方式。 ·报告单有多种模式及自定义样式。 ·集成三维影像后处理功能。
203 0
|
存储 编解码 搜索推荐
PACS系统源码(医学图像存储与传输)支持三维重建与还原
影像阅片 影像阅片是PACS最核心的部分,主要用来给医生提供调阅影像和影像处理,基础功能一般厂商都有,比如序列、旋转、放大缩小、标注、窗宽调整、四角信息设置、定位线、比例尺、测量、裁剪、伪彩等等,三维重建是一个亮点功能,很多厂商目前由于技术瓶颈尚未实现。这套PACS系统源码是带三维重建和还原的,是符合市场需求的PACS系统。
174 0
PACS系统源码(医学图像存储与传输)支持三维重建与还原
|
存储 机器学习/深度学习 算法
Python 实现LSB算法进行信息隐藏 包含空域与变换域 JPEG信息隐藏算法 对PDF文件进行信息隐藏 基于卷积神经网络的隐写分析 Matlab SRM、SCA隐写分析
Python 实现LSB算法进行信息隐藏 包含空域与变换域 JPEG信息隐藏算法 对PDF文件进行信息隐藏 基于卷积神经网络的隐写分析 Matlab SRM、SCA隐写分析
393 0
Python 实现LSB算法进行信息隐藏 包含空域与变换域 JPEG信息隐藏算法 对PDF文件进行信息隐藏 基于卷积神经网络的隐写分析 Matlab SRM、SCA隐写分析
|
安全 PHP Windows
35、本地文件包含漏洞
35、本地文件包含漏洞
74 0
35、本地文件包含漏洞

热门文章

最新文章