Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
PRET — Printer Exploitation Toolkit — инструмент, который сделал поиск в мусоре устаревшим. | Kitploit
Инструменты/GitHubGitHub/rub-nds/pret
Безопасность встроенных системАнализ уязвимостейЭксплуатацияСбор информацииФаззингТестирование на ПроникновениеАппаратная Безопасность
GitHubrub-nds/pret

PRET

Printer Exploitation Toolkit — инструмент, который сделал поиск в мусоре устаревшим.

Репозиторий
4.3k651313 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

PRET - Набор инструментов для эксплуатации принтеров

Ваш принтер защищен? Проверьте, пока это не сделал кто-то другой...

PRET — это новый инструмент для тестирования безопасности принтеров, разработанный в рамках магистерской диссертации в Рурском университете Бохума. Он подключается к устройству через сеть или USB и использует возможности заданного языка принтера. В настоящее время поддерживаются PostScript, PJL и PCL, которые используются большинством лазерных принтеров. Это позволяет выполнять такие интересные задачи, как захват или изменение заданий печати, доступ к файловой системе и памяти принтера или даже физическое повреждение устройства. Все атаки подробно описаны в Hacking Printers Wiki.

Основная идея PRET — упростить взаимодействие между конечным пользователем и принтером. Таким образом, после ввода команды в стиле UNIX, PRET преобразует её в PostScript, PJL или PCL, отправляет на принтер, оценивает результат и переводит обратно в удобный для пользователя формат. PRET предлагает множество команд, полезных для атак на принтеры и фаззинга.

PRET design

Установка

PRET требует только интерпретатор Python2. Однако для цветного вывода и поддержки SNMP необходимо установить сторонние модули:

# pip install colorama pysnmp

Если вы работаете в консоли Windows и символы Unicode отображаются некорректно, установите модуль win_unicode_console:

# pip install win_unicode_console

Для экспериментальной «бесдрайверной» печати (см. команду print) необходимо установить ImageMagick и GhostScript:

# apt-get install imagemagick ghostscript

Использование

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
Пример использования:
$ ./pret.py laserjet.lan ps
$ ./pret.py /dev/usb/lp0 pjl
Позиционные аргументы:

PRET требует указания корректной цели и языка принтера в качестве аргументов. Целью может быть либо IP-адрес/имя хоста сетевого принтера (с открытым портом 9100/tcp), либо устройство, например /dev/usb/lp0 для локального USB-принтера. Чтобы быстро обнаружить все сетевые принтеры в вашей подсети с помощью SNMP-широковещания, просто запустите PRET без аргументов:

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

Язык принтера для эксплуатации должен быть одним из ps, pjl или pcl. Не все языки поддерживаются каждым принтером, поэтому при отсутствии обратной связи можно переключить язык. Каждому языку принтера соответствует свой набор команд PRET и разные возможности для эксплуатации.

Необязательные аргументы:

--safe пытается проверить через IPP, HTTP и SNMP, поддерживается ли выбранный язык печати (PS/PJL/PCL) устройством перед подключением. На принтерах без сетевого подключения (USB, параллельный кабель) этот тест завершится ошибкой.

--quit подавляет определение модели принтера, приветственное сообщение и прочий диалог.

--debug показывает поток данных, фактически отправленный на устройство, и полученный ответ. Обратите внимание, что заголовки и другие служебные данные фильтруются. Для просмотра всего трафика используйте Wireshark. Отладку также можно включать/выключать в сеансе PRET с помощью команды debug.

--load filename читает и выполняет команды PRET из текстового файла. Это полезно для автоматизации. Файлы команд также можно вызывать позже в сеансе PRET с помощью команды load.

--log filename записывает копию необработанного потока данных, отправленного на принтер, в файл. Это может быть полезно для создания вредоносного файла задания печати, который можно развернуть на другом принтере, не имеющем прямого доступа, например, распечатав его с USB-накопителя.

Общие команды

После подключения к устройству принтера вы увидите оболочку PRET и сможете выполнять различные команды:

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

Список общих команд 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.

Общие операции с файловой системой с реализацией, специфичной для PS/PJL/PCL:

Скачать инструмент