hacktricks/network-services-pentesting/pentesting-printers/print-job-manipulation.md

73 lines
6.9 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- 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) !
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **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)**.**
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>
2023-06-03 13:10:46 +00:00
# Contenu Overlay
2023-06-03 13:10:46 +00:00
Une façon simple de manipuler l'apparence des impressions est d'utiliser des superpositions. \
[**PCL**](./#pcl) a une fonction documentée pour mettre des **macros de superposition** sur un document. Malheureusement, cette fonctionnalité est **limitée au travail d'impression en cours** et ne peut pas être rendue permanente. \
[**PostScript**](./#postscript-ps) n'offre pas une telle fonctionnalité par défaut, mais elle peut être programmée en **redéfinissant l'opérateur showpage** qui est contenu dans chaque document PostScript pour imprimer la page en cours. L'attaquant peut **s'insérer là**, exécuter son propre code et ensuite appeler la version originale de l'opérateur.\
Ainsi, elle peut superposer toutes les pages à imprimer avec un fichier EPS personnalisé. Cette astuce peut être utilisée pour **ajouter des graphiques ou des polices arbitraires aux copies papier d'un document** (Il est possible de modifier complètement l'apparence d'un document en superposant une page blanche et en ajoutant ensuite un contenu personnalisé).\
Évidemment, une telle approche ne peut réussir que si PostScript est utilisé comme pilote d'imprimante et qu'aucun `StartJobPassword` n'est défini.
![](http://hacking-printers.net/wiki/images/thumb/9/93/Overlay.jpg/300px-Overlay.jpg)
2023-06-03 13:10:46 +00:00
**Comment tester cette attaque ?**
2023-06-03 13:10:46 +00:00
Utilisez les commandes `cross` ou `overlay` de [**PRET**](https://github.com/RUB-NDS/PRET) en mode ps, puis déconnectez-vous et imprimez un document arbitraire :
```
./pret.py -q printer ps
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> overlay overlays/smiley.eps
printer:/> cross whoa "HACKED"
printer:/> exit
```
2023-06-03 13:10:46 +00:00
# Remplacement de contenu
2023-06-03 13:10:46 +00:00
Même si un attaquant peut superposer un document existant, elle ne pourra pas **modifier des valeurs spécifiques** dans le document original à moins de connaître sa structure exacte. Parfois, on ne veut pas seulement ajouter un contenu personnalisé, mais **analyser et remplacer des parties** du document existant. \
Le problème de remplacement de texte dans les fichiers PostScript peut être réduit au **problème d'extraction de chaînes** du document rendu. Ce n'est pas trivial, car les chaînes peuvent être construites dynamiquement par le programme PostScript lui-même. Ainsi, l'analyse et le remplacement simples dans le code source du document ne sont pas une option.\
Vous pouvez utiliser un **opérateur `show` redéfini**. L'opérateur show accepte une chaîne en entrée, qui est peinte à un certain emplacement de la page actuelle. En redéfinissant l'opérateur, le **texte** peut être **extrait** de manière élégante. Cette approche peut également être utilisée pour une **recherche et un remplacement ciblés** dans les chaînes immédiatement **avant** qu'elles ne soient **peintes**. \
L'approche est **réussie** pour les documents PostScript basés sur **LaTeX** qui sont directement envoyés à l'imprimante, tandis qu'elle **échoue** pour les fichiers PostScript générés par **GIMP** qui, au lieu de chaînes, **créent des graphiques raster** de leur représentation. Le même problème se produit pour tout format de document - même PostScript lui-même - lorsqu'il est traité par CUPS. Théoriquement, de tels langages de construction pourraient également être analysés et devraient faire l'objet de recherches ultérieures.
2023-06-03 13:10:46 +00:00
**Comment tester cette attaque ?**
2023-06-03 13:10:46 +00:00
Utilisez la commande `replace` de [**PRET**](https://github.com/RUB-NDS/PRET) en mode ps, puis déconnectez et imprimez un document PostScript contenant "DEF" :
```
./pret.py -q printer ps
Connection to printer established
Welcome to the pret shell. Type help or ? to list commands.
printer:/> replace "ABC" "DEF"
printer:/> exit
```
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<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>
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- 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) !
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** 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)**.**
2022-04-28 16:01:33 +00:00
2023-06-03 13:10:46 +00:00
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
2022-04-28 16:01:33 +00:00
</details>