前言
Pret是用來對打印機安全進行測試的工具。它通過網絡或者USB連接到設備打印機文本模式怎么設置,并利用給定打印機的語言進行滲透。目前絕大多數的打印機都是使用,pjl和pcl。這使得該工具可以通過這些打印機語言進行捕獲或者操作打印作業,訪問打印機文件系統和內存甚至造成物理層面上的破壞。
安裝
Linux:
建議在linux中安裝Pret
# pipinstall colorama pysnmp (kali中無需運行此命令)# apt-get install imagemagick ghostscript
:
# pip install colorama pysnmp# pip install win_unicode_console ?(windows需要額外安裝,否則容易Unicode字符顯示不正確)
用法
當沒有參數直接運行./pret.py時,pret會自動通過SNMP協議尋找可能的打印機。
帶參數的運行:usage:pret.py [-h] [-s] [-q] [-d] [-i file] [-o file] {ps,pjl,pcl}
參數可以為本地
打印機名或者網絡打印機的ip,此處以打印機ip為例:
可選參數:
—safe 檢查IPP,HTTP,SNMP,{PS、PCL、PJL}的可用性,方便進行除9100端口的其他滲透,如對打印機進行web滲透(大多數的打印機web管理端都是無口令和弱口令的,所以可以輕松的進行讀取打印作業或者進行遠程管理)。也可以確定是否選擇了合適的打印機語言。
—debug 打開debug模式,可以很方便的看到原始的打印機語言,有助于對打印機語言和滲透原理的理解。如圖可以方便的看出打印機語言之間的交互。
![EH]W)0)@.png
—quit 禁止打印機型號確定,介紹信息和一些無作用的交互。
—load 從文本文件中讀取并執行pret命令,實現腳本自動化。
—log 將打印機的原始數據流寫入目標文件。
PRET命令
Help:不同的語言pret會提供不同的命令可用。所以在剛開始使用pret時,可以先使用help查看可用命令。除此之外也可以使用help+命令來顯示某命令的詳細用法。
Put:可以將文件上傳到打印機上,由此回想到向linux打印機上傳bot來進行控制,然而利用打印機語言無法有效的運行文件。
: 直接將打印機中的所有文件拷貝的本地,方便進一步的分析,尋找如打印記錄的文件。
: 十分危險的功能,嘗試的時候應當慎用打印機文本模式怎么設置,對打印機的NVRAM(一種RAM)造成物理性損壞。
附上源碼供大家研究:
Print:可以遠程打印文件。
Fuzz: pret自動使用腳本進行fuzz測試,包括常見敏感目錄和文件。
Lock: 設置系統密碼。
:自動解密。
Reset: 重置ps語言設置。
此處僅介紹了部分重要命令,還有很多命令可以使用help自行查看。
打印機安全測試清單
利用pret可以對打印機進行拒絕服務、提權、打印作業越權訪問、信息泄露、遠程代碼執行等測試,具體清單和用法可以參照官方的wiki:
維基百科