深度剖析通过ArgusPDF转换器实现的MarkLogic漏洞攻击-Cisco.PDF

深度剖析通过ArgusPDF转换器实现的MarkLogic漏洞攻击-Cisco.PDF

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深度剖析通过ArgusPDF转换器实现的MarkLogic漏洞攻击-Cisco

2017 年9 月14 日,星期四 深度剖析:通过Argus PDF 转换器实现的MarkLogic 漏 洞攻击过程 本博文由Marcin Noga 撰写。特别感谢 William Largent 提供的建议。 Talos 致力于发现各种软件漏洞,并本着负责任的态度定期披露这些漏洞。有时,我们会发 布一些深度技术分析文章来讲解如何发现漏洞或其潜在影响。在以前的博文中,Talos 曾对 Lexmark Perceptive 文档过滤器进行深度剖析。本文将侧重于MarkLogic 使用的另一个工具- Argus PDF 转换器。该工具位于“Converters/cvtpdf”文件夹下,用于将PDF 文件转换为基 于XML 的格式。本文将包含技术方面的内容,包括通过Argus PDF 转换器发现漏洞并利用 漏洞的过程。 这对MarkLogic 到底有何影响? 在深入阅读之前,请先观看下面的视频。这段视频演示了Windows 环境下对Marklogic 8.0-5.5 进行的远程代码执行测试,最终结果是获得了“系统”级权限! 通过使用Argus PDF 的dll 文件和转换器二进制文件,我们可以在Marklogic 目录的以下位 置找到该转换器: 那么,我们要如何才能强制MarkLogic 使用该转换器呢?每当Marklogic 使用XDMP API “pdf-convert”时,就会使用该转换器。 从该API 的文档描述中,我们了解看到以下信息: 将PDF 文件转换为XHTML 格式。返回多个节点,包括一个parts 节点、转换文档xml 节 点,以及任何其他文档部分(例如css 文件和图像)。第一个节点为parts 节点,其中包含 转换后生成的所有部分的列表。 使用示例- 我们尝试对一个来自不可信来源的PDF 文档执行转换操作: xdmp:pdf-convert( xdmp:document- get(/malicious.pdf), malicious.pdf ) 当MarkLogic 调用前面提到的“pdf-convert”API 时,MarkLogic 守护进程将启动 “convert”二进制文件,并使用Argus.dll 将PDF 转换为(x)html 格式。 更严重的影响 正如上面的漏洞攻击示例中提到的那样,在较新版本的Windows 版MarkLogic 中, “convert”组件是由MarkLogic 启动的,而且在这个过程中权限不会降低,所以“convert” 组件会以“系统”级权限执行转换任务!这将大大增加漏洞攻击成功的潜在影响,因为攻击 者会自动获得最高级别的系统权限。 漏洞渗透测试 在对该产品进行研究的过程中,Talos 在 Iceni Argus PDF 库中发现了多个漏洞。在本文中, 我们将使用CVE-2016-8335 (TALOS-2016-0202) Iceni Argus ipNameAdd 代码执行漏洞来 演示漏洞攻击过程,这是一个传统的、基于堆栈的缓冲区溢出漏洞。 Linux 版本 首先,我们来了解一下该转换器的Linux 版本在转换恶意PDF 文件时是如何工作的: 在这种情况下,“convert”库已使用安全Cookie 进行编译,可以增加漏洞攻击的难度,不 过需要指出的是,这种保护机制在某些情况下可以被绕过。在Talos 成员Aleksander Nikolic 编写的绕过MiniUPnP 堆栈粉碎保护一文中,就有一个很好的例子。 存在安全Cookie 及校验和确认: 在这里也可以看出,“convert”可执行文件不支持地址空间布局随机化(ASLR)。 注意:在linux 版转换器中,Argus 库已使用“convert”应用进行静态编译。 Windows 版本 下面,我们来看该转换器的Windows 版本: 很好,没有任何堆栈Cookie 保护,可以毫不费力地进行漏洞攻击。有关漏洞分类过程的更多 信息,请参阅此处提供的具体建议。下面的步骤概括说明了存在漏洞的具体代码,以及如何触 发该漏洞。 利用漏洞的步骤 1. 函数“ipNameAdd”中存在漏洞。 2. 存在漏洞的代码具体如下: 第12 行包含存在错误的strcpy 调用 3. 攻击者创建不是常规“Name 对象”的“token”(数据类型可以是“整数”、“浮点数” 或“十六进制字符串”),即可触发基于栈的缓冲区溢出漏洞,从而执行任意代码。 4. 示例PDF 触发此漏洞。 5. 溢出的“字符串”

文档评论(0)

laolao123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档