hacktricks/network-services-pentesting/9100-pjl.md
2023-08-03 19:12:22 +00:00

151 lines
8.4 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.

<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
- **加入** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**电报群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>
# 基本信息
原始打印是我们定义的一种连接到网络打印机的9100/tcp端口的过程。它是CUPS和Windows打印架构用于与网络打印机通信的默认方法因为它被认为是“最简单、最快、通常也是最可靠的用于打印机的网络协议”。原始端口9100打印也称为JetDirect、AppSocket或PDL数据流实际上**不是一个独立的打印协议**。相反,**所有发送的数据都直接由打印设备处理**就像通过TCP的并行连接一样。与LPD、IPP和SMB不同这可以向客户端发送直接反馈包括状态和错误消息。这样的**双向通道**使我们可以直接**访问**PJL、PostScript或PCL命令的**结果**。因此几乎任何网络打印机都支持的原始端口9100打印被用作使用PRET和PFT进行安全分析的通道。来自[这里](http://hacking-printers.net/wiki/index.php/Port\_9100\_printing)
如果你想了解更多关于[**黑客攻击打印机的信息,请阅读此页面**](pentesting-printers/)。
**默认端口:** 9100
```
9100/tcp open jetdirect
```
# 枚举
## 手动枚举
### PJL (Printer Job Language)
PJL打印机作业语言是一种用于控制打印机行为的命令语言。通过发送PJL命令我们可以获取有关打印机的信息如打印机型号、配置和状态。
PJL命令通常通过网络端口9100发送。我们可以使用telnet或nc命令连接到该端口并发送PJL命令以获取打印机信息。
以下是一些常用的PJL命令
- `@PJL INFO ID`:获取打印机的标识信息。
- `@PJL INFO CONFIG`:获取打印机的配置信息。
- `@PJL INFO STATUS`:获取打印机的状态信息。
我们可以使用以下命令通过telnet连接到9100端口并发送PJL命令
```bash
telnet <target_ip> 9100
```
然后我们可以发送PJL命令并查看打印机的响应。
### PJL命令示例
以下是一些常用的PJL命令示例
- 获取打印机标识信息:
```bash
@PJL INFO ID
```
- 获取打印机配置信息:
```bash
@PJL INFO CONFIG
```
- 获取打印机状态信息:
```bash
@PJL INFO STATUS
```
我们可以通过发送这些命令来枚举打印机的信息,并了解其配置和状态。
```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
```
## 自动化
In some cases, it is possible to automate the exploitation of the PJL vulnerability using tools like Metasploit or custom scripts. These tools can send the necessary PJL commands to the printer and exploit the vulnerability without manual intervention.
在某些情况下可以使用诸如Metasploit或自定义脚本之类的工具自动化利用PJL漏洞。这些工具可以向打印机发送必要的PJL命令并在无需手动干预的情况下利用漏洞。
For example, using Metasploit, you can use the `exploit/windows/printer/pjl_bounce` module to exploit the PJL vulnerability. This module allows you to specify the target printer's IP address, the PJL command to execute, and the payload to deliver.
例如使用Metasploit您可以使用`exploit/windows/printer/pjl_bounce`模块来利用PJL漏洞。该模块允许您指定目标打印机的IP地址、要执行的PJL命令和要传递的有效载荷。
Another option is to create a custom script using a programming language like Python. This script can send the necessary PJL commands to the printer and exploit the vulnerability. By automating the exploitation process, you can save time and effort during a penetration test.
另一种选择是使用Python等编程语言创建自定义脚本。该脚本可以向打印机发送必要的PJL命令并利用漏洞。通过自动化利用过程您可以在渗透测试期间节省时间和精力。
However, it is important to note that automated exploitation should only be performed on systems that you have proper authorization to test. Unauthorized exploitation of PJL vulnerabilities can lead to legal consequences.
然而重要的是要注意只有在您获得适当授权的系统上才能进行自动化利用。对PJL漏洞的未经授权利用可能会导致法律后果。
```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
```
## 打印机黑客工具
这是你想要使用的滥用打印机的工具:
{% embed url="https://github.com/RUB-NDS/PRET" %}
## 黑客打印机的最佳参考
{% embed url="https://hacking-printers.net/wiki/index.php/File_system_access" %}
# **Shodan**
* `pjl port:9100`
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- 你在一家**网络安全公司**工作吗你想在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
- 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
- 获取[**官方PEASS和HackTricks的衣物**](https://peass.creator-spring.com)
- **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
</details>