9100 - Pentesting Raw Printing (JetDirect, AppSocket, PDL-datastream)

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Z tej strony: Drukowanie bezpośrednie to proces nawiązania połączenia z portem 9100/tcp drukarki sieciowej. Jest to domyślna metoda używana przez CUPS i architekturę drukowania systemu Windows do komunikacji z drukarkami sieciowymi, ponieważ jest uważana za „najprostszą, najszybszą i ogólnie najbardziej niezawodną protokół sieciowy używany do drukarek”. Drukowanie bezpośrednie na porcie 9100, zwane również JetDirect, AppSocket lub strumieniem danych PDL, nie jest protokołem drukowania samym w sobie. Zamiast tego wszystkie wysyłane dane są bezpośrednio przetwarzane przez urządzenie drukujące, tak jak w przypadku połączenia równoległego przez TCP. W przeciwieństwie do LPD, IPP i SMB, może to przesyłać bezpośrednie informacje zwrotne do klienta, w tym status i komunikaty o błędach. Taki dwukierunkowy kanał daje nam bezpośredni dostęp do wyników poleceń PJL, PostScript lub PCL. Dlatego drukowanie bezpośrednie na porcie 9100 - obsługiwane przez prawie każdą drukarkę sieciową - jest używane jako kanał do analizy zabezpieczeń za pomocą PRET i PFT.

Jeśli chcesz dowiedzieć się więcej na temat hakowania drukarek, przeczytaj tę stronę.

Domyślny port: 9100

9100/tcp open  jetdirect

Wyliczanie

Ręczne wyliczanie

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

Automatyczne

PJL (Printer Job Language)

PJL (Printer Job Language) to język sterujący drukarkami laserowymi, który umożliwia zarządzanie różnymi aspektami drukowania, takimi jak konfiguracja, monitorowanie i kontrola zadań drukowania. PJL jest używany przez drukarki laserowe HP i niektóre inne modele drukarek.

Słabe punkty

  1. Brak uwierzytelnienia: Wiele drukarek HP obsługuje PJL bez wymagania uwierzytelnienia, co oznacza, że ​​osoba zdalnie podłączona do sieci może uzyskać dostęp do funkcji zarządzania drukarką bez konieczności podawania hasła.

  2. Wrażliwe komendy: PJL zawiera wiele komend, które mogą być wykorzystane do wykonania nieautoryzowanych działań, takich jak resetowanie drukarki, zmiana konfiguracji, wydrukowanie poufnych dokumentów itp.

Ataki

  1. Zmiana konfiguracji: Atakujący może wykorzystać komendy PJL, aby zmienić konfigurację drukarki, taką jak adres IP, maskę podsieci, bramę domyślną itp. Może to prowadzić do dezorganizacji sieci i utraty dostępu do drukarki.

  2. Wykonanie poleceń: Atakujący może wykorzystać komendy PJL do wykonania poleceń na drukarce. Może to obejmować resetowanie drukarki, wydrukowanie poufnych dokumentów, zmianę ustawień fabrycznych itp.

  3. Przechwytywanie danych: Atakujący może wykorzystać komendy PJL do przechwycenia danych drukowanych przez drukarkę. Może to obejmować przechwytywanie poufnych dokumentów, haseł, informacji o sieci itp.

Zabezpieczenia

Aby zabezpieczyć drukarkę przed atakami PJL, należy podjąć następujące kroki:

  1. Włącz uwierzytelnianie: Skonfiguruj drukarkę tak, aby wymagała uwierzytelnienia przed udostępnieniem dostępu do funkcji zarządzania drukarką.

  2. Ogranicz dostęp do sieci: Skonfiguruj drukarkę tak, aby ograniczyć dostęp do niej tylko do zaufanych adresów IP lub podsieci.

  3. Zaktualizuj oprogramowanie: Regularnie aktualizuj oprogramowanie drukarki, aby zapewnić najnowsze poprawki zabezpieczeń.

  4. Monitoruj logi: Regularnie monitoruj logi drukarki w celu wykrywania podejrzanej aktywności.

  5. Wyłącz niepotrzebne usługi: Wyłącz niepotrzebne usługi drukarki, które mogą być potencjalnymi punktami ataku.

Narzędzia

Poniżej znajdują się niektóre narzędzia, które mogą być przydatne podczas testowania penetracyjnego drukarek obsługujących PJL:

  • PJLTester: Narzędzie do testowania penetracyjnego drukarek obsługujących PJL. Pozwala na wysyłanie komend PJL i analizowanie odpowiedzi drukarki.

  • PJLScan: Narzędzie do skanowania sieci w poszukiwaniu drukarek obsługujących PJL. Pozwala na identyfikację drukarek i przeprowadzenie testów penetracyjnych.

  • PJLExploit: Narzędzie do wykorzystywania słabych punktów w drukarkach obsługujących PJL. Pozwala na automatyczne wykonywanie ataków, takich jak zmiana konfiguracji, wykonanie poleceń itp.

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

Narzędzie do hakowania drukarek

To jest narzędzie, które chcesz użyć do nadużywania drukarek:

Shodan

  • pjl port:9100

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated