研究人员发现读取加密PDF文档的新方法

iso60001  1668天前

22.jpg

近期,有研究人员对外表示,他们发现了在某些情况下读取加密PDF文档的新技术。

这种被称为PDFex的新技术包括两类攻击方式,均利用了PDF文档内置的标准加密保护的安全漏洞。

需要说明的是,PDFex不能让攻击者直接知道或删除被加密PDF文档的密码;而是在合法用户打开该文档时,攻击者可以远程窃取到文件内容。

换句话说,攻击者利用PDFex修改一个被加密的PDF文档(在没有密码的情况下),之后,一旦有人输入正确的密码打开文档,便会有一份解密后的文档发送到攻击者所控制的服务器中。

研究人员对27个流行的PDF阅读器(包括桌面版阅读器和基于网页的阅读器)测试了PDFex技术,发现所有浏览器都至少受到一种攻击的影响,大多数浏览器易受两种攻击的影响。

受影响的PDF阅读器包括适用于Windows、macOS和Linux操作系统的阅读软件,例如:

  • Adobe Acrobat

  • Foxit Reader

  • Okular

  • Evince

  • Evince

一些基于网页的浏览器:

  • Chrome

  • Firefox

  • Safari

  • Opera

基于PDFex的两种攻击流程如下图所示:

33.png

据德国研究人员的说法,PDFex的原理是基于是PDF加密的两个主要缺陷:

1.部分加密——标准的PDF设计规范支持部分加密,只允许对字符串和数据流进行加密,而定义PDF文档结构的对象并未加密状态。

因此,这种密文与明文混合存在的情况为攻击者提供了一个契机,可以轻松地操纵文档结构,注入恶意payload。

2.密文扩展性——PDF加密使用了CBC(Cipher Block Chaining)加密模式,并没有完整性检查,攻击者可以利用这种模式创建自制的加密内容。

PDFex攻击类:直接过滤和CBC小工具

现在,让我们简单介绍一下两种PDFex攻击。

第1种:Direct Exfiltration——主要基于PDF文档的部分加密特性。

44.png

在不修改加密内容的情况下,攻击者可以往PDF文档中添加其他未加密的对象,这些对象可用于定义合法用户成功打开时将要执行的操作。

而这些操作可帮助远程攻击者窃取文件内容:

  • 提交表单

  • 调用一个URL

  • 执行javascript

根据论文的说法,被加密的文件块被包含在对外请求中,一旦它们被解密,就可发送到任意URL。一旦PDF文件被打开(解密之后),或者经过用户交互(例如在文档中单击),就可以自动执行发送操作,将明文内容发送到攻击者的服务器中。

如上图所示,表单提交的URL(蓝色)没有被加密,可完全由攻击者控制。

第2种:CBC gadget——不是所有的PDF阅读器都支持部分加密,但它们大多数都没有文件完整性保护,因此攻击者可随意修改和添加加密内容。

55.jpg

这两种攻击的攻击场景几乎相同,唯一的区别是第二种情况下攻击者是修改现有的加密内容或是添加新生成的加密内容(定义如何截取数据)。

除此之外,如果PDF包含压缩的数据流,则攻击者需要使用对半开的对象流来窃取数据。

相关PoC

该研究小组包括来自Ruhr-University Bochum和Münster大学的6名德国学者,他们已经向所有受影响的厂商报告了他们的发现,并向公众发布了用于验证PDFex攻击的PoC

66.png

该团队之前的一些研究包括于2018年5月披露的eFail攻击,该攻击影响了十几个流行的使用了PGP加密的电子邮件客户端。

有关PDFex攻击的更多技术细节,你可以直接访问由研究人员发布的专题报告

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://thehackernews.com/2019/10/pdf-password-encryption-hacking.html

最新评论

昵称
邮箱
提交评论