Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PRET — Printer Exploitation Toolkit - Lo strumento che ha reso obsoleto il frugare nei cassonetti. | Kitploit
Strumenti/GitHubGitHub/rub-nds/pret
Sicurezza Sistemi EmbeddedAnalisi delle VulnerabilitàExploitRaccolta InformazioniFuzzingPenetration TestingSicurezza Hardware
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit - Lo strumento che ha reso obsoleto il frugare nei cassonetti.

Vedi Repository
4.3k651313 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

PRET - Toolkit di sfruttamento delle stampanti

La tua stampante è sicura? Controlla prima che lo faccia qualcun altro...

PRET è un nuovo strumento per il test di sicurezza delle stampanti sviluppato nell'ambito di una tesi magistrale presso la Ruhr University Bochum. Si connette a un dispositivo tramite rete o USB e sfrutta le funzionalità di un dato linguaggio di stampa. Attualmente sono supportati PostScript, PJL e PCL che sono utilizzati dalla maggior parte delle stampanti laser. Ciò consente operazioni interessanti come catturare o manipolare lavori di stampa, accedere al file system e alla memoria della stampante o addirittura causare danni fisici al dispositivo. Tutti gli attacchi sono documentati in dettaglio nel Wiki Hacking Printers.

L'idea principale di PRET è facilitare la comunicazione tra l'utente finale e la stampante. Quindi, dopo aver inserito un comando simile a UNIX, PRET lo traduce in PostScript, PJL o PCL, lo invia alla stampante, valuta il risultato e lo ritraduce in un formato user-friendly. PRET offre una vasta gamma di comandi utili per attacchi alle stampanti e fuzzing.

Progettazione PRET

Installazione

PRET richiede solo un interprete Python2. Tuttavia, per output colorato e supporto SNMP, è necessario installare moduli di terze parti:

# pip install colorama pysnmp

Se si esegue su console Windows e i caratteri Unicode non vengono visualizzati correttamente, installare il modulo win_unicode_console:

# pip install win_unicode_console

Per la stampa sperimentale 'senza driver' (vedi comando print), è necessario installare ImageMagick e GhostScript:

# apt-get install imagemagick ghostscript

Utilizzo

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
Esempio di utilizzo:
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Argomenti posizionali:

PRET richiede un target valido e un linguaggio di stampa come argomenti. Il target può essere l'indirizzo IP/hostname di una stampante di rete (con porta 9100/tcp aperta) o un dispositivo come /dev/usb/lp0 per una stampante USB locale. Per scoprire rapidamente tutte le stampanti di rete nella tua sottorete utilizzando il broadcast SNMP, esegui semplicemente PRET senza argomenti:

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

Il linguaggio di stampa da sfruttare deve essere uno tra ps, pjl o pcl. Non tutti i linguaggi sono supportati da ogni stampante, quindi potresti voler cambiare lingua se non ricevi alcun feedback. Ogni linguaggio di stampa è associato a un diverso insieme di comandi PRET e ha diverse capacità di sfruttamento.

Argomenti opzionali:

--safe tenta di verificare tramite IPP, HTTP e SNMP se il linguaggio di stampa selezionato (PS/PJL/PCL) è effettivamente supportato dal dispositivo prima di connettersi. Su stampanti non collegate in rete (USB, cavo parallelo) questo test fallirà.

--quit sopprime la determinazione del modello di stampante, il messaggio introduttivo e altre chiacchiere.

--debug mostra il flusso di dati effettivamente inviato al dispositivo e il feedback ricevuto. Nota che i dati di intestazione e altri overhead sono filtrati. Per vedere tutto il traffico, usa wireshark. Il debug può anche essere attivato/disattivato all'interno di una sessione PRET usando il comando debug

--load filename legge ed esegue comandi PRET da un file di testo. Utile per l'automazione. I file di comando possono anche essere invocati in seguito all'interno di una sessione PRET tramite il comando load.

--log filename scrive una copia del flusso di dati grezzi inviato alla stampante in un file. Può essere utile per creare un file di lavoro di stampa malevolo da distribuire su un'altra stampante non direttamente raggiungibile, ad esempio stampandolo da un'unità USB.

Comandi generici

Dopo aver effettuato la connessione a un dispositivo di stampa, vedrai la shell PRET e potrai eseguire vari comandi:

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

Di seguito è riportato un elenco di comandi PRET generici:

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.

Le operazioni generiche sul file system con implementazione specifica PS/PJL/PCL sono:

Scarica lo strumento