披着狼皮的羊——寻找惠普多款打印机中的RCE漏洞(2)
2023-06-03 来源:旧番剧
和 M553
(http://store.hp.com/us/en/pdp/hp-color-laserjet-enterprise-m553n)
,正如惠普视频中“狼”说的,“要开始捕猎了”。
本文中讲到的RCE漏洞在2017年8月21日报告给了惠普,惠普已经修复并发布了安全公告:
https://support.hp.com/nz-en/document/c05839270
,本文涉及的所有代码我们都放在Github上:
https://github.com/foxglovesec/HPwn
一、打印机攻击向量
在上面的视频及其续集中,“狼”执行了一系列不太可能的攻击。这些攻击是毫无道理且极其不切实际的,让我们暂且忽略这些事实,来看看下面相关的打印机安全问题:
打印作业安全:打印作业安全主要通过两种方式暴露出来,一个是打印机托盘中已完成的文件,会被路过的人取走;或者是在一些打印机上,攻击者可以通过网络提取或拦截打印作业。
未签名的代码执行:打印机通常会免除多种类型的监测,如果攻击者能在打印机上运行恶意软件,那么它不仅能不受限制地访问打印作业,并且还不太可能被发现,成为攻击者安全的避风港。
接下来,以上面2点攻击向量为主,我们将重点介绍一系列在现代惠普打印机上测试过的安全问题。
二、测试常见的打印机漏洞
我们首先回顾了打印机中现有的安全空间,过程中我们发现了“打印机开发工具包”——PRET。这个工具包包含了许多预定义的攻击方法,可以针对不同制造商的打印机。它更多的是为常见攻击提供了模板,而不是针对某个特定打印机的特定漏洞。因此我们需要做些调查,看惠普打印机可能会受到哪些漏洞的影响。
以下问题是在PRET工具包中发现的:
目录穿越 - 远程存储的打印作业泄露
PRET工具包有三种模式,每种模式都指定工具包将尝试与打印机通信的“语言”。模式分别是Printer Job Language (PJL)、PostScript (PS)和PCL。每种模式都有一组不同的常见漏洞,和一些常见的问题。PJL是计算机允许打印作业时与打印机通信的语言,这种语言也被扩展为具有执行一些管理任务的能力。PJL的一项功能是对打印机上文件进行非常有限的管理,例如可以存储和删除文件,但只能在特定的位置,这是使用PJL语言在文件系统上不能逃离的一个小“监狱”。