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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
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:
- Create XPS with the page above and include
/Resources/evil.ttf. - In
fpgm/prep, useCINDEXto leak and computestack_cur. - Stage target value with
WS; pivot withDELTAP1to the destination; useRSto 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
Посилання
- Hacking printers using fonts (Canon ImageCLASS TrueType VM bugs)
- Apple TrueType Reference Manual – Instruction Set and VM (26.6 fixed point)
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
HackTricks

