
PoC honeypot para detectar tentativas de exploit contra CVE-2024-47177
Este projeto implementa um honeypot para capturar tentativas de exploração de vulnerabilidades no CUPS (Common UNIX Printing System). Especificamente, ele é projetado para monitorar tentativas de exploração relacionadas à CVE-2024-47177. Essa vulnerabilidade permite execução remota de comandos através do parâmetro FoomaticRIPCommandLine em arquivos PPD. Se um valor malicioso for passado para este parâmetro, ele pode ser executado como um comando controlado pelo usuário, podendo levar a graves violações de segurança.
O CUPS é um sistema de impressão de código aberto baseado em padrões, amplamente utilizado em vários sistemas operacionais do tipo UNIX. O pacote cups-filters fornece backends, filtros e utilitários essenciais para o CUPS 2.x em sistemas que não são Mac OS. A falha crítica explorada na CVE-2024-47177 é o tratamento inadequado do FoomaticRIPCommandLine, que pode ser aproveitado em conjunto com outros bugs de lógica, como os descritos na CVE-2024-47176, para executar comandos arbitrários no sistema hospedeiro.
Este honeypot é projetado para registrar tentativas de exploração monitorando requisições de trabalhos de impressão recebidas e inspecionando-as em busca de atributos suspeitos, focando especificamente no printer-privacy-policy-uri que pode conter comandos.
Este projeto é inspirado pela divulgação inicial feita por EvilSocket, que destaca os riscos de segurança associados ao CUPS e fornece uma visão geral abrangente das técnicas de exploração envolvidas.
Para executar este honeypot, certifique-se de ter as seguintes dependências instaladas:
cups e subprocess (incluídas nas instalações padrão do Python)Baixe e execute o arquivo install.sh:
curl -sSL https://raw.githubusercontent.com/referefref/cupspot-2024-47177/refs/heads/main/install.sh | bash
Para executar o honeypot, execute o seguinte comando:
python3 cupspot.py <LOCAL_HOST> [TARGET_HOST]
#<LOCAL_HOST>: O endereço local onde o honeypot irá escutar as requisições de impressão recebidas.
#[TARGET_HOST]: (Opcional) O endereço IP de um host alvo para o qual os pacotes de navegação serão enviados.
#Se omitido, o honeypot será executado em modo passivo.
Execute o honeypot e envie pacotes para um alvo específico:
python3 cupspot.py 127.0.0.1 192.168.1.100
Ou execute em modo passivo:
python3 cupspot.py 127.0.0.1