8 KiB
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ企業で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm。
-
ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリにPRを提出してください。
コンテンツオーバーレイ
印刷物の外観を操作するための簡単な方法は、オーバーレイを使用することです。
PCLには、ドキュメントの上にオーバーレイマクロを配置するためのドキュメント化された機能があります。残念ながら、この機能は現在の印刷ジョブに限定されており、永続的に設定することはできません。
PostScriptはデフォルトではこのような機能を提供していませんが、PostScriptドキュメントの各ページを印刷するために含まれているshowpage
オペレータを再定義することでプログラムできます。攻撃者はそこにフックをかけ、独自のコードを実行し、その後オペレータの元のバージョンを呼び出すことができます。
したがって、彼女はカスタムEPSファイルを使用して印刷されるすべてのページにオーバーレイをかけることができます。このハックは、ドキュメントのハードコピーに任意のグラフィックやフォントを追加するために使用できます(空白のページをオーバーレイし、カスタムコンテンツを追加することでドキュメントの外観を完全に変更することが可能です)。
明らかに、このようなアプローチは、PostScriptがプリンタードライバとして使用され、StartJobPassword
が設定されていない場合にのみ成功することができます。
この攻撃をテストする方法
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の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
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
-
サイバーセキュリティ会社で働いていますか? HackTricksで会社を宣伝したいですか?または、PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロードしたいですか?SUBSCRIPTION PLANSをチェックしてください!
-
The PEASS Familyを見つけてください。独占的なNFTのコレクションです。
-
公式のPEASS&HackTricksのグッズを手に入れましょう。
-
💬 Discordグループまたはtelegramグループに参加するか、Twitterでフォローしてください🐦@carlospolopm.
-
**ハッキングのトリックを共有するには、hacktricksリポジトリとhacktricks-cloudリポジトリ**にPRを提出してください。