Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PRET — Printer Exploitation Toolkit - L'outil qui a rendu la fouille des poubelles obsolète. | Kitploit
Outils/GitHubGitHub/rub-nds/pret
Sécurité des Systèmes EmbarquésAnalyse des VulnérabilitésExploitationCollecte d'InformationsFuzzingTests d'IntrusionSécurité Matérielle
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit - L'outil qui a rendu la fouille des poubelles obsolète.

Voir le dépôt
4.3k65131il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

PRET - Kit d'exploitation d'imprimantes

Votre imprimante est-elle sécurisée ? Vérifiez avant que quelqu'un d'autre ne le fasse...

PRET est un nouvel outil de test de sécurité des imprimantes développé dans le cadre d'un Mémoire de Master à l'Université de la Ruhr à Bochum. Il se connecte à un périphérique via le réseau ou USB et exploite les fonctionnalités d'un langage d'imprimante donné. Actuellement, PostScript, PJL et PCL sont pris en charge, langages parlés par la plupart des imprimantes laser. Cela permet des choses sympas comme la capture ou la manipulation de travaux d'impression, l'accès au système de fichiers et à la mémoire de l'imprimante, voire même des dommages physiques à l'appareil. Toutes les attaques sont documentées en détail dans le Wiki Hacking Printers.

L'idée principale de PRET est de faciliter la communication entre l'utilisateur final et l'imprimante. Ainsi, après avoir saisi une commande de type UNIX, PRET la traduit en PostScript, PJL ou PCL, l'envoie à l'imprimante, évalue le résultat et le retraduit dans un format convivial pour l'utilisateur. PRET propose tout un ensemble de commandes utiles pour les attaques d'imprimantes et le fuzzing.

PRET design

Installation

PRET nécessite uniquement un interpréteur Python2. Cependant, pour la sortie colorée et le support SNMP, des modules tiers doivent être installés :

# pip install colorama pysnmp

Si vous utilisez une console Windows et que les caractères Unicode ne s'affichent pas correctement, installez le module win_unicode_console :

# pip install win_unicode_console

Pour l'impression expérimentale « sans pilote » (voir la commande print), ImageMagick et GhostScript doivent être installés :

# apt-get install imagemagick ghostscript

Usage

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
Exemple d'utilisation :
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Arguments positionnels :

PRET nécessite une cible valide et un langage d'imprimante comme arguments. La cible peut être soit l'adresse IP/le nom d'hôte d'une imprimante réseau (avec le port 9100/tcp ouvert) soit un périphérique comme /dev/usb/lp0 pour une imprimante USB locale. Pour découvrir rapidement toutes les imprimantes réseau de votre sous-réseau en utilisant la diffusion SNMP, exécutez simplement PRET sans arguments :

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

Le langage d'imprimante à abuser doit être l'un des suivants : ps, pjl ou pcl. Tous les langages ne sont pas supportés par chaque imprimante, donc vous pouvez changer de langage si vous ne recevez aucun retour. Chaque langage d'imprimante est associé à un ensemble différent de commandes PRET et possède différentes capacités à exploiter.

Arguments optionnels :

--safe essaie de vérifier via IPP, HTTP et SNMP si le langage d'impression sélectionné (PS/PJL/PCL) est réellement supporté par l'appareil avant de se connecter. Sur les imprimantes non réseau (USB, câble parallèle), ce test échouera.

--quit supprime la détermination du modèle d'imprimante, le message d'introduction et quelques autres bavardages.

--debug affiche le flux de données réellement envoyé à l'appareil et les retours reçus. Notez que les en-têtes et autres surcharges sont filtrés. Pour voir tout le trafic, utilisez Wireshark. Le débogage peut également être activé/désactivé dans une session PRET à l'aide de la commande debug.

--load filename lit et exécute les commandes PRET à partir d'un fichier texte. Ceci est utile pour l'automatisation. Les fichiers de commandes peuvent également être invoqués ultérieurement dans une session PRET via la commande load.

--log filename écrit une copie du flux de données brutes envoyé à l'imprimante dans un fichier. Cela peut être utile pour construire un fichier de travail d'impression malveillant qui peut être déployé sur une autre imprimante non directement accessible, par exemple en l'imprimant depuis une clé USB.

Generic Commands

Après vous être connecté à un périphérique d'imprimante, vous verrez le shell PRET et pourrez exécuter diverses commandes :

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

Une liste des commandes PRET génériques est donnée ci-dessous :

help      Lister les commandes disponibles ou obtenir de l'aide détaillée avec 'help cmd'.
debug     Entrer en mode débogage. Utiliser 'hex' pour hexdump : debug [hex]
load      Exécuter les commandes depuis un fichier : load cmd.txt
loop      Exécuter une commande pour plusieurs arguments : loop <cmd> <arg1> <arg2> …
open      Se connecter à un périphérique distant : open <cible>
close     Se déconnecter du périphérique.
timeout   Définir le délai d'attente de connexion : timeout <secondes>
discover  Découvrir les périphériques d'imprimante locaux via SNMP.
print     Imprimer un fichier image ou du texte brut : print <fichier>|"texte"
site      Exécuter une commande personnalisée sur l'imprimante : site <commande>
exit      Quitter l'interpréteur.

Les opérations génériques sur le système de fichiers avec une implémentation spécifique PS/PJL/PCL sont :

Télécharger l’outil