8.4 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品- The PEASS Family
-
加入 💬 Discord群组 或 电报群组 或 关注我在Twitter上的🐦@carlospolopm.
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
基本信息
原始打印是我们定义的一种连接到网络打印机的9100/tcp端口的过程。它是CUPS和Windows打印架构用于与网络打印机通信的默认方法,因为它被认为是“最简单、最快、通常也是最可靠的用于打印机的网络协议”。原始端口9100打印,也称为JetDirect、AppSocket或PDL数据流,实际上不是一个独立的打印协议。相反,所有发送的数据都直接由打印设备处理,就像通过TCP的并行连接一样。与LPD、IPP和SMB不同,这可以向客户端发送直接反馈,包括状态和错误消息。这样的双向通道使我们可以直接访问PJL、PostScript或PCL命令的结果。因此,几乎任何网络打印机都支持的原始端口9100打印被用作使用PRET和PFT进行安全分析的通道。(来自这里)
如果你想了解更多关于黑客攻击打印机的信息,请阅读此页面。
默认端口: 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命令:
telnet <target_ip> 9100
然后,我们可以发送PJL命令并查看打印机的响应。
PJL命令示例
以下是一些常用的PJL命令示例:
- 获取打印机标识信息:
@PJL INFO ID
- 获取打印机配置信息:
@PJL INFO CONFIG
- 获取打印机状态信息:
@PJL INFO STATUS
我们可以通过发送这些命令来枚举打印机的信息,并了解其配置和状态。
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漏洞的未经授权利用可能会导致法律后果。
nmap -sV --script pjl-ready-message -p <PORT> <IP>
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
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想要获取PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。