欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[翻译]RTF恶意软件如何躲避基于特征的静态检测

[翻译]RTF恶意软件如何躲避基于特征的静态检测

原文https://www.fireeye.com/blog/threat-research/2016/05/how_rtf_malware_evad.html


译者注:这篇文章是FireEye研究员Junfeng Yang在2016年写的关于RTF混淆技巧的一个总结,这是我看过的关于这方面的最好的一篇文章,由于我在国内没有看到过这方面的好文章,因此决定把它翻译一下。


RTF恶意软件如何躲避基于特征的静态检测

Junfeng Yang写于2016年3月20号

历史

富文本格式(RTF)是微软开发的一种文档格式,它被广泛地用在各种平台超过29年。RTF格式非常灵活,因此也非常复杂。这使得开发一个安全的RTF解析器很有挑战性。一些臭名昭著的漏洞,如CVE-2010-3333和CVE-2014-1761都是由于RTF解析逻辑实现部分的错误导致。


事实上,RTF恶意软件并不局限于利用RTF解析漏洞。恶意RTF文档可以嵌入其他与RTF解析器不相关的漏洞,因为RTF支持嵌入对象,例如OLE对象和图像(译者补充:还有链接对象,例如CVE-2017-0199和CVE-2017-8759)。CVE-2012-0158和CVE-2015-1641是两个典型的这种漏洞——它们的根本原因并不位于RTF解析器,但攻击者可以通过其他文件格式利用这些漏洞,例如DOC和DOCX。


另一种RTF恶意软件并不使用任何漏洞。它简单地包含嵌入的恶意可执行文件,并且诱使用户去触发这些恶意文件。这允许攻击者通过电子邮件去传播恶意软件,因为电子邮件显然不是一个可以直接发送可执行文件的好载体(译者注:exe等文件类型会被电子邮件客户端(如outlook)直接锁住)。


大量的恶意软件作者更喜欢用RTF作为一个攻击载体,因为RTF是一种混淆友好型格式。因此,他们的恶意软件可以简单躲避基于如YARA或Snort的静态特征检测。这也是为什么在一个脚本化利用的时代,我们仍然看到大量这类基于RTF攻击的一个很大的原因。

在这篇博客里面,我们呈现了一些被恶意RTF使用的通用逃逸技巧。

通用的混淆

让我们来讨论一些不同的RTF混淆策略。

1. CVE-2010-3333

这个漏洞被Team509在2009年报告,是一个典型的栈溢出漏洞。利用这个漏洞是如此稳定和可靠,以至于在今天它仍在野外被使用,距离它被发现已经7年了!最近,攻击者利用这个漏洞针对了印度大使馆。


这个漏洞的根本原因是微软RTF解析器在处理pFragments图形属性时存在一处栈溢出。精心构造一个恶意RTF来利用这个漏洞允许攻击者执行容易代码。微软自漏洞披露就修复了这个漏洞,但是许多老版本的Microsoft Office仍受影响。所以它的威胁评级仍然非常高。



Microsoft Office RTF解析器在拷贝源数据到一个有限的栈缓冲区时缺少合适的边界检查。针对这个漏洞利用可以被简化如下:

{\rtf1{\shp{\sp{\sn pFragments}{\sv A;B;[word1][word2][word3][hex value array]}}}}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功