Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PRET — Printer Exploitation Toolkit - A ferramenta que tornou obsoleto o mergulho em lixeiras. | Kitploit
Ferramentas/GitHubGitHub/rub-nds/pret
Segurança de Sistemas EmbarcadosAnálise de VulnerabilidadesExploraçãoColeta de InformaçõesFuzzingTestes de PenetraçãoSegurança de Hardware
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit - A ferramenta que tornou obsoleto o mergulho em lixeiras.

Ver Repositório
4.3k65131há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

PRET - Kit de Exploração de Impressoras

A sua impressora está segura? Verifique antes que alguém o faça...

O PRET é uma nova ferramenta para testes de segurança de impressoras desenvolvida no âmbito de uma Dissertação de Mestrado na Universidade de Ruhr Bochum. Conecta-se a um dispositivo via rede ou USB e explora as funcionalidades de uma determinada linguagem de impressora. Atualmente PostScript, PJL e PCL são suportados, os quais são falados pela maioria das impressoras laser. Isso permite coisas interessantes como capturar ou manipular trabalhos de impressão, acessar o sistema de arquivos e a memória da impressora ou até mesmo causar danos físicos ao dispositivo. Todos os ataques estão documentados em detalhe no Hacking Printers Wiki.

A ideia principal do PRET é facilitar a comunicação entre o utilizador final e a impressora. Assim, após inserir um comando do tipo UNIX, o PRET traduz para PostScript, PJL ou PCL, envia para a impressora, avalia o resultado e traduz de volta para um formato amigável ao utilizador. O PRET oferece um monte de comandos úteis para ataques e fuzzing em impressoras.

Design do PRET

Instalação

O PRET requer apenas um interpretador Python2. No entanto, para saída colorida e suporte SNMP, módulos de terceiros precisam ser instalados:

# pip install colorama pysnmp

Se estiver a executar numa consola Windows e os caracteres Unicode não forem exibidos corretamente, instale o módulo win_unicode_console:

# pip install win_unicode_console

Para impressão experimental 'sem driver' (veja o comando print), o ImageMagick e o GhostScript precisam ser instalados:

# apt-get install imagemagick ghostscript

Utilização

usage: pret.py [-h] [-s] [-q] [-d] [-i file] [-o file] target {ps,pjl,pcl}

positional arguments:
  target                printer device or hostname
  {ps,pjl,pcl}          printing language to abuse

optional arguments:
  -h, --help            show this help message and exit
  -s, --safe            verify if language is supported
  -q, --quiet           suppress warnings and chit-chat
  -d, --debug           enter debug mode (show traffic)
  -i file, --load file  load and run commands from file
  -o file, --log file   log raw data sent to the target
Exemplo de utilização:
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Argumentos posicionais:

O PRET requer um alvo válido e uma linguagem de impressora como argumentos. O alvo pode ser o endereço IP/nome do host de uma impressora de rede (com a porta 9100/tcp aberta) ou um dispositivo como /dev/usb/lp0 para uma impressora USB local. Para descobrir rapidamente todas as impressoras de rede na sua sub-rede usando broadcast SNMP, execute o PRET sem argumentos:

./pret.py
No target given, discovering local printers

address          device                       uptime    status                 
───────────────────────────────────────────────────────────────────────────────
192.168.1.5      hp LaserJet 4250             10:21:49   Ready                 
192.168.1.11     HP LaserJet M3027 MFP        13 days    Paper jam             
192.168.1.27     Lexmark X792                 153 days   Ready                 
192.168.1.28     Brother MFC-7860DW           16:31:17   Sleep mode            

A linguagem de impressora a ser usada deve ser uma de ps, pjl ou pcl. Nem todas as linguagens são suportadas por todas as impressoras, por isso pode querer trocar de linguagem se não receber nenhum feedback. Cada linguagem de impressora está mapeada para um conjunto diferente de comandos PRET e tem diferentes capacidades de exploração.

Argumentos opcionais:

--safe tenta verificar via IPP, HTTP e SNMP se a linguagem de impressão selecionada (PS/PJL/PCL) é realmente suportada pelo dispositivo antes de conectar. Em impressoras não ligadas à rede (USB, cabo paralelo) este teste falhará.

--quit suprime a determinação do modelo da impressora, a mensagem de introdução e outras conversas.

--debug mostra o fluxo de dados realmente enviado para o dispositivo e o feedback recebido. Note que os dados de cabeçalho e outras sobrecargas são filtrados. Para ver todo o tráfego, use o wireshark. A depuração também pode ser ativada/desativada dentro de uma sessão PRET usando o comando debug

--load filename lê e executa comandos PRET a partir de um ficheiro de texto. Isto é útil para automação. Os ficheiros de comandos também podem ser invocados posteriormente dentro de uma sessão PRET através do comando load.

--log filename escreve uma cópia do fluxo de dados bruto enviado para a impressora num ficheiro. Isto pode ser útil para construir um ficheiro de trabalho de impressão malicioso que pode ser implantado noutra impressora não diretamente acessível, por exemplo, imprimindo-o a partir de uma unidade USB.

Comandos Genéricos

After connecting to a printer device, you will see the PRET shell and can execute various commands:

$ ./pret.py laserjet.lan pjl
      ________________
    _/_______________/|
   /___________/___//||   PRET | Printer Exploitation Toolkit v0.25
  |===        |----| ||    by Jens Mueller <[email protected]>
  |           |   ô| ||
  |___________|   ô| ||
  | ||/.´---.||    | ||        「 cause your device can be
  |-||/_____\||-.  | |´           more fun than paper jams 」
  |_||=L==H==||_|__|/

     (ASCII art by
     Jan Foerster)

Connection to laserjet.lan established
Device:   hp LaserJet 4250

Welcome to the pret shell. Type help or ? to list commands.
laserjet.lan:/> help

Available commands (type help <topic>):
=======================================
append  debug    edit    free  id    ls       open      restart   timeout  
cat     delete   env     fuzz  info  mirror   printenv  selftest  touch    
cd      df       exit    get   load  mkdir    put       set       traversal
chvol   disable  find    help  lock  nvram    pwd       site      unlock   
close   display  format  hold  loop  offline  reset     status    version  

laserjet.lan:/> ls ../../
-      834   .profile
d        -   bin
d        -   dev
d        -   etc
d        -   hp
d        -   hpmnt
-     1276   init
d        -   lib
d        -   pipe
d        -   tmp
laserjet.lan:/> exit

Uma lista de comandos genéricos do PRET é fornecida abaixo:

help      List available commands or get detailed help with 'help cmd'.
debug     Enter debug mode. Use 'hex' for hexdump:  debug [hex]
load      Run commands from file:  load cmd.txt
loop      Run command for multiple arguments:  loop <cmd> <arg1> <arg2> …
open      Connect to remote device:  open <target>
close     Disconnect from device.
timeout   Set connection timeout:  timeout <seconds>
discover  Discover local printer devices via SNMP.
print     Print image file or raw text:  print <file>|"text"
site      Execute custom command on printer:  site <command>
exit      Exit the interpreter.

Operações genéricas de sistema de ficheiros com uma implementação específica para PS/PJL/PCL são:

Baixar ferramenta