利用PRET控制遠程印表機測試
前言
Pret是用來對印表機安全進行測試的工具。它通過網路或者USB連接到設備,並利用給定印表機的語言進行滲透。目前絕大多數的印表機都是使用PostScript,pjl和pcl。這使得該工具可以通過這些印表機語言進行捕獲或者操作列印作業,訪問印表機文件系統和內存甚至造成物理層面上的破壞。
安裝
Linux:
建議在linux中安裝Pret
# pipinstall colorama pysnmp (kali中無需運行此命令)# apt-get install imagemagick ghostscript
Windows:
# 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] target {ps,pjl,pcl}
Target參數可以為本地
印表機名或者網路印表機的ip,此處以印表機ip為例:
可選參數:
—safe 檢查IPP,HTTP,SNMP,{PS、PCL、PJL}的可用性,方便進行除9100埠的其他滲透,如對印表機進行web滲透(大多數的印表機web管理端都是無口令和弱口令的,所以可以輕鬆的進行讀取列印作業或者進行遠程管理)。也可以確定是否選擇了合適的印表機語言。
—debug 打開debug模式,可以很方便的看到原始的印表機語言,有助於對印表機語言和滲透原理的理解。如圖可以方便的看出印表機語言之間的交互。
![EH]W)0)J4RWO33@X2P5G_T.png
—quit 禁止印表機型號確定,介紹信息和一些無作用的交互。
—load filename 從文本文件中讀取並執行pret命令,實現腳本自動化。
—log filename 將印表機的原始數據流寫入目標文件。
PRET命令
Help:不同的語言pret會提供不同的命令可用。所以在剛開始使用pret時,可以先使用help查看可用命令。除此之外也可以使用help+命令來顯示某命令的詳細用法。
Put:可以將文件上傳到印表機上,由此回想到向linux印表機上傳bot來進行控制,然而利用印表機語言無法有效的運行文件。
Mirror: 直接將印表機中的所有文件拷貝的本地,方便進一步的分析,尋找如列印記錄的文件。
Destroy: 十分危險的功能,嘗試的時候應當慎用,對印表機的NVRAM(一種RAM)造成物理性損壞。
附上源碼供大家研究:
Print:可以遠程列印文件。
Fuzz: pret自動使用腳本進行fuzz測試,包括常見敏感目錄和文件。
Lock: 設置系統密碼。
Unlock:自動解密。
Reset: 重置ps語言設置。
此處僅介紹了部分重要命令,還有很多命令可以使用help自行查看。
印表機安全測試清單
利用pret可以對印表機進行拒絕服務、提權、列印作業越權訪問、信息泄露、遠程代碼執行等測試,具體清單和用法可以參照官方的wiki:
維基百科
https://github.com/RUB-NDS/PRET
*本文作者:qianye,轉載請註明來自FreeBuf.COM
※Harpoon:OSINT威脅情報工具
※BUF大事件:科技公司聯盟保護用戶數據;RSA2018舊金山舉行
TAG:FreeBuf |