Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
PRET — Printer Exploitation Toolkit - Das Tool, das die Müllcontainer-Durchsuchung überflüssig gemacht hat. | Kitploit
Tools/GitHubGitHub/rub-nds/pret
Embedded-System-SicherheitSchwachstellenanalyseExploitationInformationsbeschaffungFuzzingPenetrationstestsHardware-Sicherheit
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit - Das Tool, das die Müllcontainer-Durchsuchung überflüssig gemacht hat.

Repository anzeigen
4.3k65131vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

PRET - Printer Exploitation Toolkit

Ist Ihr Drucker sicher? Überprüfen Sie es, bevor es jemand anderes tut...

PRET ist ein neues Werkzeug für Druckersicherheitstests, das im Rahmen einer Masterarbeit an der Ruhr-Universität Bochum entwickelt wurde. Es verbindet sich über Netzwerk oder USB mit einem Gerät und nutzt die Funktionen einer bestimmten Druckersprache aus. Derzeit werden PostScript, PJL und PCL unterstützt, die von den meisten Laserdruckern verwendet werden. Dies ermöglicht coole Dinge wie das Erfassen oder Manipulieren von Druckaufträgen, den Zugriff auf das Dateisystem und den Speicher des Druckers oder sogar die Verursachung physischer Schäden am Gerät. Alle Angriffe sind detailliert im Hacking Printers Wiki dokumentiert.

Die Hauptidee von PRET ist es, die Kommunikation zwischen dem Endbenutzer und dem Drucker zu erleichtern. Nach Eingabe eines UNIX-ähnlichen Befehls übersetzt PRET diesen in PostScript, PJL oder PCL, sendet ihn an den Drucker, wertet das Ergebnis aus und übersetzt es zurück in ein benutzerfreundliches Format. PRET bietet eine ganze Reihe von Befehlen, die für Druckerangriffe und Fuzzing nützlich sind.

PRET-Design

Installation

PRET benötigt nur einen Python2-Interpreter. Für farbige Ausgabe und SNMP-Unterstützung müssen jedoch Module von Drittanbietern installiert werden:

# pip install colorama pysnmp

Falls in einer Windows-Konsole Unicode-Zeichen nicht korrekt angezeigt werden, installieren Sie das win_unicode_console-Modul:

# pip install win_unicode_console

Für experimentelles, 'treiberloses' Drucken (siehe print-Befehl) müssen ImageMagick und GhostScript installiert werden:

# apt-get install imagemagick ghostscript

Verwendung

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
Beispielverwendung:
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Positionsargumente:

PRET benötigt ein gültiges Ziel und eine Druckersprache als Argumente. Das Ziel kann entweder die IP-Adresse/der Hostname eines Netzwerkdruckers (mit offenem Port 9100/tcp) oder ein Gerät wie /dev/usb/lp0 für einen lokalen USB-Drucker sein. Um schnell alle Netzwerkdrucker in Ihrem Subnetz mittels SNMP-Broadcast zu entdecken, führen Sie PRET einfach ohne Argumente aus:

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

Die zu missbrauchende Druckersprache muss eine von ps, pjl oder pcl sein. Nicht alle Sprachen werden von jedem Drucker unterstützt, daher möchten Sie möglicherweise die Sprache wechseln, wenn Sie kein Feedback erhalten. Jede Druckersprache ist einem anderen Satz von PRET-Befehlen zugeordnet und hat unterschiedliche Fähigkeiten zur Ausnutzung.

Optionale Argumente:

--safe versucht über IPP, HTTP und SNMP zu prüfen, ob die ausgewählte Druckersprache (PS/PJL/PCL) tatsächlich vom Gerät unterstützt wird, bevor eine Verbindung hergestellt wird. Bei nicht vernetzten Druckern (USB, paralleles Kabel) schlägt dieser Test fehl.

--quit unterdrückt die Bestimmung des Druckermodells, die Einführungsnachricht und einige andere Gespräche.

--debug zeigt den tatsächlich an das Gerät gesendeten Datenstrom und das erhaltene Feedback. Beachten Sie, dass Header-Daten und andere Overheads gefiltert werden. Um den gesamten Verkehr zu sehen, verwenden Sie Wireshark. Das Debuggen kann auch innerhalb einer PRET-Sitzung mit dem debug-Befehl ein- und ausgeschaltet werden.

--load Dateiname liest und führt PRET-Befehle aus einer Textdatei aus. Dies ist nützlich für die Automatisierung. Befehlsdateien können später innerhalb einer PRET-Sitzung über den load-Befehl aufgerufen werden.

--log Dateiname schreibt eine Kopie des rohen Datenstroms, der an den Drucker gesendet wird, in eine Datei. Dies kann nützlich sein, um eine bösartige Druckauftragsdatei zu erstellen, die auf einem anderen, nicht direkt erreichbaren Drucker eingesetzt werden kann, zum Beispiel durch Drucken von einem USB-Laufwerk.

Allgemeine Befehle

Nach der Verbindung zu einem Druckergerät sehen Sie die PRET-Shell und können verschiedene Befehle ausführen:

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

Eine Liste generischer PRET-Befehle finden Sie unten:

help      Listet verfügbare Befehle auf oder zeigt detaillierte Hilfe mit 'help cmd'.
debug     Debug-Modus aktivieren. Verwende 'hex' für Hexdump:  debug [hex]
load      Führe Befehle aus Datei aus:  load cmd.txt
loop      Führe Befehl für mehrere Argumente aus:  loop <Befehl> <Arg1> <Arg2> …
open      Verbinde zu entferntem Gerät:  open <Ziel>
close     Trenne Verbindung zum Gerät.
timeout   Setze Verbindungszeitüberschreitung:  timeout <Sekunden>
discover  Entdecke lokale Druckergeräte über SNMP.
print     Drucke Bilddatei oder Rohtext:  print <Datei>|"Text"
site      Führe benutzerdefinierten Befehl auf Drucker aus:  site <Befehl>
exit      Beende den Interpreter.

Generische Dateisystemoperationen mit einer PS-/PJL-/PCL-spezifischen Implementierung sind:

Tool herunterladen