9100/tcp - PJL (Printer Job Language)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Temel Bilgiler
Kaynak: here: Raw printing, bir ağ yazıcısının 9100/tcp portuna bağlantı kurma süreci olarak tanımladığımız şeydir. CUPS ve Windows yazdırma mimarisi tarafından ağ yazıcılarıyla iletişim kurmak için kullanılan varsayılan yöntemdir çünkü ‘yazıcılar için kullanılan en basit, en hızlı ve genel olarak en güvenilir ağ protokolü’ olarak kabul edilir. Raw port 9100 printing, JetDirect, AppSocket veya PDL-datastream olarak da anılır ve aslında tek başına bir yazdırma protokolü değildir. Bunun yerine, gönderilen tüm veriler yazdırma cihazı tarafından doğrudan işlenir, tıpkı TCP üzerinden paralel bir bağlantı gibi. LPD, IPP ve SMB’nin aksine, bu protokol istemciye durum ve hata mesajları dahil doğrudan geri bildirim gönderebilir. Böyle bir iki yönlü kanal, bize PJL, PostScript veya PCL komutlarının sonuçlarına doğrudan erişim sağlar. Bu nedenle, hemen hemen her ağ yazıcısı tarafından desteklenen raw port 9100 printing, PRET ve PFT ile güvenlik analizleri için kanal olarak kullanılır.
If you want to learn more about hacking printers read this page.
Varsayılan port: 9100
9100/tcp open jetdirect
Keşif
Manuel
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
Otomatik
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
Yazıcılar Hacking aracı
Bu, yazıcıları suistimal etmek için kullanmak istediğiniz araç: PRET
XPS/TrueType VM exploitation (Canon ImageCLASS)
-
XPS’i PJL üzerinden gönder:
-
@PJL ENTER LANGUAGE = XPS -
Ardından aynı TCP bağlantısı üzerinde XPS ZIP byte’larını gönder.
-
Saldırgan bir fontu referans gösteren minimal XPS sayfası:
<Glyphs Fill="#ff000000" FontUri="/Resources/evil.ttf" FontRenderingEmSize="12" OriginX="10" OriginY="10"/>
-
RCE primitive özeti (TrueType hinting VM):
-
TTF içindeki hinting bytecode, TrueType VM tarafından yürütülür. Canon’ın VM’sinde stack bounds checks yoktu.
-
CINDEX: OOB stack read → info leak
-
DELTAP1: kontrolsüz relative stack pivot → kontrollü yazmalar ve sonraki pushes ile
-
Combine
WS/RS(VM storage write/read) değerleri hazırlamak ve pivot sonrası hassas bir 32-bit yazma gerçekleştirmek için kullanın. -
Exploit outline:
- Yukarıdaki sayfayı içeren bir XPS oluşturun ve
/Resources/evil.ttfdosyasını dahil edin. fpgm/prepiçindeCINDEXkullanarak leak elde edin vestack_cur’ı hesaplayın.- Hedef değeri
WSile hazırlayın; hedefe pivot yapmak içinDELTAP1kullanın;RSile bunu (ör. bir function pointer’a) yazın ve PC kontrolü kazanın.
- 9100/tcp üzerinden gönderin:
{ printf "@PJL ENTER LANGUAGE = XPS\r\n"; cat exploit.xps; } | nc -q0 <PRINTER_IP> 9100
exploit.xpsgeçerli bir XPS ZIP dosyasıdır; içindeDocuments/1/Pages/1.fpageve/Resources/evil.ttfbulunur.
Shodan
pjl port:9100
Referanslar
- Hacking printers using fonts (Canon ImageCLASS TrueType VM bugs)
- Apple TrueType Reference Manual – Instruction Set and VM (26.6 fixed point)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
HackTricks

