Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PRET — Printer Exploitation Toolkit - La herramienta que hizo obsoleta la búsqueda en contenedores de basura. | Kitploit
Herramientas/GitHubGitHub/rub-nds/pret
Seguridad de Sistemas EmbebidosAnálisis de VulnerabilidadesExplotaciónRecopilación de InformaciónFuzzingPruebas de PenetraciónSeguridad de Hardware
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit - La herramienta que hizo obsoleta la búsqueda en contenedores de basura.

Ver Repositorio
4.3k65149hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

PRET - Kit de Explotación de Impresoras

¿Tu impresora es segura? Verifícalo antes de que alguien más lo haga...

PRET es una nueva herramienta para pruebas de seguridad de impresoras desarrollada en el marco de una Tesis de Maestría en la Universidad del Ruhr en Bochum. Se conecta a un dispositivo a través de red o USB y explota las características de un lenguaje de impresión dado. Actualmente se admiten PostScript, PJL y PCL, los cuales son utilizados por la mayoría de las impresoras láser. Esto permite cosas geniales como capturar o manipular trabajos de impresión, acceder al sistema de archivos y memoria de la impresora, o incluso causar daños físicos al dispositivo. Todos los ataques están documentados en detalle en el Wiki de Hacking Printers.

La idea principal de PRET es facilitar la comunicación entre el usuario final y la impresora. De este modo, después de ingresar un comando similar a UNIX, PRET lo traduce a PostScript, PJL o PCL, lo envía a la impresora, evalúa el resultado y lo traduce de vuelta a un formato amigable. PRET ofrece una gran cantidad de comandos útiles para ataques a impresoras y fuzzing.

PRET design

Instalación

PRET solo requiere un intérprete de Python2. Sin embargo, para salida coloreada y soporte SNMP, se deben instalar módulos de terceros:

# pip install colorama pysnmp

Si se ejecuta en una consola de Windows y los caracteres Unicode no se muestran correctamente, instala el módulo win_unicode_console:

# pip install win_unicode_console

Para la impresión experimental 'sin controlador' (ver comando print), es necesario instalar ImageMagick y GhostScript:

# apt-get install imagemagick ghostscript

Uso

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
Ejemplo de uso:
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Argumentos posicionales:

PRET requiere un objetivo válido y un lenguaje de impresión como argumentos. El objetivo puede ser la dirección IP/nombre de host de una impresora de red (con el puerto 9100/tcp abierto) o un dispositivo como /dev/usb/lp0 para una impresora USB local. Para descubrir rápidamente todas las impresoras de red en tu subred usando difusión SNMP, simplemente ejecuta PRET sin 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            

El lenguaje de impresión a explotar debe ser uno de ps, pjl o pcl. No todos los lenguajes son compatibles con todas las impresoras, por lo que puede que quieras cambiar de idioma si no recibes ninguna respuesta. Cada lenguaje de impresión está mapeado a un conjunto diferente de comandos de PRET y tiene diferentes capacidades para explotar.

Argumentos opcionales:

--safe intenta verificar a través de IPP, HTTP y SNMP si el lenguaje de impresión seleccionado (PS/PJL/PCL) es realmente compatible con el dispositivo antes de conectar. En impresoras no conectadas a la red (USB, cable paralelo) esta prueba fallará.

--quit suprime la determinación del modelo de impresora, el mensaje de introducción y otras charlas.

--debug muestra el flujo de datos realmente enviado al dispositivo y la retroalimentación recibida. Ten en cuenta que los datos de cabecera y otros gastos generales se filtran. Para ver todo el tráfico, usa wireshark. La depuración también se puede activar/desactivar dentro de una sesión de PRET usando el comando debug.

--load archivo lee y ejecuta comandos de PRET desde un archivo de texto. Esto es útil para automatización. Los archivos de comandos también se pueden invocar más tarde dentro de una sesión de PRET mediante el comando load.

--log archivo escribe una copia del flujo de datos sin procesar enviado a la impresora en un archivo. Esto puede ser útil para construir un archivo de trabajo de impresión malicioso que se pueda implementar en otra impresora no directamente accesible, por ejemplo imprimiéndolo desde una unidad USB.

Comandos Genéricos

Después de conectarse a un dispositivo de impresora, verás el shell de PRET y podrás ejecutar varios comandos:

$ ./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

A continuación se muestra una lista de comandos genéricos de PRET:

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.

Las operaciones genéricas del sistema de archivos con una implementación específica de PS/PJL/PCL son:

Descargar herramienta