9100/tcp - PJL (Printer Job Language)

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Basic Information

From here: Raw printing वह प्रक्रिया है जिसे हम नेटवर्क प्रिंटर के पोर्ट 9100/tcp से कनेक्शन बनाने की प्रक्रिया के रूप में परिभाषित करते हैं। यह CUPS और Windows की printing architecture द्वारा नेटवर्क प्रिंटरों से संचार करने के लिए उपयोग की जाने वाली डिफ़ॉल्ट विधि है क्योंकि इसे ‘सबसे सरल, सबसे तेज़, और सामान्यतः प्रिंटरों के लिए उपयोग में सबसे भरोसेमंद नेटवर्क प्रोटोकॉल’ माना जाता है। Raw port 9100 printing, जिसे JetDirect, AppSocket या PDL-datastream भी कहा जाता है वास्तव में स्वयं में कोई प्रिंटिंग प्रोटोकॉल नहीं है। इसके बजाय भीजा गया सारा डेटा सीधे प्रिंटिंग डिवाइस द्वारा प्रोसेस होता है, ठीक वैसे ही जैसे TCP पर एक समानांतर कनेक्शन। LPD, IPP और SMB के विपरीत, यह क्लाइंट को सीधे फीडबैक भेज सकता है, जिसमें स्थिति और त्रुटि संदेश शामिल हैं। ऐसा एक दो-तरफ़ा चैनल हमें पहुँच देता है परिणामों तक of PJL, PostScript या PCL कमांड्स। इसलिए raw port 9100 printing — जिसे लगभग किसी भी नेटवर्क प्रिंटर द्वारा समर्थित किया जाता है — PRET और PFT के साथ सुरक्षा विश्लेषण के चैनल के रूप में इस्तेमाल किया जाता है।

If you want to learn more about hacking printers read this page.

Default port: 9100

9100/tcp open  jetdirect

सूचीकरण

मैन्युअल

nc -vn <IP> 9100
@PJL INFO STATUS      #CODE=40000   DISPLAY="Sleep"   ONLINE=TRUE
@PJL INFO ID          # ID (Brand an version): Brother HL-L2360D series:84U-F75:Ver.b.26
@PJL INFO PRODINFO    #Product info
@PJL FSDIRLIST NAME="0:\" ENTRY=1 COUNT=65535  #List dir
@PJL INFO VARIABLES   #Env variales
@PJL INFO FILESYS     #?
@PJL INFO TIMEOUT     #Timeout variables
@PJL RDYMSG           #Ready message
@PJL FSINIT
@PJL FSDIRLIST
@PJL FSUPLOAD         #Useful to upload a file
@PJL FSDOWNLOAD       #Useful to download a file
@PJL FSDELETE         #Useful to delete a file

स्वचालित

nmap -sV --script pjl-ready-message -p <PORT> <IP>
msf> use auxiliary/scanner/printer/printer_env_vars
msf> use auxiliary/scanner/printer/printer_list_dir
msf> use auxiliary/scanner/printer/printer_list_volumes
msf> use auxiliary/scanner/printer/printer_ready_message
msf> use auxiliary/scanner/printer/printer_version_info
msf> use auxiliary/scanner/printer/printer_download_file
msf> use auxiliary/scanner/printer/printer_upload_file
msf> use auxiliary/scanner/printer/printer_delete_file

प्रिंटरों के लिए Hacking टूल

यह वही टूल है जिसे आप प्रिंटरों के दुरुपयोग के लिए उपयोग करना चाहेंगे: PRET

XPS/TrueType VM exploitation (Canon ImageCLASS)

  • XPS को PJL के माध्यम से भेजें:

  • @PJL ENTER LANGUAGE = XPS

  • फिर समान TCP कनेक्शन पर XPS ZIP बाइट्स भेजें।

  • एक attacker फ़ॉन्ट को संदर्भित करने वाला न्यूनतम XPS पेज:

<Glyphs Fill="#ff000000" FontUri="/Resources/evil.ttf" FontRenderingEmSize="12" OriginX="10" OriginY="10"/>
  • RCE primitive सारांश (TrueType hinting VM):

  • TTF में Hinting bytecode को TrueType VM द्वारा execute किया जाता है। Canon’s VM में stack bounds checks मौजूद नहीं थे।

  • CINDEX: OOB stack read → info leak

  • DELTAP1: unchecked relative stack pivot → controlled writes with subsequent pushes

  • Combine WS/RS (VM storage write/read) का इस्तेमाल करके values को stage करें और pivot के बाद एक precise 32-bit write करें।

  • Exploit outline:

  1. ऊपर वाले पेज के साथ XPS बनाएं और /Resources/evil.ttf शामिल करें।
  2. fpgm/prep में CINDEX का उपयोग करके leak करें और stack_cur की गणना करें।
  3. टारगेट वैल्यू को WS से stage करें; destination पर पहुँचने के लिए DELTAP1 से pivot करें; इसे लिखने के लिए RS का उपयोग करें (उदा., किसी function pointer में) ताकि PC control मिल सके।
  • Send over 9100/tcp:
{ printf "@PJL ENTER LANGUAGE = XPS\r\n"; cat exploit.xps; } | nc -q0 <PRINTER_IP> 9100
  • exploit.xps एक वैध XPS ZIP है जिसमें Documents/1/Pages/1.fpage और /Resources/evil.ttf शामिल हैं।

Shodan

  • pjl port:9100

संदर्भ

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें