欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

打印机安全研究(一):不容乐观的网络打印机安全状况

来源:本站整理 作者:佚名 时间:2017-02-13 TAG: 我要投稿

打印机是人们在生活和办公中经常使用的电子设备,家庭、办公室、公司、政府单位、医院、学校……,几乎每一个单位和机构都会使用打印机。从安全的角度来看,由于打印设备部署于内部网络,通过它们可以直接访问到机密报告、合同或病历等敏感信息,比较关键。近期,来自德国鲁尔大学的安全研究人员对多种品牌型号的网络打印机开展了一项深入的安全研究,以下为他们对这项研究的相关概述和结果分析。

在这篇文章中,我们总结了基于网络打印机的攻击场景概述,同时展示了攻击者可以如何入侵一台存在漏洞的打印机。通过对20种不同品牌型号的打印机进行测试后发现,每一种品牌的打印机都存在不同程度的攻击可能和漏洞。基于分析,我们还给出了测试过程中使用的打印机入侵利用工具-PRinter Exploitation Toolkit (PRET)。主要研究成果可以在Jens Müller发表的PPT和我们发布的公开报告中找到。另外,为了加强打印机安全的研究交流,我们还设立了一个wiki页面http://hacking-printers.net/,其它更多精彩的分享,请关注Jens Müller即将在5月份RuhrSec安全会议上的演讲《How to Hack Your Printer》。
研究背景
打印语言是控制打印机工作的一个命令集,它告诉打印机如何组织被打印的文档,在打印机语言的控制下,从计算机传来的打印数据被转化成可供打印的文字和图像,最终被打印机识别并输出出来。打印语言决定着激光打印机输出版面的复杂程度,是衡量激光打印机性能的一个重要指标。
一个高效的控制语言可减少文件的大小和下载的时间,提高将普通文本格式化成打印文本的速度,目前主要打印控制语言有:PS(PostScript)、PCL和GDI(图形设备接口语言);但总体来说可以分成两类,一类是页描述语言(PDL,Page Descriptional Language),另一类是嵌入式语言(如ESCape Code Language),PCL和 PostScript都属于PDL。(更多了解请参考此文档)。
针对打印机,有多种协议命令和打印语言可以实现打印机设备和打印任务的控制,其中大多数都可能是我们平时都没怎么听过的。相关协议和语言如下图所示:

设备控制
这个命令集语言用于打印机设备控制,使用它们还可以检索设备名称和状态,该集合语言主要为简单网络管理协议SNMP,SNMP是基于UDP,用来管理诸如打印机、路由器、服务器等各种网络设备的基本网络通信协议。
打印通道
打印设备通常支持的协议有:互联网打印协议(IPP)、行式打印后台程序(LPD)、SMB协议和9100原始端口打印协议。这些协议都各有特点,如打印作业队列管理或报告等。在测试分析过程中,我们正是利用了这些打印支持协议,向打印机进行恶意文档传播的。
互联网打印协议(IPP;Internet Printing Protocol)是一个在互联网上打印的标准网络协议,它容许用户可以透过互联网作遥距打印及管理打印工作等工作。用户可以透过相关界面来控制打印品所使用的纸张种类、分辨率等各种参数。
作业控制语言
该命令集语言一般用于管理置纸托盘和纸张数量等打印机设置状态,其中比较标准的作业控制语言则是PJL,与PCL不同的是,PJL提供了不同类别的任务级别的控制。从安全角度来说,PJL更适用,因为它不仅能应用于当前任务,还能作出一些永久性设置,如打印显示或读写状态等。
PJL ,Printer Job Language的简写,它提供了不同类别的打印控制。与PCL不同的是,PJL提供任务级别的控制,而PCL和HP-GL/2只控制打印页面上的打印点的位置。
页面描述语言(PDL)
PS(PostScript)语言是一种标准的PDL语言。虽然PostScript已经不在台式印刷系统中流行,但仍然是激光印刷打印系统的PDL语言首选。PostScript是基于堆栈的图灵完备编程语言,它包含400多种指令和操作符,从安全视角来说,这些指令和操作符可以被攻击利用,入侵控制了PostScript解释器就能实现代码执行等恶意操作。
页面描述语言,是一种面向输出效应的语言,用于描述打印或照排的版面,这种语言不仅具有版面描述功能,还具有计算机设计的特点,即可处理文字,又可处理图象,各种软件在排版和图形处理之后形成PDL形式,就可汇总在一页上输出。
攻击测试
从网络攻击角度来说,打印机算是一个重要且有价值的攻击目标,但打印机的安全和威胁技术研究却非常之少。所以,我们的首要任务是,根据目前CVE漏洞库和安全博客中公布的,有关打印机漏洞和安全技术进行综合分析,通过对现存已知漏洞问题的归纳总结,构建新型或通用攻击模型,测试不同品牌型号打印机存在的漏洞和安全性。
我们认为,最好的攻击目标是那些使用PostScript和PJL解释器进行打印作业处理的打印机,因为远程攻击者可以不依赖于设备支持的打印通道,仅只需要利用单独的’文档打印’功能就能对其进行入侵攻击。在我们的分析中,总体上把打印机攻击分为四类:
DoS攻击
只要执行以下两行PostScript代码,就可实现对打印机的DoS攻击,让打印机陷入一个无限loop任务循环:
%!
{} loop
其它此类攻击:
使打印机进入离线脱机模式:利用PJL语言的操作控制命令让打印机显示其它特定消息或进入离线状态模式;
物理破坏:通过对PJL常变量的持续设置和更改,可能会对打印机具有读写周期的NVRAM(非易失性随机访问存储,打印机主要存储)造成破坏;
重定义打印显示信息:PostScript的’showpage’命令用来对打印文档的每一页显示信息进行设置,可在不影响打印内容的顶部或底部加入自定义标题文字。因此,攻击者可以通过该命令任意定义其它打印显示信息。
安全设置绕过
为了绕过打印机现有的安全设置,最简单的方法就是把打印机重置到出厂状态。由于大多数打印机都可以通过某些按键组合进行出厂状态硬复位,所以对入侵了打印机的攻击者来说,这种操作也比较容易实现。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载