11 KiB
从零到英雄学习AWS黑客攻击 htARTE (HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF版本,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
近年来,打印机供应商开始引入在其设备上安装自定义软件的可能性。这种“打印机应用”的格式是专有的,SDK对公众不开放。编写在打印机上运行的自定义软件的功能是有意为之,并且是为经销商和承包商保留的,而不是为最终用户准备的。因此,可以根据公司的特殊需求和业务流程调整打印机群;文档解决方案提供商可以轻松将打印机集成到他们的管理软件中。一个流行的例子是NSi AutoStore [1],它可以安装在许多MFP上,并自动将扫描或复制的文档上传到预定义的位置。显然,在打印机设备上运行自定义代码的功能是潜在的安全威胁。此外,与固件相比,软件包的代码签名可能更难,因为软件不仅由打印机制造商编写,还由需要拥有秘密密钥以签署其软件的更广泛的开发者编写。因此,将秘密密钥包含在仅通过开发者平台独家提供的SDK中是合乎逻辑的。本文是系统收集有关特定于供应商的软件平台/SDK信息的努力。
供应商
以下是主要打印机供应商提供的软件平台的大致概述,这些平台用于扩展其设备的功能。
HP Chai/OXP
HP在1999年推出了他们的‘Chai Appliance Platform’平台,用于在LaserJet打印机上运行Java应用程序。虽然一开始SDK对公众开放 [2],但后来访问权限被限制为HP开发者网络的成员。Chai servlets以.jar
文件形式出现,最初需要经过HP认证和签名,才会被打印机设备接受。[3] 发现了部署过程中的一个漏洞:通过安装EZloader——一种由HP提供且已经签名的替代加载软件——他们能够上传并运行自己的未签名Java包。看来,对于后来的Chai版本,HP完全放弃了代码签名:[4] 能够编写并执行一个概念验证型打印机恶意软件,该恶意软件监听9100端口,并在打印它们之前将传入的文档上传到FTP服务器。他们的代码基于[5],他们扩展了设备以支持负载平衡,并在他们的演示中包含了所需的SDK文件和专有Java库。有了这些库,可以在旧的HP LaserJets上通过上传.jar
文件到一个‘隐藏’的URL:http://printer/hp/device/this.loader
来编译和执行任意Java代码。如果嵌入式Web服务器尚未设置密码,则可以执行此攻击。否则,必须首先从/dev/rdsk_jdi_cfg0
使用PostScript检索密码(请参阅文件系统访问)或通过将设备重置为出厂默认设置来绕过。如果受害者当前登录到打印机的嵌入式Web服务器,Web攻击者可以使用CSRF上传.jar
文件。对于较新的设备,HP使用基于Web服务的‘Open Extensibility Platform’(OXP)代替Chai,没有公开可用的SDK。
Canon MEAP
‘多功能嵌入式应用平台’(MEAP)是Canon在2003年为其imageRunner系列引入的基于Java的软件平台,并在2010年扩展到Web服务。第三方开发者可以支付$5,000的费用获得MEAP SDK,这显然超出了研究目的的范围。
Xerox/Dell EIP
‘可扩展接口平台’(EIP)[6] 在2006年由Xerox为各种MFP宣传。该架构——也得到了一些重新标记的Dell设备的支持——基于Web服务技术。SDK 对注册开发者免费开放。
Brother BSI
‘Brother解决方案接口’(BSI)是一个基于XML的Web架构,于2012年为扫描仪、复印机和打印机推出。SDK 对持有许可的开发者开放。
Lexmark eSF
‘嵌入式解决方案框架’(eSF)于2006年为Lexmark MFP推出。开发Java应用程序的SDK仅保留给‘特别合格的合作伙伴’。根据[7] ‘这些应用程序必须在被采用之前由Lexmark数字签名’,使用2048位RSA签名。
Samsung XOA
‘可扩展开放架构’(XOA)由Samsung在2008年引入,有两种形式:XOA-E Java虚拟机和基于Web服务的XOA-Web。SDK 仅对Samsung经销商开放。
Ricoh ESA
‘嵌入式软件架构’(ESA)[8] 于2004年由Ricoh推出。基于Java的SDK/J 在注册后对开发者开放。
Kyocera/Utax HyPAS
‘高级解决方案混合平台’(HyPAS)[9] 由Kyocera在2008年发布。应用程序基于Java或Web服务。SDK 仅对‘HyPAS开发合作伙伴计划’的成员开放,应用程序必须得到Kyocera的批准。
Konica Minolta bEST
‘bizhub扩展解决方案技术’(bEST)[10] 基于Web服务,由Konica Minolta在2009年引入。访问SDK 需要在开发者计划中达到‘白金会员级别’,费用为$4,000,这超出了独立研究者的范围。
Toshiba e-BRIDGE
‘e-BRIDGE开放平台’(e-BRIDGE)由Toshiba在2008年发布,用于定制基于Web服务技术的高端MFP。SDK对公众不开放。
Sharp OSA
‘开放系统架构’(OSA)[11] 由Sharp在2004年宣传。用于开发Web服务的SDK 是基于费用的,应用程序需要通过Sharp的验证才能安装在MFP上。
Oki sXP
‘智能可扩展平台’(sXP)[12] 基于Web服务,由Oki Data在2013年为其MFP设备推出。Oki没有发布任何关于官方开发者计划或公开可用SDK的信息。
结果
在较旧的HP激光打印机上,可以执行任意Java字节码,如[3] 和 [4] 所示。安全性基于嵌入式Web服务器的密码,可以使用PostScript轻松检索或通过恢复出厂默认设置绕过。由于缺乏对SDK的访问和/或适当的技术文档,很难对其他软件平台的安全性做出合理的陈述。下面给出了平台、应用技术和——已知的——软件包部署程序的比较:
供应商 | 平台 | 嵌入式Java | Web服务 | 部署 |
---|---|---|---|---|
HP | Chai/OXP | ✔ | ✔ | Web服务器 |
Xerox/Dell | EIP | ✔ | 未知 | |
Canon | MEAP | ✔ | ✔ | 未知 |
Brother | BSI | ✔ | 未知 | |
Lexmark | eSF | ✔ | 未知 | |
Samsung | XOA | ✔ | ✔ | Web服务器 |
Ricoh | ESA | ✔ | 未知 | |
Kyocera/Utax | HyPAS | ✔ | ✔ | USB驱动器 |
Konica Minolta | bEST | ✔ | 未知 | |
Toshiba | e-Bridge | ✔ | 未知 | |
Sharp | OSA | ✔ | 未知 | |
Oki | sXP | ✔ | 未知 |
如何测试这种攻击?
获取SDK并编写您自己的概念验证应用程序,或找到一个已经做了您想要的事情的“打印机应用”(例如,自动将扫描文档上传到FTP)。还要检查安装自定义软件到设备上的保护机制。
谁能执行这种攻击?
取决于软件包是如何部署的。
从零到英雄学习AWS黑客攻击 htARTE (HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF版本,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。