9100/tcp - PJL (Printer Job Language)

Tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Основна інформація

From here: Raw printing — це процес встановлення з’єднання з портом 9100/tcp мережевого принтера. Це стандартний метод, який використовують CUPS та архітектура друку Windows для спілкування з мережевими принтерами, оскільки він вважається ‘the simplest, fastest, and generally the most reliable network protocol used for printers’. Raw port 9100 printing, також відомий як JetDirect, AppSocket або PDL-datastream, фактично не є протоколом друку сам по собі. Натомість всі надіслані дані обробляються безпосередньо пристроєм друку, так само як паралельне з’єднання через TCP. На відміну від LPD, IPP та SMB, цей метод може надсилати безпосередній зворотний зв’язок клієнту, включно з повідомленнями про стан та помилки. Такий двонаправлений канал дає нам прямий доступ до результатів команд PJL, PostScript або PCL. Тому raw port 9100 printing — який підтримується майже будь-яким мережевим принтером — використовується як канал для аналізу безпеки з PRET та PFT.

Якщо ви хочете дізнатися більше про hacking printers read this page.

Порт за замовчуванням: 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 tool

Це інструмент, який ви хочете використовувати для зловживання принтерами: PRET

XPS/TrueType VM exploitation (Canon ImageCLASS)

  • Надішліть XPS через PJL:

  • @PJL ENTER LANGUAGE = XPS

  • Потім надішліть байти XPS ZIP по тому ж TCP-з’єднанню.

  • Мінімальна сторінка XPS, що посилається на attacker font:

<Glyphs Fill="#ff000000" FontUri="/Resources/evil.ttf" FontRenderingEmSize="12" OriginX="10" OriginY="10"/>
  • RCE primitive — підсумок (TrueType hinting VM):

  • Hinting bytecode у TTF виконується TrueType VM. Canon’s VM не перевіряв межі стека.

  • CINDEX: OOB stack read → info leak

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

  • Combine WS/RS (VM storage write/read) to stage values and perform a precise 32-bit write after pivot.

  • Exploit outline:

  1. Create XPS with the page above and include /Resources/evil.ttf.
  2. In fpgm/prep, use CINDEX to leak and compute stack_cur.
  3. Stage target value with WS; pivot with DELTAP1 to the destination; use RS to write it (e.g., to a function pointer) to gain 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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks