hacktricks/network-services-pentesting/pentesting-printers/print-job-manipulation.md
2023-07-07 23:42:27 +00:00

75 lines
8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>
- **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。**
</details>
# コンテンツオーバーレイ
印刷物の外観を操作するための簡単な方法は、**オーバーレイ**を使用することです。\
[**PCL**](./#pcl)には、ドキュメントの上に**オーバーレイマクロ**を配置するためのドキュメント化された機能があります。残念ながら、この機能は**現在の印刷ジョブに限定**されており、永続的に設定することはできません。\
[**PostScript**](./#postscript-ps)はデフォルトではこのような機能を提供していませんが、PostScriptドキュメントの各ページを印刷するために含まれている`showpage`オペレータを再定義することでプログラムできます。攻撃者はそこに**フックをかけ**、独自のコードを実行し、その後オペレータの元のバージョンを呼び出すことができます。\
したがって、彼女はカスタムEPSファイルを使用して印刷されるすべてのページにオーバーレイをかけることができます。このハックは、ドキュメントのハードコピーに任意のグラフィックやフォントを追加するために使用できます空白のページをオーバーレイし、カスタムコンテンツを追加することでドキュメントの外観を完全に変更することが可能です。\
明らかに、このようなアプローチは、PostScriptがプリンタードライバとして使用され、`StartJobPassword`が設定されていない場合にのみ成功することができます。
![](http://hacking-printers.net/wiki/images/thumb/9/93/Overlay.jpg/300px-Overlay.jpg)
**この攻撃をテストする方法**
[**PRET**](https://github.com/RUB-NDS/PRET)の`cross`または`overlay`コマンドをpsモードで使用し、それから切断して任意のドキュメントを印刷します。
```
./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
```
# コンテンツの置換
攻撃者は既存のドキュメントの上にオーバーレイを配置できたとしても、その元のドキュメント内の特定の値を変更することはできません。そのためには、元のドキュメントの正確な構造を知る必要があります。時には、カスタムコンテンツを追加するだけでなく、既存のドキュメントの一部を解析して置換することも必要となります。
PostScriptファイル内のテキストの置換問題は、レンダリングされたドキュメントから文字列を抽出する問題に簡約化できます。これは簡単な問題ではありません。なぜなら、文字列はPostScriptプログラム自体によって動的に構築されることがあるからです。そのため、ドキュメントのソースコード内での単純な解析と置換は選択肢にありません。
再定義された`show`演算子を使用することができます。`show`演算子は、文字列を入力として受け取り、現在のページの特定の位置に描画されます。演算子を再定義することで、テキストを優雅に抽出することができます。このアプローチは、文字列が描画される**前に**文字列内での**検索と置換**にも使用することができます。
このアプローチは、プリンターに直接送信される**LaTeX**ベースのPostScriptドキュメントに対しては**成功**しますが、代わりに文字列の代わりに**ラスターグラフィックス**を作成する**GIMP**によって生成されるPostScriptファイルには**失敗**します。同じ問題は、CUPSによって処理される任意のドキュメント形式PostScript自体も含むでも発生します。理論的には、このような言語構造も解析可能であり、さらなる研究の対象となるべきです。
**この攻撃をテストする方法**
[**PRET**](https://github.com/RUB-NDS/PRET)の`replace`コマンドをpsモードで使用し、その後に接続を切断して、'DEF'を含むPostScriptドキュメントを印刷します。
```
./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
```
<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>
- **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
- [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
- [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details>