Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
# Podstawowe informacje
Z [tej](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing) 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ę**](http://hacking-printers.net/wiki/index.php/Main_Page).
**Domyślny port:** 9100
```
9100/tcp open jetdirect
```
# Wyliczanie
## Ręczne wyliczanie
```bash
nc -vn 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.
```bash
nmap -sV --script pjl-ready-message -p
```
```bash
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:
{% embed url="https://github.com/RUB-NDS/PRET" %}
# **Shodan**
* `pjl port:9100`
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.