hacktricks/network-services-pentesting/9100-pjl.md
2024-02-10 15:36:32 +00:00

103 lines
6.5 KiB
Markdown

<details>
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei** oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
</details>
# Grundlegende Informationen
Von [hier](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing): Raw Printing ist das, was wir als den Prozess definieren, eine Verbindung zum Port 9100/tcp eines Netzwerkdruckers herzustellen. Es ist die Standardmethode, die von CUPS und der Windows-Druckarchitektur verwendet wird, um mit Netzwerkdruckern zu kommunizieren, da sie als "_das einfachste, schnellste und im Allgemeinen zuverlässigste Netzwerkprotokoll für Drucker_" gilt. Raw Port 9100 Printing, auch als JetDirect, AppSocket oder PDL-Datenstrom bezeichnet, **ist eigentlich kein eigenes Druckprotokoll**. Stattdessen **wird alle gesendete Daten direkt vom Druckgerät verarbeitet**, ähnlich wie bei einer parallelen Verbindung über TCP. Im Gegensatz zu LPD, IPP und SMB kann dies direktes Feedback an den Client senden, einschließlich Status- und Fehlermeldungen. Ein solcher **bidirektionaler Kanal** gibt uns direkten **Zugriff** auf **Ergebnisse** von **PJL-, PostScript-** oder **PCL-Befehlen**. Daher wird Raw Port 9100 Printing - das von fast jedem Netzwerkdrucker unterstützt wird - als Kanal für Sicherheitsanalysen mit PRET und PFT verwendet.
Wenn Sie mehr über [**Hacking-Drucker erfahren möchten, lesen Sie diese Seite**](http://hacking-printers.net/wiki/index.php/Main_Page).
**Standardport:** 9100
```
9100/tcp open jetdirect
```
# Enumeration
## Manuell
```bash
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
```
## Automatisch
PJL (Printer Job Language) ist eine Befehlssprache, die von Druckern verwendet wird, um Druckaufträge zu steuern. Es ermöglicht die Kommunikation zwischen dem Drucker und dem Hostsystem. PJL-Befehle können verwendet werden, um verschiedene Funktionen des Druckers zu steuern, wie z.B. das Drucken von Konfigurationsseiten, das Ändern von Einstellungen und das Ausführen von Diagnosetests.
Einige der gängigsten PJL-Befehle sind:
- `@PJL INFO` - Gibt Informationen über den Drucker zurück.
- `@PJL USTATUS` - Gibt den Status des Druckers zurück.
- `@PJL JOB NAME` - Legt den Namen des Druckauftrags fest.
- `@PJL SET` - Ändert die Einstellungen des Druckers.
- `@PJL EOJ` - Beendet den aktuellen Druckauftrag.
PJL kann auch für Angriffe auf Drucker verwendet werden. Einige mögliche Angriffe sind:
- Den Drucker zum Drucken von unerwünschten Dokumenten zwingen.
- Den Drucker zum Ausführen von schädlichem Code bringen.
- Den Drucker zum Offenlegen von vertraulichen Informationen zwingen.
Um PJL-Befehle automatisch auszuführen, können Skripte oder Tools wie `netcat` oder `telnet` verwendet werden. Diese ermöglichen die Kommunikation mit dem Drucker über das Netzwerk und das Senden von PJL-Befehlen.
Es ist wichtig zu beachten, dass das Ausführen von PJL-Befehlen auf Druckern ohne Berechtigung illegal ist und zu rechtlichen Konsequenzen führen kann. Es sollte nur im Rahmen von legitimen Tests oder mit ausdrücklicher Genehmigung des Druckereigentümers durchgeführt werden.
```bash
nmap -sV --script pjl-ready-message -p <PORT> <IP>
```
```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
```
## Drucker-Hacking-Tool
Dies ist das Tool, das Sie verwenden möchten, um Drucker zu missbrauchen:
{% embed url="https://github.com/RUB-NDS/PRET" %}
# **Shodan**
* `pjl port:9100`
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
</details>